Research Article

Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization

Code 12

Inastemp advanced condition manager.
(1) // Considering InaVecBestType can contain 4 doubles
(2) InaVecBestType<double> a_value = ;
(3) InaVecBestType<double> another_value = ;
(4)
(5) // Example with multiple conditions
(6) a_value = InaVecBestType<double>::If(a_value 10. < another_value)
(7) .Then(another_value)
(8) .ElseIf(a_value < 10.).Then(a_value10)
(9) .ElseIf(a_value == 0).Then([&]()
(10) return another_value.sqrt();
(11) )
(12) .Else([&]()
(13) InaVecBestType<double> velse = ;
(14) return velse 100 + 40;
(15) );