Share via


_LoadMatrix

9/7/2007

Loads a 4x4 matrix into the extended floating-point register bank.

Syntax

float* _LoadMatrix( 
  float* matrix 
);

Parameters

  • matrix
    [in] Pointer to an array of float values arranged such that the indices of the array are the [row][column] values of the 4x4 matrix.

Return Values

Pointer to the 4x4 matrix that has been loaded.

Remarks

The following code example shows how to use _LoadMatrix.

#include <stdio.h>
#include <shintr.h>

void main() 
{
     int i,j;
     float result[4][4];
// #########################################################
     float m1[4][4] =          {1.0,1.0,1.0,1.0,
                              2.0,2.0,2.0,2.0,
                              3.0,3.0,3.0,3.0,
                              4.0,4.0,4.0,4.0};
// #########################################################
     float m2[4][4] =          {2.0,2.0,2.0,2.0,
                              2.0,2.0,2.0,2.0,
                              2.0,2.0,2.0,2.0,
                              2.0,2.0,2.0,2.0};
// #########################################################
   _LoadMatrix((float *)m1);        //Load m1 matrix into XD bank regs
   _XDMultMatrix((float *)m2);      //[m1]x[m2] Saved result into XD bank regs
   _SaveMatrix((float *)result);  //Load XD bank regs into result buffer
          
     // Print out result
     printf("Result of [m1]x[m2] = \n");
     for (i = 0; i < 4; i++) 
     {
          printf("| ");
          for (j =0; j < 4; j++)
               printf("%8.4f ", result[i][j]);
          printf(" |\n");
     }
}

This example results in the following output.

Result of [m1]x[m2] =
|   8.0000   8.0000   8.0000   8.0000  |
|  16.0000  16.0000  16.0000  16.0000  |
|  24.0000  24.0000  24.0000  24.0000  |
|  32.0000  32.0000  32.0000  32.0000  |

Requirements

Routine Required header Architecture

_LoadMatrix

<shintr.h>

SH-4

See Also

Reference

Intrinsic Functions for Renesas Microprocessors
_SaveMatrix