(git:374b731)
Loading...
Searching...
No Matches
grid_dgemm_utils.c File Reference
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include "../common/grid_common.h"
#include "grid_dgemm_tensor_local.h"
#include "grid_dgemm_utils.h"

Go to the source code of this file.

Functions

void convert_to_lattice_coordinates (const double dh_inv_[3][3], const double *restrict const rp, double *restrict rp_c)
 
void dgemm_simplified (dgemm_params *const m)
 
void batched_dgemm_simplified (dgemm_params *const m, const int batch_size)
 
void extract_sub_grid (const int *lower_corner, const int *upper_corner, const int *position, const tensor *const grid, tensor *const subgrid)
 
void add_sub_grid (const int *lower_corner, const int *upper_corner, const int *position, const tensor *subgrid, tensor *grid)
 
int compute_cube_properties (const bool ortho, const double radius, const double dh[3][3], const double dh_inv[3][3], const double *rp, double *disr_radius, double *roffset, int *cubecenter, int *lb_cube, int *ub_cube, int *cube_size)
 
void return_cube_position (const int *const lb_grid, const int *const cube_center, const int *const lower_boundaries_cube, const int *const period, int *const position)
 
void verify_orthogonality (const double dh[3][3], bool orthogonal[3])
 
void dger_ (const int *M, const int *N, const double *alpha, const double *X, const int *incX, const double *Y, const int *incY, double *A, const int *lda)
 
void dgemv_ (const char *Trans, const int *M, const int *N, const double *alpha, const double *A, const int *lda, const double *X, const int *incX, const double *beta, double *Y, const int *incY)
 
void cblas_daxpy (const int N, const double alpha, const double *X, const int incX, double *Y, const int incY)
 
double cblas_ddot (const int N, const double *X, const int incX, const double *Y, const int incY)
 
void cblas_dger (const CBLAS_LAYOUT Layout, const int M, const int N, const double alpha, const double *X, const int incX, const double *Y, const int incY, double *A, const int lda)
 
void cblas_dgemv (const CBLAS_LAYOUT order, const CBLAS_TRANSPOSE TransA, const int M, const int N, const double alpha, const double *A, const int lda, const double *X, const int incX, const double beta, double *Y, const int incY)
 
void compute_interval (const int *const map, const int full_size, const int size, const int cube_size, const int x1, int *x, int *const lower_corner, int *const upper_corner, const Interval window)
 

Function Documentation

◆ convert_to_lattice_coordinates()

void convert_to_lattice_coordinates ( const double  dh_inv_[3][3],
const double *restrict const  rp,
double *restrict  rp_c 
)

Definition at line 27 of file grid_dgemm_utils.c.

◆ dgemm_simplified()

void dgemm_simplified ( dgemm_params *const  m)

Definition at line 40 of file grid_dgemm_utils.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ batched_dgemm_simplified()

void batched_dgemm_simplified ( dgemm_params *const  m,
const int  batch_size 
)

Definition at line 109 of file grid_dgemm_utils.c.

Here is the call graph for this function:

◆ extract_sub_grid()

void extract_sub_grid ( const int *  lower_corner,
const int *  upper_corner,
const int *  position,
const tensor *const  grid,
tensor *const  subgrid 
)

Definition at line 187 of file grid_dgemm_utils.c.

Here is the caller graph for this function:

◆ add_sub_grid()

void add_sub_grid ( const int *  lower_corner,
const int *  upper_corner,
const int *  position,
const tensor subgrid,
tensor grid 
)

Definition at line 226 of file grid_dgemm_utils.c.

Here is the caller graph for this function:

◆ compute_cube_properties()

int compute_cube_properties ( const bool  ortho,
const double  radius,
const double  dh[3][3],
const double  dh_inv[3][3],
const double *  rp,
double *  disr_radius,
double *  roffset,
int *  cubecenter,
int *  lb_cube,
int *  ub_cube,
int *  cube_size 
)

Definition at line 270 of file grid_dgemm_utils.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ return_cube_position()

void return_cube_position ( const int *const  lb_grid,
const int *const  cube_center,
const int *const  lower_boundaries_cube,
const int *const  period,
int *const  position 
)

Definition at line 363 of file grid_dgemm_utils.c.

Here is the call graph for this function:

◆ verify_orthogonality()

void verify_orthogonality ( const double  dh[3][3],
bool  orthogonal[3] 
)

Definition at line 372 of file grid_dgemm_utils.c.

Here is the caller graph for this function:

◆ dger_()

void dger_ ( const int *  M,
const int *  N,
const double *  alpha,
const double *  X,
const int *  incX,
const double *  Y,
const int *  incY,
double *  A,
const int *  lda 
)
extern
Here is the caller graph for this function:

◆ dgemv_()

void dgemv_ ( const char *  Trans,
const int *  M,
const int *  N,
const double *  alpha,
const double *  A,
const int *  lda,
const double *  X,
const int *  incX,
const double *  beta,
double *  Y,
const int *  incY 
)
extern
Here is the caller graph for this function:

◆ cblas_daxpy()

void cblas_daxpy ( const int  N,
const double  alpha,
const double *  X,
const int  incX,
double *  Y,
const int  incY 
)

Definition at line 406 of file grid_dgemm_utils.c.

Here is the caller graph for this function:

◆ cblas_ddot()

double cblas_ddot ( const int  N,
const double *  X,
const int  incX,
const double *  Y,
const int  incY 
)

Definition at line 431 of file grid_dgemm_utils.c.

Here is the caller graph for this function:

◆ cblas_dger()

void cblas_dger ( const CBLAS_LAYOUT  Layout,
const int  M,
const int  N,
const double  alpha,
const double *  X,
const int  incX,
const double *  Y,
const int  incY,
double *  A,
const int  lda 
)

Definition at line 468 of file grid_dgemm_utils.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cblas_dgemv()

void cblas_dgemv ( const CBLAS_LAYOUT  order,
const CBLAS_TRANSPOSE  TransA,
const int  M,
const int  N,
const double  alpha,
const double *  A,
const int  lda,
const double *  X,
const int  incX,
const double  beta,
double *  Y,
const int  incY 
)

Definition at line 480 of file grid_dgemm_utils.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_interval()

void compute_interval ( const int *const  map,
const int  full_size,
const int  size,
const int  cube_size,
const int  x1,
int *  x,
int *const  lower_corner,
int *const  upper_corner,
const Interval  window 
)

Definition at line 501 of file grid_dgemm_utils.c.

Here is the call graph for this function:
Here is the caller graph for this function: