libftsh
A Fast Transform for Spherical Harmonics
 All Data Structures Files Functions Variables Defines
Defines | Functions
dmat_ops.c File Reference

Contains functions interacting_the Dense_Matrix struct with others. More...

#include "libftsh.h"

Defines

#define ENTEREXIT   0

Functions

void dmat_dvect_multiply (Dense_Vector *out, Dense_Matrix *inmat, Dense_Vector *invect)
void dmat_t_dvect_multiply (Dense_Vector *out, Dense_Matrix *inmat, Dense_Vector *invect)

Detailed Description

Contains functions interacting_the Dense_Matrix struct with others.

Summary:


Function Documentation

void dmat_dvect_multiply ( Dense_Vector out,
Dense_Matrix inmat,
Dense_Vector invect 
)

Apply a matrix to a vector to get a new vector. The matrix is in Dense_Matrix format, and the vectors in Dense_Vector format.

INPUTS:

  • out -- the Dense_Vector to put the result in. Should be initialized as follows:
    • .max_size is the amount of memory available.
    • .vector points to .max_size REAL
  • invect -- an input vector in Dense_Vector format
  • inmat -- the input matrix in Dense_Matrix format

OUTPUT: out -- inmat * invect = out

NOTES:

  • ordering of loops not optimized
  • ? use registers for n_row n_col?
  • blocking could help speed

Here is the caller graph for this function:

void dmat_t_dvect_multiply ( Dense_Vector out,
Dense_Matrix inmat,
Dense_Vector invect 
)

Apply the TRANSPOSE of a matrix to a vector to get a new vector. The matrix is in Dense_Matrix format, and the vectors in Dense_Vector format.

INPUTS:

  • out -- the Dense_Vector to put the result in. Should be initialized as follows:
    • .max_size is the amount of memory available.
    • .vector points to .max_size REAL
  • invect -- an input vector in Dense_Vector format
  • inmat -- the input matrix in Dense_Matrix format

OUTPUT: out -- TRANSPOSE(inmat) * invect = out

NOTES:

  • ordering of loops not optimized
  • blocking may improve speed

Here is the caller graph for this function: