@@ -1590,7 +1590,7 @@ public:
15901590
15911591unittest
15921592{
1593- import mir.functional: RefTuple, tuple ;
1593+ import mir.functional: RefTuple, refTuple ;
15941594 import mir.ndslice.topology: map, iota, retro;
15951595 import std.array : array;
15961596 import std.math : isInfinity, isFinite, isNaN;
@@ -1599,49 +1599,49 @@ unittest
15991599
16001600 enum double M = (cast (double )2 ) ^^ (double .max_exp - 1 );
16011601 RefTuple! (double [], double )[] tests = [
1602- tuple (new double [0 ], 0.0 ),
1603- tuple ([0.0 ], 0.0 ),
1604- tuple ([1e100 , 1.0 , - 1e100 , 1e-100 , 1e50 , - 1 , - 1e50 ], 1e-100 ),
1605- tuple ([1e308 , 1e308 , - 1e308 ], 1e308 ),
1606- tuple ([- 1e308 , 1e308 , 1e308 ], 1e308 ),
1607- tuple ([1e308 , - 1e308 , 1e308 ], 1e308 ),
1608- tuple ([M, M, - 2.0 ^^ 1000 ], 1.7976930277114552e+308 ),
1609- tuple ([M, M, M, M, - M, - M, - M], 8.9884656743115795e+307 ),
1610- tuple ([2.0 ^^ 53 , - 0.5 , - 2.0 ^^- 54 ], 2.0 ^^ 53 - 1.0 ),
1611- tuple ([2.0 ^^ 53 , 1.0 , 2.0 ^^- 100 ], 2.0 ^^ 53 + 2.0 ),
1612- tuple ([2.0 ^^ 53 + 10.0 , 1.0 , 2.0 ^^- 100 ], 2.0 ^^ 53 + 12.0 ),
1613- tuple ([2.0 ^^ 53 - 4.0 , 0.5 , 2.0 ^^- 54 ], 2.0 ^^ 53 - 3.0 ),
1614- tuple ([M- 2.0 ^^ 970 , - 1 , M], 1.7976931348623157e+308 ),
1615- tuple ([double .max, double .max* 2 .^^- 54 ], double .max),
1616- tuple ([double .max, double .max* 2 .^^- 53 ], double .infinity),
1617- tuple (iota([1000 ], 1 ).map! (a => 1.0 / a).array , 7.4854708605503451 ),
1618- tuple (iota([1000 ], 1 ).map! (a => (- 1.0 )^^ a/ a).array, - 0.69264743055982025 ), // 0.693147180559945309417232121458176568075500134360255254120680...
1619- tuple (iota([1000 ], 1 ).map! (a => 1.0 / a).retro.array , 7.4854708605503451 ),
1620- tuple (iota([1000 ], 1 ).map! (a => (- 1.0 )^^ a/ a).retro.array, - 0.69264743055982025 ),
1621- tuple ([double .infinity, - double .infinity, double .nan], double .nan),
1622- tuple ([double .nan, double .infinity, - double .infinity], double .nan),
1623- tuple ([double .infinity, double .nan, double .infinity], double .nan),
1624- tuple ([double .infinity, double .infinity], double .infinity),
1625- tuple ([double .infinity, - double .infinity], double .nan),
1626- tuple ([- double .infinity, 1e308 , 1e308 , - double .infinity], - double .infinity),
1627- tuple ([M- 2.0 ^^ 970 , 0.0 , M], double .infinity),
1628- tuple ([M- 2.0 ^^ 970 , 1.0 , M], double .infinity),
1629- tuple ([M, M], double .infinity),
1630- tuple ([M, M, - 1 ], double .infinity),
1631- tuple ([M, M, M, M, - M, - M], double .infinity),
1632- tuple ([M, M, M, M, - M, M], double .infinity),
1633- tuple ([- M, - M, - M, - M], - double .infinity),
1634- tuple ([M, M, - 2 .^^ 971 ], double .max),
1635- tuple ([M, M, - 2 .^^ 970 ], double .infinity),
1636- tuple ([- 2 .^^ 970 , M, M, - 0X0 .0000000000001P- 0 * 2 .^^- 1022 ], double .max),
1637- tuple ([M, M, - 2 .^^ 970 , 0X0 .0000000000001P- 0 * 2 .^^- 1022 ], double .infinity),
1638- tuple ([- M, 2 .^^ 971 , - M], - double .max),
1639- tuple ([- M, - M, 2 .^^ 970 ], - double .infinity),
1640- tuple ([- M, - M, 2 .^^ 970 , 0X0 .0000000000001P- 0 * 2 .^^- 1022 ], - double .max),
1641- tuple ([- 0X0 .0000000000001P- 0 * 2 .^^- 1022 , - M, - M, 2 .^^ 970 ], - double .infinity),
1642- tuple ([2 .^^ 930 , - 2 .^^ 980 , M, M, M, - M], 1.7976931348622137e+308 ),
1643- tuple ([M, M, - 1e307 ], 1.6976931348623159e+308 ),
1644- tuple ([1e16 , 1 ., 1e-16 ], 10_000_000_000_000_002.0 ),
1602+ refTuple (new double [0 ], 0.0 ),
1603+ refTuple ([0.0 ], 0.0 ),
1604+ refTuple ([1e100 , 1.0 , - 1e100 , 1e-100 , 1e50 , - 1 , - 1e50 ], 1e-100 ),
1605+ refTuple ([1e308 , 1e308 , - 1e308 ], 1e308 ),
1606+ refTuple ([- 1e308 , 1e308 , 1e308 ], 1e308 ),
1607+ refTuple ([1e308 , - 1e308 , 1e308 ], 1e308 ),
1608+ refTuple ([M, M, - 2.0 ^^ 1000 ], 1.7976930277114552e+308 ),
1609+ refTuple ([M, M, M, M, - M, - M, - M], 8.9884656743115795e+307 ),
1610+ refTuple ([2.0 ^^ 53 , - 0.5 , - 2.0 ^^- 54 ], 2.0 ^^ 53 - 1.0 ),
1611+ refTuple ([2.0 ^^ 53 , 1.0 , 2.0 ^^- 100 ], 2.0 ^^ 53 + 2.0 ),
1612+ refTuple ([2.0 ^^ 53 + 10.0 , 1.0 , 2.0 ^^- 100 ], 2.0 ^^ 53 + 12.0 ),
1613+ refTuple ([2.0 ^^ 53 - 4.0 , 0.5 , 2.0 ^^- 54 ], 2.0 ^^ 53 - 3.0 ),
1614+ refTuple ([M- 2.0 ^^ 970 , - 1 , M], 1.7976931348623157e+308 ),
1615+ refTuple ([double .max, double .max* 2 .^^- 54 ], double .max),
1616+ refTuple ([double .max, double .max* 2 .^^- 53 ], double .infinity),
1617+ refTuple (iota([1000 ], 1 ).map! (a => 1.0 / a).array , 7.4854708605503451 ),
1618+ refTuple (iota([1000 ], 1 ).map! (a => (- 1.0 )^^ a/ a).array, - 0.69264743055982025 ), // 0.693147180559945309417232121458176568075500134360255254120680...
1619+ refTuple (iota([1000 ], 1 ).map! (a => 1.0 / a).retro.array , 7.4854708605503451 ),
1620+ refTuple (iota([1000 ], 1 ).map! (a => (- 1.0 )^^ a/ a).retro.array, - 0.69264743055982025 ),
1621+ refTuple ([double .infinity, - double .infinity, double .nan], double .nan),
1622+ refTuple ([double .nan, double .infinity, - double .infinity], double .nan),
1623+ refTuple ([double .infinity, double .nan, double .infinity], double .nan),
1624+ refTuple ([double .infinity, double .infinity], double .infinity),
1625+ refTuple ([double .infinity, - double .infinity], double .nan),
1626+ refTuple ([- double .infinity, 1e308 , 1e308 , - double .infinity], - double .infinity),
1627+ refTuple ([M- 2.0 ^^ 970 , 0.0 , M], double .infinity),
1628+ refTuple ([M- 2.0 ^^ 970 , 1.0 , M], double .infinity),
1629+ refTuple ([M, M], double .infinity),
1630+ refTuple ([M, M, - 1 ], double .infinity),
1631+ refTuple ([M, M, M, M, - M, - M], double .infinity),
1632+ refTuple ([M, M, M, M, - M, M], double .infinity),
1633+ refTuple ([- M, - M, - M, - M], - double .infinity),
1634+ refTuple ([M, M, - 2 .^^ 971 ], double .max),
1635+ refTuple ([M, M, - 2 .^^ 970 ], double .infinity),
1636+ refTuple ([- 2 .^^ 970 , M, M, - 0X0 .0000000000001P- 0 * 2 .^^- 1022 ], double .max),
1637+ refTuple ([M, M, - 2 .^^ 970 , 0X0 .0000000000001P- 0 * 2 .^^- 1022 ], double .infinity),
1638+ refTuple ([- M, 2 .^^ 971 , - M], - double .max),
1639+ refTuple ([- M, - M, 2 .^^ 970 ], - double .infinity),
1640+ refTuple ([- M, - M, 2 .^^ 970 , 0X0 .0000000000001P- 0 * 2 .^^- 1022 ], - double .max),
1641+ refTuple ([- 0X0 .0000000000001P- 0 * 2 .^^- 1022 , - M, - M, 2 .^^ 970 ], - double .infinity),
1642+ refTuple ([2 .^^ 930 , - 2 .^^ 980 , M, M, M, - M], 1.7976931348622137e+308 ),
1643+ refTuple ([M, M, - 1e307 ], 1.6976931348623159e+308 ),
1644+ refTuple ([1e16 , 1 ., 1e-16 ], 10_000_000_000_000_002.0 ),
16451645 ];
16461646 foreach (i, test; tests)
16471647 {
0 commit comments