@@ -57,7 +57,7 @@ class CDirQuantCacheBase
57
57
return *this ;
58
58
}
59
59
60
- hlsl::uint32_t4 getValue () const
60
+ hlsl::uint32_t4 getValue () const
61
61
{
62
62
return { x, y, z, 0 };
63
63
}
@@ -90,7 +90,7 @@ class CDirQuantCacheBase
90
90
return *this ;
91
91
}
92
92
93
- hlsl::uint32_t4 getValue () const
93
+ hlsl::uint32_t4 getValue () const
94
94
{
95
95
return { x, y, z, w };
96
96
}
@@ -131,7 +131,7 @@ class CDirQuantCacheBase
131
131
return storage==other.storage ;
132
132
}
133
133
134
- hlsl::uint32_t4 getValue () const
134
+ hlsl::uint32_t4 getValue () const
135
135
{
136
136
constexpr auto storageBits = quantizationBits + 1u ;
137
137
const auto mask = (0x1u << storageBits) - 1u ;
@@ -164,7 +164,7 @@ class CDirQuantCacheBase
164
164
return *this ;
165
165
}
166
166
167
- hlsl::uint32_t4 getValue () const
167
+ hlsl::uint32_t4 getValue () const
168
168
{
169
169
return { x, y, z, 0 };
170
170
}
@@ -196,7 +196,7 @@ class CDirQuantCacheBase
196
196
return *this ;
197
197
}
198
198
199
- hlsl::float32_t4 getValue () const
199
+ hlsl::float32_t4 getValue () const
200
200
{
201
201
return { x, y, z, w };
202
202
}
@@ -381,21 +381,21 @@ class CDirQuantCacheBase : public virtual core::IReferenceCounted, public impl::
381
381
value_type_t <CacheFormat> quantize (const hlsl::vector<hlsl::float32_t , dimensions>& value)
382
382
{
383
383
auto to_float32_t4 = [](hlsl::vector<hlsl::float32_t , dimensions> src) -> hlsl::float32_t4
384
- {
385
- if constexpr (dimensions == 1 )
386
- {
387
- return {src.x , 0 , 0 , 0 };
388
- } else if constexpr (dimensions == 2 )
389
- {
390
- return {src.x , src.y , 0 , 0 };
391
- } else if constexpr (dimensions == 3 )
392
- {
393
- return {src.x , src.y , src.z , 0 };
394
- } else if constexpr (dimensions == 4 )
395
- {
396
- return {src.x , src.y , src.z , src.w };
397
- }
398
- };
384
+ {
385
+ if constexpr (dimensions == 1 )
386
+ {
387
+ return {src.x , 0 , 0 , 0 };
388
+ } else if constexpr (dimensions == 2 )
389
+ {
390
+ return {src.x , src.y , 0 , 0 };
391
+ } else if constexpr (dimensions == 3 )
392
+ {
393
+ return {src.x , src.y , src.z , 0 };
394
+ } else if constexpr (dimensions == 4 )
395
+ {
396
+ return {src.x , src.y , src.z , src.w };
397
+ }
398
+ };
399
399
400
400
const auto negativeMask = to_float32_t4 (lessThan (value, hlsl::vector<hlsl::float32_t , dimensions>(0 .0f )));
401
401
@@ -414,31 +414,31 @@ class CDirQuantCacheBase : public virtual core::IReferenceCounted, public impl::
414
414
const auto fit = findBestFit<dimensions,quantizationBits>(absValue);
415
415
416
416
const auto abs_fit = to_float32_t4 (abs (fit));
417
- quantized = hlsl::uint32_t4 (abs_fit.x , abs_fit.y , abs_fit.z , abs_fit.w );
417
+ quantized = hlsl::uint32_t4 (abs_fit.x , abs_fit.y , abs_fit.z , abs_fit.w );
418
418
419
419
insertIntoCache<CacheFormat>(key,quantized);
420
420
}
421
421
}
422
422
423
423
auto switch_vec = [](hlsl::uint32_t4 val1, hlsl::uint32_t4 val2, hlsl::bool4 mask)
424
- {
424
+ {
425
425
hlsl::uint32_t4 retval;
426
426
retval.x = mask.x ? val2.x : val1.x ;
427
427
retval.y = mask.y ? val2.y : val1.y ;
428
428
retval.z = mask.z ? val2.z : val1.z ;
429
429
retval.w = mask.w ? val2.w : val1.w ;
430
430
return retval;
431
- };
431
+ };
432
432
;
433
- // create all one bits
434
- const hlsl::uint32_t4 xorflag ((0x1u << (quantizationBits + 1u )) - 1u );
433
+ // create all one bits
434
+ const hlsl::uint32_t4 xorflag ((0x1u << (quantizationBits + 1u )) - 1u );
435
435
436
- // for positive number xoring with 0 keep its value
437
- // for negative number we xor with all one which will flip the bits, then we add one later. Flipping the bits then adding one will turn positive number into negative number
438
- auto restoredAsVec = quantized.getValue () ^ switch_vec (hlsl::uint32_t4 (0u ), hlsl::uint32_t4 (xorflag), negativeMask);
439
- restoredAsVec += switch_vec (hlsl::uint32_t4 (0u ), hlsl::uint32_t4 (1u ), negativeMask);
436
+ // for positive number xoring with 0 keep its value
437
+ // for negative number we xor with all one which will flip the bits, then we add one later. Flipping the bits then adding one will turn positive number into negative number
438
+ auto restoredAsVec = quantized.getValue () ^ switch_vec (hlsl::uint32_t4 (0u ), hlsl::uint32_t4 (xorflag), negativeMask);
439
+ restoredAsVec += switch_vec (hlsl::uint32_t4 (0u ), hlsl::uint32_t4 (1u ), negativeMask);
440
440
441
- return value_type_t <CacheFormat>(restoredAsVec);
441
+ return value_type_t <CacheFormat>(restoredAsVec);
442
442
}
443
443
444
444
template <uint32_t dimensions, uint32_t quantizationBits>
0 commit comments