//
// A simple examples of computing
// A^p, where A is a matrix, and p
// is an integer power.
//

pow = function (a, p)
{
  local (mtmp1, mtmp2);

  if (p > 4)
  {
    mtmp1 = a*a;
    for (i in 1:(p/2 - 2))
    {
      mtmp2 = mtmp1*a;
      mtmp1 = mtmp2;
    }
    mtmp1 = mtmp1*mtmp1;
    if (mod(p,2) != 0) { mtmp1 = mtmp1*a; }
  }
  return mtmp1;
};
