数学函数

以下数学函数可以应用于矩阵和向量:MathAbs, MathArccos, MathArcsin, MathArctan, MathCeil, MathCos, MathExp, MathFloor, MathLog, MathLog10, MathMod, MathPow, MathRound, MathSin, MathSqrt, MathTan, MathExpm1, MathLog1p, MathArccosh, MathArcsinh, MathArctanh, MathCosh, MathSinh, MathTanh。 此类操作意味着矩阵和向量的元素级处理。

对于 MathMod 和 MathPow,第二个元素既可以是标量,亦或相应大小的矩阵/向量。

   matrix<T> mat1(128,128);

   matrix<T> mat3(mat1.Rows(),mat1.Cols());

   ulong     n,size=mat1.Rows()*mat1.Cols();

...

   mat2=MathPow(mat1,(T)1.9);

   for(n=0; n<size; n++)

     {

      T res=MathPow(mat1.Flat(n),(T)1.9);

      if(res!=mat2.Flat(n))

         errors++;

     }

   mat2=MathPow(mat1,mat3);

   for(n=0; n<size; n++)

     {

      T res=MathPow(mat1.Flat(n),mat3.Flat(n));

      if(res!=mat2.Flat(n))

         errors++;

     }

...

   vector<T> vec1(16384);

   vector<T> vec3(vec1.Size());

   ulong     n,size=vec1.Size();

...

   vec2=MathPow(vec1,(T)1.9);

   for(n=0; n<size; n++)

     {

      T res=MathPow(vec1[n],(T)1.9);

      if(res!=vec2[n])

         errors++;

     }

   vec2=MathPow(vec1,vec3);

   for(n=0; n<size; n++)

     {

      T res=MathPow(vec1[n],vec3[n]);

      if(res!=vec2[n])

         errors++;

     }