@@ -1365,7 +1365,13 @@ var Hyper
1365
1365
var data = value . $ [ 3 ]
1366
1366
var diffPower = powerOfTenBig ( DIGITSMINUSONE - digits )
1367
1367
var flooredData = ( data / diffPower ) * diffPower
1368
- value . $ [ 3 ] = data < ( flooredData + ( diffPower >> 1n ) ) ? flooredData : ( flooredData + diffPower )
1368
+ data = data < ( flooredData + ( diffPower >> 1n ) ) ? flooredData : ( flooredData + diffPower )
1369
+ if ( data >= BIGLIMIT ) {
1370
+ value . $ [ 3 ] = data / 10n
1371
+ value . $ [ 2 ] ++
1372
+ } else {
1373
+ value . $ [ 3 ] = data
1374
+ }
1369
1375
}
1370
1376
}
1371
1377
return value
@@ -1378,7 +1384,13 @@ var Hyper
1378
1384
var data = value . $ [ 3 ]
1379
1385
var diffPower = powerOfTenBig ( DIGITSMINUSONE - digits )
1380
1386
var flooredData = ( data / diffPower ) * diffPower
1381
- value . $ [ 3 ] = data <= ( flooredData + ( diffPower >> 1n ) ) ? flooredData : ( flooredData + diffPower )
1387
+ data = data <= ( flooredData + ( diffPower >> 1n ) ) ? flooredData : ( flooredData + diffPower )
1388
+ if ( data >= BIGLIMIT ) {
1389
+ value . $ [ 3 ] = data / 10n
1390
+ value . $ [ 2 ] ++
1391
+ } else {
1392
+ value . $ [ 3 ] = data
1393
+ }
1382
1394
}
1383
1395
}
1384
1396
return value
@@ -1395,7 +1407,13 @@ var Hyper
1395
1407
}
1396
1408
var diffPower = powerOfTenBig ( DIGITSMINUSONE - digits )
1397
1409
var flooredData = ( data / diffPower ) * diffPower
1398
- value . $ [ 3 ] = flooredData === data ? flooredData : ( flooredData + diffPower )
1410
+ data = flooredData === data ? flooredData : ( flooredData + diffPower )
1411
+ if ( data >= BIGLIMIT ) {
1412
+ value . $ [ 3 ] = data / 10n
1413
+ value . $ [ 2 ] ++
1414
+ } else {
1415
+ value . $ [ 3 ] = data
1416
+ }
1399
1417
}
1400
1418
}
1401
1419
return value
@@ -1535,21 +1553,7 @@ var Hyper
1535
1553
* @returns {Hyper }
1536
1554
*/
1537
1555
Hyper . prototype . ceil = function ( noClone ) {
1538
- var value = noClone ? this : new Hyper ( this )
1539
- if ( value . $ [ 1 ] === 0 ) {
1540
- var digits = value . $ [ 2 ]
1541
- if ( digits < HDIGITS ) {
1542
- var data = value . $ [ 3 ]
1543
- if ( digits < 0 ) {
1544
- value . $ = data === 0n ? [ 0 , 0 , 0n ] : [ 0 , 0 , BIGONE ]
1545
- return value
1546
- }
1547
- var diffPower = powerOfTenBig ( DIGITSMINUSONE - digits )
1548
- var flooredData = ( data / diffPower ) * diffPower
1549
- value . $ [ 3 ] = flooredData === data ? flooredData : ( flooredData + diffPower )
1550
- }
1551
- }
1552
- return value
1556
+ return HyperCeil ( this , noClone )
1553
1557
}
1554
1558
1555
1559
/**
@@ -1558,21 +1562,7 @@ var Hyper
1558
1562
* @returns {Hyper }
1559
1563
*/
1560
1564
Hyper . ceil = function ( value ) {
1561
- value = new HyperNumber ( value )
1562
- if ( value . $ [ 1 ] === 0 ) {
1563
- var digits = value . $ [ 2 ]
1564
- if ( digits < HDIGITS ) {
1565
- var data = value . $ [ 3 ]
1566
- if ( digits < 0 ) {
1567
- value . $ = data === 0n ? [ 0 , 0 , 0n ] : [ 0 , 0 , BIGONE ]
1568
- return value
1569
- }
1570
- var diffPower = powerOfTenBig ( DIGITSMINUSONE - digits )
1571
- var flooredData = ( data / diffPower ) * diffPower
1572
- value . $ [ 3 ] = flooredData === data ? flooredData : ( flooredData + diffPower )
1573
- }
1574
- }
1575
- return value
1565
+ return HyperCeil ( new Hyper ( value ) , true )
1576
1566
}
1577
1567
1578
1568
/**
0 commit comments