@@ -486,7 +486,6 @@ static SIMDi SIMDi_NUM(14);
486
486
static SIMDi SIMDi_NUM (15 );
487
487
static SIMDi SIMDi_NUM (255 );
488
488
static SIMDi SIMDi_NUM (60493 );
489
- static SIMDi SIMDi_NUM (0x40000000 );
490
489
static SIMDi SIMDi_NUM (0x7fffffff );
491
490
492
491
static SIMDi SIMDi_NUM (xPrime);
@@ -528,7 +527,7 @@ void FUNC(InitSIMDValues)()
528
527
SIMDf_NUM (G3) = SIMDf_SET (1 .f / 6 .f );
529
528
SIMDf_NUM (G32) = SIMDf_SET (2 .f / 6 .f );
530
529
SIMDf_NUM (G33) = SIMDf_SET (3 .f / 6 .f );
531
- SIMDf_NUM (hash2Float) = SIMDf_SET (1 .f / 1073741824 .f );
530
+ SIMDf_NUM (hash2Float) = SIMDf_SET (1 .f / 2147483648 .f );
532
531
SIMDf_NUM (vectorSize) = SIMDf_SET (VECTOR_SIZE);
533
532
534
533
#if SIMD_LEVEL == FN_AVX2
@@ -550,7 +549,6 @@ void FUNC(InitSIMDValues)()
550
549
SIMDi_NUM (15 ) = SIMDi_SET (15 );
551
550
SIMDi_NUM (255 ) = SIMDi_SET (255 );
552
551
SIMDi_NUM (60493 ) = SIMDi_SET (60493 );
553
- SIMDi_NUM (0x40000000 ) = SIMDi_SET (0x40000000 );
554
552
SIMDi_NUM (0x7fffffff ) = SIMDi_SET (0x7fffffff );
555
553
556
554
SIMDi_NUM (xPrime) = SIMDi_SET (1619 );
@@ -599,9 +597,9 @@ static SIMDi VECTORCALL FUNC(Hash)(const SIMDi& seed, const SIMDi& x, const SIMD
599
597
{
600
598
SIMDi hash = seed;
601
599
602
- hash = SIMDi_ADD (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
603
- hash = SIMDi_ADD (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
604
- hash = SIMDi_ADD (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
600
+ hash = SIMDi_XOR (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
601
+ hash = SIMDi_XOR (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
602
+ hash = SIMDi_XOR (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
605
603
606
604
hash = SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash);
607
605
hash = SIMDi_XOR (SIMDi_SHIFT_R (hash, 13 ), hash);
@@ -613,10 +611,10 @@ static SIMDi VECTORCALL FUNC(HashHB)(const SIMDi& seed, const SIMDi& x, const SI
613
611
{
614
612
SIMDi hash = seed;
615
613
616
- hash = SIMDi_ADD (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
617
- hash = SIMDi_ADD (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
618
- hash = SIMDi_ADD (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
619
- hash = SIMDi_XOR (SIMDi_SHIFT_R (hash, 13 ), hash);
614
+ hash = SIMDi_XOR (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
615
+ hash = SIMDi_XOR (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
616
+ hash = SIMDi_XOR (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
617
+ // hash = SIMDi_XOR(SIMDi_SHIFT_R(hash, 13), hash);
620
618
621
619
hash = SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash);
622
620
@@ -628,14 +626,14 @@ static SIMDf VECTORCALL FUNC(ValCoord)(const SIMDi& seed, const SIMDi& x, const
628
626
// High bit hash
629
627
SIMDi hash = seed;
630
628
631
- hash = SIMDi_ADD (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
632
- hash = SIMDi_ADD (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
633
- hash = SIMDi_ADD (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
634
- hash = SIMDi_XOR (SIMDi_SHIFT_R (hash, 13 ), hash);
629
+ hash = SIMDi_XOR (SIMDi_MUL (x, SIMDi_NUM (xPrime)), hash);
630
+ hash = SIMDi_XOR (SIMDi_MUL (y, SIMDi_NUM (yPrime)), hash);
631
+ hash = SIMDi_XOR (SIMDi_MUL (z, SIMDi_NUM (zPrime)), hash);
632
+ // hash = SIMDi_XOR(SIMDi_SHIFT_R(hash, 13), hash);
635
633
636
- hash = SIMDi_AND ( SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash), SIMDi_NUM ( 0x7fffffff ) );
634
+ hash = SIMDi_MUL (SIMDi_MUL (SIMDi_MUL (hash, hash), SIMDi_NUM (60493 )), hash);
637
635
638
- return SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (SIMDi_SUB ( hash, SIMDi_NUM ( 0x40000000 )) ));
636
+ return SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (hash));
639
637
}
640
638
641
639
#if SIMD_LEVEL == FN_AVX2
@@ -1422,7 +1420,7 @@ static SIMDf VECTORCALL FUNC(CellularValue##distanceFunc##Single)(const SIMDi& s
1422
1420
yd = SIMDf_MUL_ADD (yd, invMag, ycf);\
1423
1421
zd = SIMDf_MUL_ADD (zd, invMag, SIMDf_SUB (SIMDf_CONVERT_TO_FLOAT (zc), z));\
1424
1422
\
1425
- SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (SIMDi_SUB ( SIMDi_AND ( hash, SIMDi_NUM ( 0x7fffffff )), SIMDi_NUM ( 0x40000000 )) ));\
1423
+ SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (hash));\
1426
1424
SIMDf newDistance = distanceFunc##_DISTANCE (xd, yd, zd);\
1427
1425
\
1428
1426
SIMDf closer = SIMDf_LESS_THAN (newDistance, distance);\
@@ -1516,7 +1514,7 @@ static SIMDf VECTORCALL FUNC(CellularLookup##distanceFunc##Single)(const SIMDi&
1516
1514
yCellNew = SIMDf_ADD (yCellNew, ycf); \
1517
1515
zCellNew = SIMDf_ADD (zCellNew, zcf); \
1518
1516
\
1519
- SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (SIMDi_SUB ( SIMDi_AND ( hash, SIMDi_NUM ( 0x7fffffff )), SIMDi_NUM ( 0x40000000 )) ));\
1517
+ SIMDf newCellValue = SIMDf_MUL (SIMDf_NUM (hash2Float), SIMDf_CONVERT_TO_FLOAT (hash));\
1520
1518
SIMDf newDistance = distanceFunc##_DISTANCE (xd, yd, zd);\
1521
1519
\
1522
1520
SIMDf closer = SIMDf_LESS_THAN (newDistance, distance);\
0 commit comments