/* * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab * Copyright (C) 2008 - INRIA - Arnaud TORSET * * This file must be used under the terms of the CeCILL. * This source file is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt * */ #include "matrixPow.h" #include "eye.h" #include "matrixMultiplication.h" void spowma(float* in, int size, float expand, float* out){ switch ((int)expand){ case 0 : seyea(out,size,size); break; case 1 : { int i; for (i=0;i<size*size;i++) out[i]=in[i]; } break; default : { int i=0,j=0; float* Pow; Pow=malloc((uint)(size*size)*sizeof(float)); for (i=0;i<size*size;i++) out[i]=in[i]; for (i=1; i<expand; i++){ for (j=0;j<size*size;j++) Pow[j]=out[j]; smulma(Pow,size,size,in,size,size,out); } } break; } }