offset.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _math_scmat_offset_h
00029 #define _math_scmat_offset_h
00030
00031 #ifdef __c_plus_plus
00032
00033 namespace sc {
00034
00035 static inline int
00036 i_offset(int i)
00037 {
00038 return ((i*(i+1)) >> 1);
00039 }
00040
00041 static inline int
00042 ij_offset(int i, int j)
00043 {
00044 return (i>j) ? (((i*(i+1)) >> 1) + j) : (((j*(j+1)) >> 1) + i);
00045 }
00046
00047 static inline int
00048 igtj_offset(int i, int j)
00049 {
00050 return ((i*(i+1)) >> 1) + j;
00051 }
00052
00053 }
00054
00055 #else
00056
00057 #define i_offset(i) (((i)*((i)+1))>>1)
00058 #define ij_offset(i,j) (((i)>(j))?(i_offset(i)+(j)):(i_offset(j)+(i)))
00059 #define igtj_offset(i,j) (i_offset(i)+(j))
00060
00061 #endif
00062
00063 #endif
Generated at Thu Jul 29 19:53:51 2004 for MPQC
2.2.1 using the documentation package Doxygen
1.3.7.