LASs - Linear Algebra Routines on OmpSs  1.0.0
LASs
Macros
lass_macros.h File Reference

Macros definition. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define TILE_SIZE   512
 
#define NUM_CORES   48
 
#define MAX(a, b)   ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
 
#define MIN(a, b)   ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
 
#define FMULS_GEMM(m_, n_, k_)   ( (m_) * (n_) * (k_) )
 
#define FADDS_GEMM(m_, n_, k_)   ( (m_) * (n_) * (k_) )
 
#define FLOPS_DGEMM(m_, n_, k_)
 
#define FMULS_SYMM(side_, m_, n_)   ( ( (side_) == Left ) ? FMULS_GEMM((m_), (m_), (n_)) : FMULS_GEMM((m_), (n_), (n_)) )
 
#define FADDS_SYMM(side_, m_, n_)   ( ( (side_) == Left ) ? FADDS_GEMM((m_), (m_), (n_)) : FADDS_GEMM((m_), (n_), (n_)) )
 
#define FLOPS_DSYMM(side_, m_, n_)   ( FMULS_SYMM(side_, (double)(m_), (double)(n_)) + FADDS_SYMM(side_, (double)(m_), (double)(n_)) )
 
#define FMULS_TRSM_2(m_, n_)   ( 0.5 * (n_) * (m_) * ( (m_) + 1 ) )
 
#define FADDS_TRSM_2(m_, n_)   ( 0.5 * (n_) * (m_) * ( (m_) - 1 ) )
 
#define FMULS_TRSM(side_, m_, n_)   ( ( (side_) == Left ) ? FMULS_TRSM_2((m_), (n_)) : FMULS_TRSM_2((n_), (m_)) )
 
#define FADDS_TRSM(side_, m_, n_)   ( ( (side_) == Left ) ? FADDS_TRSM_2((m_), (n_)) : FADDS_TRSM_2((n_), (m_)) )
 
#define FLOPS_DTRSM(side_, m_, n_)   ( FMULS_TRSM(side_, (double)(m_), (double)(n_)) + FADDS_TRSM(side_, (double)(m_), (double)(n_)) )
 
#define FMULS_TRMM_2(m_, n_)   ( 0.5 * (n_) * (m_) * ( (m_) + 1 ) )
 
#define FADDS_TRMM_2(m_, n_)   ( 0.5 * (n_) * (m_) * ( (m_) - 1 ) )
 
#define FMULS_TRMM(side_, m_, n_)   ( ( (side_) == Left ) ? FMULS_TRMM_2((m_), (n_)) : FMULS_TRMM_2((n_), (m_)) )
 
#define FADDS_TRMM(side_, m_, n_)   ( ( (side_) == Left ) ? FADDS_TRMM_2((m_), (n_)) : FADDS_TRMM_2((n_), (m_)) )
 
#define FLOPS_DTRMM(side_, m_, n_)   (FMULS_TRMM(side_, (double)(m_), (double)(n_)) + FADDS_TRMM(side_, (double)(m_), (double)(n_)) )
 
#define FMULS_SYRK(k_, n_)   ( 0.5 * (k_) * (n_) * ( (n_) + 1 ) )
 
#define FADDS_SYRK(k_, n_)   ( 0.5 * (k_) * (n_) * ( (n_)+1 ) )
 
#define FLOPS_DSYRK(k_, n_)   ( FMULS_SYRK( (double)(k_), (double)(n_) ) + FADDS_SYRK( (double)(k_), (double)(n_) ) )
 
#define FMULS_SYR2K(k_, n_)   ((k_) * (n_) * (n_))
 
#define FADDS_SYR2K(k_, n_)   ((k_) * (n_) * (n_) + (n_))
 
#define FLOPS_DSYR2K(k_, n_)   (FMULS_SYR2K((double)(k_), (double)(n_)) + FADDS_SYR2K((double)(k_), (double)(n_)))
 
#define FMULS_POTRF(n_)
 
#define FADDS_POTRF(n_)   ( (1./6.) * (n_) * (n_) * (n_) - (1./6.) * (n_))
 
#define FLOPS_DPOTRF(n_)   ( FMULS_POTRF((double)(n_)) + FADDS_POTRF((double)(n_)))
 
#define FMULS_GETRF(m_, n_)   ( ( (m_) >= (n_) ) ? 0.5 * (m_) * (n_) * (n_) - 1./6. * (n_) * (n_) * (n_) + 0.5 * (m_) * (n_) - 0.5 * (n_) * (n_) + 2./3. * (n_) : 0.5 * (n_) * (m_) * (m_) - 1./6. * (m_) * (m_) * (m_) + 0.5 * (n_) * (m_) - 0.5 * (m_) * (m_) + 2./3. * (m_) )
 
#define FADDS_GETRF(m_, n_)   ( ( (m_) >= (n_) ) ? 0.5 * (m_) * (n_) * (n_) - 1./6. * (n_) * (n_) * (n_) - 0.5 * (m_) * (n_) + 1./6. * (n_) : 0.5 * (n_) * (m_) * (m_) - 1./6. * (m_) * (m_) * (m_) - 0.5 * (n_) * (m_) + 1./6. * (m_) )
 
#define FLOPS_DGETRF(m_, n_)   ( FMULS_GETRF((double)(m_), (double)(n_)) + FADDS_GETRF((double)(m_), (double)(n_)) )
 
#define DSSS_MACROS_H
 
#define FLOPS_DGTSV(n_)   ( 8 * (n_) )
 
#define FLOPS_DSPMV(nnz_)   ( 2 * (nnz_) )
 

Detailed Description

Macros definition.

LASs is a software package provided by: Barcelona Supercomputing Center - Centro Nacional de Supercomputacion

Author
Pedro Valero-Lara pedro.nosp@m..val.nosp@m.ero@b.nosp@m.sc.e.nosp@m.s
Date
2017-01-02

Definition in file lass_macros.h.

Macro Definition Documentation

#define FLOPS_DGEMM (   m_,
  n_,
  k_ 
)
Value:
( FMULS_GEMM((double)(m_), (double)(n_), \
(double)(k_)) + FADDS_GEMM((double)(m_), (double)(n_), (double)(k_)) )

Definition at line 40 of file lass_macros.h.

#define FMULS_POTRF (   n_)
Value:
( (1./6.) * (n_) * (n_) * (n_) + (0.5) * (n_) * (n_) \
+ (1./3.) * n_ )

Definition at line 93 of file lass_macros.h.