libftsh
A Fast Transform for Spherical Harmonics
|
Contains functions interacting the Banded_Matrix struct with others. More...
#include "libftsh.h"
Defines | |
#define | ENTEREXIT 0 |
#define | OLDLOOPS 0 |
Functions | |
void | bdmat_dvect_multiply (Dense_Vector *out, Banded_Matrix *inmat, Dense_Vector *invect) |
void | bdmat_t_dvect_multiply (Dense_Vector *out, Banded_Matrix *inmat, Dense_Vector *invect) |
void | dmat_to_bdmat (Banded_Matrix *out, Dense_Matrix *in, REAL cutoff, int min_gap) |
Contains functions interacting the Banded_Matrix struct with others.
Summary:
#define OLDLOOPS 0 |
Switch on old or new method to loop. New method tries to localize variables and should be faster. In my tests it made synthesis twice as fast but did not help analysis. The compiler optimization may be already doing some localization to the old loops.
void bdmat_dvect_multiply | ( | Dense_Vector * | out, |
Banded_Matrix * | inmat, | ||
Dense_Vector * | invect | ||
) |
This routine applies a Banded_Matrix to a Dense_Vector to produce a Dense_Vector. The matrix may be square or rectangular.
INPUTS:
OUTPUT: out is modified so out = inmat * invect
NOTES:
void bdmat_t_dvect_multiply | ( | Dense_Vector * | out, |
Banded_Matrix * | inmat, | ||
Dense_Vector * | invect | ||
) |
This routine applies the TRANSPOSE of a Banded_Matrix to a Dense_Vector to produce a Dense_Vector. The matrix may be square or rectangular.
INPUTS:
OUTPUT: out is modified so out = TRANSPOSE(inmat) * invect
NOTES:
void dmat_to_bdmat | ( | Banded_Matrix * | out, |
Dense_Matrix * | in, | ||
REAL | cutoff, | ||
int | min_gap | ||
) |
Convert a matrix in Dense_Matrix form to Banded_Matrix form.
INPUT:
OUTPUT: out
NOTES: