muMECH  1.0
Namespaces | Macros
macros.h File Reference

The header file of usefull macros. More...

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <float.h>
#include <limits.h>
#include "gelib.h"

Go to the source code of this file.

Namespaces

 mumech
 

Macros

#define WIN32_LEAN_AND_MEAN
 
#define _NOCASE
 Case sensitive. More...
 
#define CASE   false
 
#define _STRCMP   _STRCASECMP
 
#define _STRNCMP   strncmp
 
#define MACHINE_EPS   1E-16
 
#define MACHINE_EPS_PRN   1E-8
 
#define PI   3.14159265358979323846
 
#define SQRT_2   1.41421356237309504880168872
 
#define _1_BY_SQRT_2   0.70710678118654752440084436
 
#define FileError(fmode, name)   fprintf(stderr,"\033[31mCannot %s file %s in file %s line %d\033[0m\n", fmode, name, __FILE__,__LINE__); exit( 1 );
 
#define FOPEN(file, name, mode)   if( ( file = fopen(name,mode) ) == NULL) {FileError("open", name)}
 
#define FCLOSE(file)   if (( fclose(file) ) == EOF) {FileError("close","")}
 
#define FREAD(var, number, file)   fread ( &var, sizeof ( var ), number, file )
 
#define FWRITE(var, number, file)   fwrite ( &var, sizeof ( var ), number, file )
 
#define NotImplementedFunction(name)   _errorr2( "Function %s : not implemented yet\n", name );
 
#define Dprintf(format, var)   printf (" %s = ", #var ); printf ( format, var )
 
#define Dfprintf(file, format, var)   fprintf (file," %s = ", #var ); fprintf ( file, format, var )
 
#define NfoPrint(string, value)   fprintf( stderr, "\033[31mNotice : \033[0m" ); fprintf(stderr,string,value);
 
#define SWAP(a, b, dummy)   dummy=a;a=b;b=dummy
 
#define SQR(a)   ( ( a ) * ( a ) )
 
#define CUB(a)   ( ( a ) * ( a ) * ( a ) )
 
#define MIN(a, b)   ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
 
#define MAX(a, b)   ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
 
#define MID(a, b, c)   MIN( MIN(MAX(a,b), MAX(b,c)), MIN(MAX(b,c), MAX(c,a)) )
 
#define CDMAX(a, b)   (((SQR(real(a))+SQR(imag(a)))>(SQR(real(b))+SQR(imag(b)))) ? (a) : (b))
 
#define CReMAX(a, b)   ( ( real( a ) > real( b ) ) ? ( a ) : ( b ) )
 
#define CImMAX(a, b)   ( ( imag( a ) > imag( b ) ) ? ( a ) : ( b ) )
 
#define ABS(a)   ( ( ( a ) > 0 ) ? ( a ) : ( -1 * ( a ) ) )
 
#define odd_or_even(a)   ( ( ( ( a ) % 2 ) > 0 ) ? ODD : EVEN )
 
#define DEG2RAD(a)   ( ( a ) * PI / 180. )
 
#define RAD2DEG(a)   ( ( a ) * 180. / PI )
 
#define INFTY   1e+36
 
#define delta(i, j)   ( ( i == j ) ? 1. : 0. )
 
#define jump_empties(p_str)   while( ( * p_str ) <= ' ' && ( * p_str ) != '\0' ){ p_str++; }
 
#define jump_word(p_str)   while( ( * p_str ) > ' ' && ( * p_str ) != '\0' ){ p_str++; }
 
#define sscanff(p_str, format, p_var)   jump_empties( p_str ); sscanf( p_str, format, p_var ); jump_word( p_str )
 
#define VEC_SQR_NORM_2D(x, y)   ( SQR( x ) + SQR( y ) )
 
#define VEC_SQR_NORM_3D(x, y, z)   ( SQR( x ) + SQR( y ) + SQR( z ) )
 
#define VEC_NORM(x, y, z)   sqrt( VEC_SQR_NORM_3D( x, y, z ) )
 
#define DIST_POINTS_SQR_2D(P1, P2)   ( SQR( P1[0] - P2[0] ) + SQR( P1[1] - P2[1] ) )
 
#define DIST_POINTS_SQR_3D(P1, P2)   ( SQR( P1[0] - P2[0] ) + SQR( P1[1] - P2[1] ) + SQR( P1[2] - P2[2] ) )
 

Detailed Description

The header file of usefull macros.

Definition in file macros.h.

Macro Definition Documentation

#define _1_BY_SQRT_2   0.70710678118654752440084436

Definition at line 74 of file macros.h.

#define _NOCASE

Case sensitive.

Definition at line 53 of file macros.h.

#define _STRCMP   _STRCASECMP
#define _STRNCMP   strncmp

Definition at line 58 of file macros.h.

Referenced by mumech::Problem::read_input_file().

#define ABS (   a)    ( ( ( a ) > 0 ) ? ( a ) : ( -1 * ( a ) ) )
#define CASE   false
#define CDMAX (   a,
 
)    (((SQR(real(a))+SQR(imag(a)))>(SQR(real(b))+SQR(imag(b)))) ? (a) : (b))

Definition at line 106 of file macros.h.

#define CImMAX (   a,
 
)    ( ( imag( a ) > imag( b ) ) ? ( a ) : ( b ) )

Definition at line 114 of file macros.h.

#define CReMAX (   a,
 
)    ( ( real( a ) > real( b ) ) ? ( a ) : ( b ) )

Definition at line 110 of file macros.h.

Referenced by mumech::eshelbySoluLambda::giveLambda().

#define CUB (   a)    ( ( a ) * ( a ) * ( a ) )
#define DEG2RAD (   a)    ( ( a ) * PI / 180. )

Definition at line 132 of file macros.h.

Referenced by mumech::Inclusion::EAdeg2rad().

#define delta (   i,
 
)    ( ( i == j ) ? 1. : 0. )
#define Dfprintf (   file,
  format,
  var 
)    fprintf (file," %s = ", #var ); fprintf ( file, format, var )

Definition at line 88 of file macros.h.

#define DIST_POINTS_SQR_2D (   P1,
  P2 
)    ( SQR( P1[0] - P2[0] ) + SQR( P1[1] - P2[1] ) )

Definition at line 209 of file macros.h.

Referenced by mumech::Inclusion::find_overlap().

#define DIST_POINTS_SQR_3D (   P1,
  P2 
)    ( SQR( P1[0] - P2[0] ) + SQR( P1[1] - P2[1] ) + SQR( P1[2] - P2[2] ) )

Definition at line 210 of file macros.h.

Referenced by mumech::Inclusion::find_overlap().

#define Dprintf (   format,
  var 
)    printf (" %s = ", #var ); printf ( format, var )

Definition at line 87 of file macros.h.

#define FCLOSE (   file)    if (( fclose(file) ) == EOF) {FileError("close","")}

Definition at line 79 of file macros.h.

#define FileError (   fmode,
  name 
)    fprintf(stderr,"\033[31mCannot %s file %s in file %s line %d\033[0m\n", fmode, name, __FILE__,__LINE__); exit( 1 );

Definition at line 77 of file macros.h.

Referenced by mumech::CloseFile(), and mumech::OpenFile().

#define FOPEN (   file,
  name,
  mode 
)    if( ( file = fopen(name,mode) ) == NULL) {FileError("open", name)}

Definition at line 78 of file macros.h.

#define FREAD (   var,
  number,
  file 
)    fread ( &var, sizeof ( var ), number, file )

Definition at line 81 of file macros.h.

#define FWRITE (   var,
  number,
  file 
)    fwrite ( &var, sizeof ( var ), number, file )

Definition at line 82 of file macros.h.

#define INFTY   1e+36
#define jump_empties (   p_str)    while( ( * p_str ) <= ' ' && ( * p_str ) != '\0' ){ p_str++; }

Definition at line 192 of file macros.h.

#define jump_word (   p_str)    while( ( * p_str ) > ' ' && ( * p_str ) != '\0' ){ p_str++; }

Definition at line 196 of file macros.h.

#define MACHINE_EPS   1E-16
#define MACHINE_EPS_PRN   1E-8
#define MAX (   a,
 
)    ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
#define MID (   a,
  b,
 
)    MIN( MIN(MAX(a,b), MAX(b,c)), MIN(MAX(b,c), MAX(c,a)) )

Definition at line 103 of file macros.h.

#define MIN (   a,
 
)    ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
#define NfoPrint (   string,
  value 
)    fprintf( stderr, "\033[31mNotice : \033[0m" ); fprintf(stderr,string,value);

Definition at line 90 of file macros.h.

#define NotImplementedFunction (   name)    _errorr2( "Function %s : not implemented yet\n", name );

Definition at line 86 of file macros.h.

#define odd_or_even (   a)    ( ( ( ( a ) % 2 ) > 0 ) ? ODD : EVEN )

Definition at line 126 of file macros.h.

#define PI   3.14159265358979323846

Definition at line 71 of file macros.h.

Referenced by mumech::InclusionRecord2D::compute_D(), mumech::InclusionRecord2D::compute_I_S(), mumech::InclusionRecord2D::compute_S_int(), mumech::InclusionRecord3D::computeVolume(), mumech::InclusionRecord2D::computeVolume(), deg2rad(), mumech::eshelbySoluUniformField::eshelbySoluUniformField(), mumech::polynomialRootSolution::GauHerQ(), mumech::polynomialRootSolution::GauLegF(), mumech::Mesh::generate_regularSphereMesh_2d(), mumech::Mesh::generate_regularSphereMesh_3d(), mumech::polynomialRootSolution::GetCubicPolyRoots(), mumech::InclusionRecord2D::getDisplacement(), mumech::eshelbySoluEllipticIntegralsEllipsoid::getLambda(), mumech::give_curvature(), mumech::eshelbySoluEllipticIntegralsEllipsoid::give_Iijpq_Derivative(), mumech::eshelbySoluEllipticIntegralsEllipsoid::give_Iipq_Derivative(), mumech::eshelbySoluEllipticIntegralsEllipsoid::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveEllipticIntegrals(), mumech::eshelbySoluUniformField::giveSijkl(), mumech::giveVolumeEllipsoid(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I1(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I12(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I2(), mumech::eshelbySoluEllipticIntegralsCylinder::I2(), mumech::eshelbySoluEllipticIntegralsCylinder::I22(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I33(), speedtest2Dx3D(), and mumech::bod_pomocny::spocitat().

#define RAD2DEG (   a)    ( ( a ) * 180. / PI )

Definition at line 136 of file macros.h.

#define SQR (   a)    ( ( a ) * ( a ) )

Definition at line 97 of file macros.h.

Referenced by mumech::eshelbySoluLambda::c_dLambda(), mumech::eshelbySoluEllipticIntegralsSphere::cIi_i(), mumech::eshelbySoluEllipticIntegralsEllipsoid::cIi_i(), mumech::eshelbySoluEllipticIntegralsSphere::cIij_i(), mumech::eshelbySoluEllipticIntegralsEllipsoid::cIij_i(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::eI(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::eI(), mumech::eshelbySoluEllipticIntegralsEllipsoid::eI(), mumech::legendreIntegrals::elle(), mumech::legendreIntegrals::ellf(), mumech::legendreIntegrals::ellpi(), mumech::eshelbySoluUniformFieldCylinder::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldEllipticCylinder::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldFlatEllipsoid::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldOblateSpheroid::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldPenny::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformFieldProlateSpheroid::eshelbyTensCompUniformField(), mumech::eshelbySoluUniformField::eshelbyTensCompUniformField(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::get_b(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::get_b(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::get_d(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::get_d(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::get_delta_lambda(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::get_delta_lambda(), mumech::polynomialRootSolution::GetCubicPolyRoots(), mumech::eshelbySoluEllipticIntegralsCylinder::getLambda(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::getLambda(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::getLambda(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::getLambda(), mumech::eshelbySoluEllipticIntegralsSphere::getLambda(), mumech::eshelbySoluEllipticIntegralsEllipsoid::getLambda(), mumech::eshelbySoluEllipticIntegralsEllipsoid::give_Iijp_Derivative(), mumech::eshelbySoluEllipticIntegralsEllipsoid::give_Iijpq_Derivative(), mumech::eshelbySoluEllipticIntegralsEllipsoid::give_Iip_Derivative(), mumech::eshelbySoluEllipticIntegralsEllipsoid::give_Iipq_Derivative(), mumech::give_quadNormTwoVectors(), mumech::TransformTensors::give_Te(), mumech::TransformTensors::give_Te_3d(), mumech::eshelbySoluEllipticIntegralsSphere::giveDerivativesOfEllipticIntegrals(), mumech::eshelbySoluUniformFieldOblateSpheroid::giveDijkl(), mumech::eshelbySoluUniformFieldProlateSpheroid::giveDijkl(), mumech::eshelbySoluUniformFieldCylinder::giveDijkl(), mumech::eshelbySoluUniformFieldEllipticCylinder::giveDijkl(), mumech::eshelbySoluUniformFieldSphere::giveDijkl(), mumech::eshelbySoluUniformField::giveDijkl(), mumech::eshelbySoluEllipticIntegralsFlatEllipsoid::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsPenny::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsEllipsoid::giveEllipticIntegrals(), mumech::eshelbySoluEllipticIntegralsSphere::giveEllipticIntegrals(), mumech::eshelbySoluUniformFieldSphere::giveEshelbyTensorInverse(), mumech::InclusionRecord2D::giveExtStrainPert(), mumech::eshelbySoluLambda::giveLambda(), mumech::eshelbySoluLambda::giveLambdaFirstDerivative(), mumech::eshelbySoluLambda::giveLambdaSeccondDerivative(), mumech::eshelbySoluUniformFieldOblateSpheroid::giveLijkEXT(), mumech::eshelbySoluUniformFieldProlateSpheroid::giveLijkEXT(), mumech::eshelbySoluUniformFieldSphere::giveLijkEXT(), mumech::eshelbySoluUniformField::giveLijkEXT(), mumech::eshelbySoluUniformFieldOblateSpheroid::giveLijkINT(), mumech::eshelbySoluUniformFieldProlateSpheroid::giveLijkINT(), mumech::eshelbySoluUniformFieldSphere::giveLijkINT(), mumech::eshelbySoluUniformField::giveLijkINT(), mumech::eshelbySoluUniformFieldPenny::giveSijkl(), mumech::eshelbySoluUniformFieldFlatEllipsoid::giveSijkl(), mumech::eshelbySoluUniformFieldProlateSpheroid::giveSijkl(), mumech::eshelbySoluUniformFieldOblateSpheroid::giveSijkl(), mumech::eshelbySoluUniformFieldCylinder::giveSijkl(), mumech::eshelbySoluUniformFieldEllipticCylinder::giveSijkl(), mumech::eshelbySoluUniformFieldSphere::giveSijkl(), mumech::eshelbySoluUniformField::giveSijkl(), mumech::giveVectorLength(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I1(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I1(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I1(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I11(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I11(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I12(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I12(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I13(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I13(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I13(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I2(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::I2(), mumech::eshelbySoluEllipticIntegralsCylinder::I2(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::I22(), mumech::eshelbySoluEllipticIntegralsCylinder::I22(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I22(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::I23(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I23(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I3(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::I3(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I3(), mumech::eshelbySoluEllipticIntegralsEllipticCylinder::I33(), mumech::eshelbySoluEllipticIntegralsProlateSpheroid::I33(), mumech::eshelbySoluEllipticIntegralsOblateSpheroid::I33(), mumech::eshelbySoluEllipticIntegralsEllipsoid::I33(), mumech::InclusionRecord3D::initialize(), mumech::Inclusion::input_data_initialize_and_check_consistency(), mumech::eshelbySoluEllipticIntegralsEllipsoid::nIi_i(), mumech::eshelbySoluEllipticIntegralsEllipsoid::nIij_i(), mumech::Inclusion::point_is_inside(), mumech::legendreIntegrals::rj(), and mumech::Problem::updateEpsTauInSBal().

#define SQRT_2   1.41421356237309504880168872

Definition at line 73 of file macros.h.

#define sscanff (   p_str,
  format,
  p_var 
)    jump_empties( p_str ); sscanf( p_str, format, p_var ); jump_word( p_str )

Definition at line 200 of file macros.h.

#define SWAP (   a,
  b,
  dummy 
)    dummy=a;a=b;b=dummy

Definition at line 94 of file macros.h.

Referenced by mumech::eshelbySoluLambda::giveLambdaSeccondDerivative().

#define VEC_NORM (   x,
  y,
 
)    sqrt( VEC_SQR_NORM_3D( x, y, z ) )

Definition at line 207 of file macros.h.

#define VEC_SQR_NORM_2D (   x,
 
)    ( SQR( x ) + SQR( y ) )

Definition at line 204 of file macros.h.

Referenced by mumech::InclusionRecord2D::point_is_affected().

#define VEC_SQR_NORM_3D (   x,
  y,
 
)    ( SQR( x ) + SQR( y ) + SQR( z ) )

Definition at line 206 of file macros.h.

Referenced by mumech::InclusionRecord3D::point_is_affected().

#define WIN32_LEAN_AND_MEAN

Definition at line 37 of file macros.h.