Example #1
0
File: clmul.cs Project: 0xCM/arrows
        public static Scalar128 <ulong> clmulr(Scalar128 <ulong> a, Scalar128 <ulong> b, Vec128 <ulong> poly)
        {
            var prod = dinx.clmul(a, b);

            prod = Bits.xor(prod, dinx.clmul(srl(prod, 64), poly, ClMulMask.X00));
            prod = Bits.xor(prod, dinx.clmul(srl(prod, 64), poly, ClMulMask.X00));
            return(prod);
        }
Example #2
0
 public static ref Scalar128 <float> rcp(ref Scalar128 <float> src)
 {
     src = ReciprocalScalar(src);
     return(ref src);
 }
Example #3
0
 public static Scalar128 <float> rcp(Scalar128 <float> src)
 => ReciprocalScalar(src);
Example #4
0
 public static unsafe ref Scalar128 <double> load(double src, out Scalar128 <double> dst)
 {
     dst = LoadScalarVector128(pfloat64(ref src));
     return(ref dst);
 }
Example #5
0
 public static unsafe ref Scalar128 <float> load(float src, out Scalar128 <float> dst)
 {
     dst = LoadScalarVector128(pfloat32(ref src));
     return(ref dst);
 }
Example #6
0
File: ceil.cs Project: 0xCM/arrows
 public static ref Scalar128 <double> ceil(ref Scalar128 <double> src)
 {
     src = CeilingScalar(src);
     return(ref src);
 }
Example #7
0
File: ceil.cs Project: 0xCM/arrows
 public static ref Scalar128 <float> ceil(ref Scalar128 <float> src)
 {
     src = CeilingScalar(src);
     return(ref src);
 }
Example #8
0
File: clmul.cs Project: 0xCM/arrows
 public static Vec128 <ulong> clmul(Scalar128 <ulong> a, Scalar128 <ulong> b)
 => CarrylessMultiply(a, b, 0x00);