Exemplo n.º 1
0
void quickPow(long a[2][2], long n, long result[2][2])
{
//    int j=0;
    long i=1;
    // long swap;
    long swap[2][2], pow1[2][2], pow2[2][2];
//    result[2][2]={1, 0, 0, 1};
    assignment(pow2, a);
    // assignment(result, a);
    if(n>0)
    {
        // return result;

        //  pow2=a;

        while(i<=n)
        {
            if((i&n)!=0)
            {
                multMat2(result, pow2, swap);
                assignment(result, swap);
            }
            i<<=1;
            multMat2(pow2, pow2, pow1);
            assignment(pow2,pow1);
        }
    }
}
Exemplo n.º 2
0
void		rotate2D(t_mat2 *m, double deg)
{
  t_mat2	rot;
  double	rad;
  double	s;
  double	c;

  rot = mat2();
  rad = RADIAN(deg);
  s = sin(rad);
  c = cos(rad);
  rot.m00 = c;
  rot.m10 = s;
  rot.m01 = -s;
  rot.m11 = c;
  multMat2(&rot, m);
}