cloudy  trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes
phymir_state< X, Y, NP, NSTR > Class Template Reference

#include <optimize.h>

Collaboration diagram for phymir_state< X, Y, NP, NSTR >:
Collaboration graph
[legend]

Public Member Functions

 phymir_state ()
 
void clear ()
 
void init_minmax (const X[], const X[], int)
 
void init_state_file_name (const char *)
 
void init_strings (const char *, const char *, const char *)
 
void initial_run (Y(*)(const X[], int), int, const X[], const X[], X, int, phymir_mode, int)
 
void continue_from_state (Y(*)(const X[], int), int, const char *, X, int, phymir_mode, int)
 
void optimize ()
 
void optimize_with_restart ()
 
bool lgMaxIterExceeded () const
 
bool lgInitialized () const
 
bool lgConverged () const
 
bool lgConvergedRestart () const
 
X xval (int i) const
 
X xmin (int i) const
 
X xmax (int i) const
 
Y yval () const
 
int32 noptim () const
 

Private Member Functions

void p_clear1 ()
 
void p_wr_state (const char *) const
 
void p_rd_state (const char *)
 
Y p_execute_job (const X[], int, int)
 
void p_execute_job_parallel (const X[], int, int) const
 
void p_barrier (int, int)
 
void p_process_output (int, int)
 
void p_evaluate_hyperblock ()
 
void p_setup_next_hyperblock ()
 
void p_reset_hyperblock ()
 
void p_phygrm (X[][NP], int)
 
bool p_lgLimitExceeded (const X[]) const
 
X p_delta (int i, int j) const
 
void p_reset_transformation_matrix ()
 

Private Attributes

X p_xmax
 
Y p_ymax
 
X p_xp [2 *NP+1][NP]
 
Y p_yp [2 *NP+1]
 
X p_absmin [NP]
 
X p_absmax [NP]
 
X p_varmin [NP]
 
X p_varmax [NP]
 
X p_a2 [NP][NP]
 
X p_c1 [NP]
 
X p_c2 [NP]
 
X p_xc [NP]
 
X p_xcold [NP]
 
X p_vers
 
X p_toler
 
X p_dmax
 
X p_dold
 
Y p_ymin
 
int32 p_dim
 
int32 p_sdim
 
int32 p_nvar
 
int32 p_noptim
 
int32 p_maxiter
 
int32 p_jmin
 
int32 p_maxcpu
 
int32 p_curcpu
 
phymir_mode p_mode
 
char p_chState [NSTR]
 
char p_chStr1 [NSTR]
 
char p_chStr2 [NSTR]
 
char p_chStr3 [NSTR]
 
uint32 p_size
 
Y(* p_func )(const X[], int)
 

Detailed Description

template<class X, class Y = X, int NP = 32, int NSTR = 32>
class phymir_state< X, Y, NP, NSTR >

Definition at line 71 of file optimize.h.

Constructor & Destructor Documentation

template<class X, class Y = X, int NP = 32, int NSTR = 32>
phymir_state< X, Y, NP, NSTR >::phymir_state ( )
inline

Definition at line 128 of file optimize.h.

References phymir_state< X, Y, NP, NSTR >::p_clear1().

Here is the call graph for this function:

Member Function Documentation

template<class X, class Y = X, int NP = 32, int NSTR = 32>
void phymir_state< X, Y, NP, NSTR >::clear ( )
inline

Definition at line 129 of file optimize.h.

References phymir_state< X, Y, NP, NSTR >::p_clear1().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::continue_from_state ( Y(*)(const X[], int)  func,
int  nvar,
const char *  fnam,
X  toler,
int  maxiter,
phymir_mode  mode,
int  maxcpu 
)

Definition at line 580 of file optimize_phymir.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fp_equal(), and VRSNEW.

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::init_minmax ( const X  pmin[],
const X  pmax[],
int  nvar 
)

Definition at line 485 of file optimize_phymir.cpp.

References ASSERT, and DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::init_state_file_name ( const char *  fnam)

Definition at line 519 of file optimize_phymir.cpp.

References DEBUG_ENTRY.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::init_strings ( const char *  date,
const char *  version,
const char *  host_name 
)

Definition at line 501 of file optimize_phymir.cpp.

References DEBUG_ENTRY.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::initial_run ( Y(*)(const X[], int)  func,
int  nvar,
const X  start[],
const X  del[],
X  toler,
int  maxiter,
phymir_mode  mode,
int  maxcpu 
)

Definition at line 528 of file optimize_phymir.cpp.

References ASSERT, DEBUG_ENTRY, max(), and min().

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
bool phymir_state< X, Y, NP, NSTR >::lgConverged ( ) const
inline
template<class X , class Y , int NP, int NSTR>
bool phymir_state< X, Y, NP, NSTR >::lgConvergedRestart ( ) const

Definition at line 658 of file optimize_phymir.cpp.

References DEBUG_ENTRY, dist(), and pow2().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
bool phymir_state< X, Y, NP, NSTR >::lgInitialized ( ) const
inline

Definition at line 138 of file optimize.h.

References phymir_state< X, Y, NP, NSTR >::p_nvar.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
bool phymir_state< X, Y, NP, NSTR >::lgMaxIterExceeded ( ) const
inline
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::noptim ( ) const
inline

Definition at line 145 of file optimize.h.

References phymir_state< X, Y, NP, NSTR >::p_noptim.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::optimize ( )

Definition at line 625 of file optimize_phymir.cpp.

References ASSERT, and DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::optimize_with_restart ( )

Definition at line 642 of file optimize_phymir.cpp.

References ASSERT, DEBUG_ENTRY, and optimize.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_barrier ( int  jlo,
int  jhi 
)
private

Definition at line 212 of file optimize_phymir.cpp.

References DEBUG_ENTRY, MPI_Barrier, MPI_Bcast, PHYMIR_FORK, PHYMIR_MPI, PHYMIR_SEQ, TotalInsanity(), and wait.

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_clear1 ( )
private

Definition at line 34 of file optimize_phymir.cpp.

References DEBUG_ENTRY, max(), PHYMIR_ILL, and VRSNEW.

Referenced by phymir_state< X, Y, NP, NSTR >::clear(), and phymir_state< X, Y, NP, NSTR >::phymir_state().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_delta ( int  i,
int  j 
) const
inlineprivate

Definition at line 123 of file optimize.h.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_evaluate_hyperblock ( )
private

Definition at line 265 of file optimize_phymir.cpp.

References DEBUG_ENTRY, max(), and min().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
Y phymir_state< X, Y, NP, NSTR >::p_execute_job ( const X  x[],
int  jj,
int  runNr 
)
private

Definition at line 128 of file optimize_phymir.cpp.

References cdEXIT, cpu, DEBUG_ENTRY, EXIT_FAILURE, EXIT_SUCCESS, fork, fprintf(), t_cpu::i(), ioQQQ, t_cpu_i::nCPU(), t_cpu_i::nRANK(), PHYMIR_FORK, PHYMIR_MPI, PHYMIR_SEQ, pid_t, TotalInsanity(), and wait.

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_execute_job_parallel ( const X  x[],
int  jj,
int  runNr 
) const
private

Definition at line 178 of file optimize_phymir.cpp.

References DEBUG_ENTRY, ioQQQ, open_data(), and wr_block().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
bool phymir_state< X, Y, NP, NSTR >::p_lgLimitExceeded ( const X  x[]) const
private

Definition at line 459 of file optimize_phymir.cpp.

References DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_phygrm ( X  a[][NP],
int  n 
)
private

Definition at line 432 of file optimize_phymir.cpp.

References DEBUG_ENTRY, and pow2().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_process_output ( int  jlo,
int  jhi 
)
private

Definition at line 244 of file optimize_phymir.cpp.

References append_file(), cpu, DEBUG_ENTRY, t_cpu::i(), ioQQQ, t_cpu_i::lgMaster(), and rd_block().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_rd_state ( const char *  fnam)
private

Definition at line 109 of file optimize_phymir.cpp.

References AS_LOCAL_ONLY, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, and open_data().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_reset_hyperblock ( )
private

Definition at line 414 of file optimize_phymir.cpp.

References DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_reset_transformation_matrix ( )
private

Definition at line 474 of file optimize_phymir.cpp.

References DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_setup_next_hyperblock ( )
private

Definition at line 296 of file optimize_phymir.cpp.

References DEBUG_ENTRY, F1, F2, max(), min(), MIN2, and pow2().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_wr_state ( const char *  fnam) const
private

Definition at line 88 of file optimize_phymir.cpp.

References AS_LOCAL_ONLY_TRY, cpu, DEBUG_ENTRY, t_cpu::i(), t_cpu_i::lgMaster(), and open_data().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::xmax ( int  i) const
inline

Definition at line 143 of file optimize.h.

References min(), phymir_state< X, Y, NP, NSTR >::p_absmax, and phymir_state< X, Y, NP, NSTR >::p_varmax.

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::xmin ( int  i) const
inline

Definition at line 142 of file optimize.h.

References max(), phymir_state< X, Y, NP, NSTR >::p_absmin, and phymir_state< X, Y, NP, NSTR >::p_varmin.

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::xval ( int  i) const
inline

Definition at line 141 of file optimize.h.

References phymir_state< X, Y, NP, NSTR >::p_xc.

Referenced by optimize_phymir().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::yval ( ) const
inline

Definition at line 144 of file optimize.h.

References phymir_state< X, Y, NP, NSTR >::p_ymin.

Referenced by optimize_phymir().

Field Documentation

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_a2[NP][NP]
private

Definition at line 81 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_absmax[NP]
private

Definition at line 78 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::xmax().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_absmin[NP]
private

Definition at line 77 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::xmin().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_c1[NP]
private

Definition at line 82 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_c2[NP]
private

Definition at line 83 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chState[NSTR]
private

Definition at line 100 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr1[NSTR]
private

Definition at line 101 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr2[NSTR]
private

Definition at line 102 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr3[NSTR]
private

Definition at line 103 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_curcpu
private

Definition at line 98 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_dim
private

Definition at line 91 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_dmax
private

Definition at line 88 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::lgConverged().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_dold
private

Definition at line 89 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y(* phymir_state< X, Y, NP, NSTR >::p_func)(const X[], int)
private

Definition at line 107 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_jmin
private

Definition at line 96 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_maxcpu
private

Definition at line 97 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_maxiter
private

Definition at line 95 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::lgMaxIterExceeded().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
phymir_mode phymir_state< X, Y, NP, NSTR >::p_mode
private

Definition at line 99 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_noptim
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_nvar
private

Definition at line 93 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::lgInitialized().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_sdim
private

Definition at line 92 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
uint32 phymir_state< X, Y, NP, NSTR >::p_size
private

Definition at line 106 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_toler
private

Definition at line 87 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::lgConverged().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_varmax[NP]
private

Definition at line 80 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::xmax().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_varmin[NP]
private

Definition at line 79 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::xmin().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_vers
private

Definition at line 86 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xc[NP]
private

Definition at line 84 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::xval().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xcold[NP]
private

Definition at line 85 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xmax
private

Definition at line 73 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xp[2 *NP+1][NP]
private

Definition at line 75 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_ymax
private

Definition at line 74 of file optimize.h.

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_ymin
private

Definition at line 90 of file optimize.h.

Referenced by phymir_state< X, Y, NP, NSTR >::yval().

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_yp[2 *NP+1]
private

Definition at line 76 of file optimize.h.


The documentation for this class was generated from the following files: