private static DataBlkFloat[] mult(DataBlkFloat[] inblk)
{
if (inblk.Length != 3)
throw new System.ArgumentException("bad input array size");
int i, j;
int length = inblk[0].h * inblk[0].w;
DataBlkFloat[] outblk = new DataBlkFloat[3];
float[][] out_Renamed = new float[3][];
float[][] in_Renamed = new float[3][];
for (i = 0; i < 3; ++i)
{
in_Renamed[i] = inblk[i].DataFloat;
outblk[i] = new DataBlkFloat();
copyGeometry(outblk[i], inblk[i]);
outblk[i].offset = inblk[i].offset;
out_Renamed[i] = new float[length];
outblk[i].Data = out_Renamed[i];
}
for (j = 0; j < length; ++j)
{
out_Renamed[0][j] = (Matrix00 * in_Renamed[0][inblk[0].offset + j] + Matrix01 * in_Renamed[1][inblk[1].offset + j] + Matrix02 * in_Renamed[2][inblk[2].offset + j]);
out_Renamed[1][j] = (Matrix10 * in_Renamed[0][inblk[0].offset + j] + Matrix11 * in_Renamed[1][inblk[1].offset + j] + Matrix12 * in_Renamed[2][inblk[2].offset + j]);
out_Renamed[2][j] = (Matrix20 * in_Renamed[0][inblk[0].offset + j] + Matrix21 * in_Renamed[1][inblk[1].offset + j] + Matrix22 * in_Renamed[2][inblk[2].offset + j]);
}
return outblk;
}