Cloudy
Spectral Synthesis Code for Astrophysics
Loading...
Searching...
No Matches
optimize_subplx.cpp File Reference
#include "cddefines.h"
#include "optimize.h"
Include dependency graph for optimize_subplx.cpp:

Classes

struct  t_usubc
 
struct  t_isubc
 

Macros

#define S(I_, J_)
 
#define S(I_, J_)
 
#define S(I_, J_)
 

Functions

STATIC void calcc (long, realnum *, long, long, int, realnum[])
 
STATIC double cdasum (long, realnum[], long)
 
STATIC void cdaxpy (long, double, realnum[], long, realnum[], long)
 
STATIC void cdcopy (long, realnum[], long, realnum[], long)
 
STATIC void csscal (long, double, realnum[], long)
 
STATIC double dist (long, realnum[], realnum[])
 
STATIC void evalf (long, long[], realnum[], long, realnum[], realnum *, long *)
 
STATIC void fstats (double, long, int)
 
STATIC void newpt (long, double, realnum[], realnum[], int, realnum[], int *)
 
STATIC void order (long, realnum[], long *, long *, long *)
 
STATIC void partx (long, long[], realnum[], long *, long[])
 
STATIC void setstp (long, long, realnum[], realnum[])
 
STATIC void simplx (long, realnum[], long, long[], long, int, realnum[], realnum *, long *, realnum *, realnum[], long *)
 
STATIC void sortd (long, realnum[], long[])
 
STATIC void start (long, realnum[], realnum[], long, long[], realnum *, int *)
 
STATIC void subopt (long)
 
void optimize_subplex (long int n, double tol, long int maxnfe, long int mode, realnum scale[], realnum x[], realnum *fx, long int *nfe, realnum work[], long int iwork[], long int *iflag)
 
STATIC void subopt (long int n)
 
STATIC void cdcopy (long int n, realnum dx[], long int incx, realnum dy[], long int incy)
 
STATIC void evalf (long int ns, long int ips[], realnum xs[], long int n, realnum x[], realnum *sfx, long int *nfe)
 
STATIC void setstp (long int nsubs, long int n, realnum deltax[], realnum step[])
 
STATIC void sortd (long int n, realnum xkey[], long int ix[])
 
STATIC void partx (long int n, long int ip[], realnum absdx[], long int *nsubs, long int nsvals[])
 
STATIC void simplx (long int n, realnum step[], long int ns, long int ips[], long int maxnfe, int cmode, realnum x[], realnum *fx, long int *nfe, realnum *s, realnum fs[], long int *iflag)
 
STATIC void fstats (double fx, long int ifxwt, int reset)
 
STATIC double cdasum (long int n, realnum dx[], long int incx)
 
STATIC void csscal (long int n, double da, realnum dx[], long int incx)
 
STATIC void start (long int, realnum x[], realnum step[], long int ns, long int ips[], realnum *s, int *small)
 
STATIC void order (long int npts, realnum fs[], long int *il, long int *is, long int *ih)
 
STATIC double dist (long int n, realnum x[], realnum y[])
 
STATIC void calcc (long int ns, realnum *s, long int ih, long int inew, int updatc, realnum c[])
 
STATIC void newpt (long int ns, double coef, realnum xbase[], realnum xold[], int IntNew, realnum xnew[], int *small)
 
STATIC void cdaxpy (long int n, double da, realnum dx[], long int incx, realnum dy[], long int incy)
 

Variables

struct t_usubc usubc
 
struct t_isubc isubc
 

Macro Definition Documentation

◆ S [1/3]

◆ S [2/3]

#define S ( I_,
J_ )
Value:
(*(s+(I_)*(ns)+(J_)))

◆ S [3/3]

#define S ( I_,
J_ )
Value:
(*(s+(I_)*(ns)+(J_)))

Function Documentation

◆ calcc() [1/2]

STATIC void calcc ( long int ns,
realnum * s,
long int ih,
long int inew,
int updatc,
realnum c[] )

References cdaxpy(), cdcopy(), csscal(), DEBUG_ENTRY, S, and STATIC.

Here is the call graph for this function:

◆ calcc() [2/2]

STATIC void calcc ( long ,
realnum * ,
long ,
long ,
int ,
realnum [] )

References STATIC.

Referenced by simplx().

◆ cdasum() [1/2]

STATIC double cdasum ( long int n,
realnum dx[],
long int incx )

References DEBUG_ENTRY, and STATIC.

◆ cdasum() [2/2]

STATIC double cdasum ( long ,
realnum [],
long  )

References STATIC.

Referenced by setstp().

◆ cdaxpy() [1/2]

STATIC void cdaxpy ( long int n,
double da,
realnum dx[],
long int incx,
realnum dy[],
long int incy )

References da(), DEBUG_ENTRY, and STATIC.

Here is the call graph for this function:

◆ cdaxpy() [2/2]

STATIC void cdaxpy ( long ,
double ,
realnum [],
long ,
realnum [],
long  )

References STATIC.

Referenced by calcc().

◆ cdcopy() [1/2]

STATIC void cdcopy ( long int n,
realnum dx[],
long int incx,
realnum dy[],
long int incy )

References DEBUG_ENTRY, and STATIC.

◆ cdcopy() [2/2]

STATIC void cdcopy ( long ,
realnum [],
long ,
realnum [],
long  )

References STATIC.

Referenced by calcc(), optimize_subplex(), simplx(), and start().

◆ csscal() [1/2]

STATIC void csscal ( long int n,
double da,
realnum dx[],
long int incx )

References da(), DEBUG_ENTRY, and STATIC.

Here is the call graph for this function:

◆ csscal() [2/2]

STATIC void csscal ( long ,
double ,
realnum [],
long  )

References STATIC.

Referenced by calcc(), and setstp().

◆ dist() [1/2]

STATIC double dist ( long int n,
realnum x[],
realnum y[] )

References DEBUG_ENTRY, POW2, and STATIC.

◆ dist() [2/2]

◆ evalf() [1/2]

STATIC void evalf ( long int ns,
long int ips[],
realnum xs[],
long int n,
realnum x[],
realnum * sfx,
long int * nfe )

References DEBUG_ENTRY, fstats(), isubc, optimize_func(), STATIC, and usubc.

Here is the call graph for this function:

◆ evalf() [2/2]

STATIC void evalf ( long ,
long [],
realnum [],
long ,
realnum [],
realnum * ,
long *  )

References STATIC.

Referenced by optimize_subplex(), and simplx().

◆ fstats() [1/2]

STATIC void fstats ( double fx,
long int ifxwt,
int reset )

References DEBUG_ENTRY, MAX2, MAX3, MIN2, POW2, STATIC, and usubc.

◆ fstats() [2/2]

STATIC void fstats ( double ,
long ,
int  )

References STATIC.

Referenced by evalf().

◆ newpt() [1/2]

STATIC void newpt ( long int ns,
double coef,
realnum xbase[],
realnum xold[],
int IntNew,
realnum xnew[],
int * small )

References DEBUG_ENTRY, and STATIC.

◆ newpt() [2/2]

STATIC void newpt ( long ,
double ,
realnum [],
realnum [],
int ,
realnum [],
int *  )

References STATIC.

Referenced by simplx().

◆ optimize_subplex()

void optimize_subplex ( long int n,
double tol,
long int maxnfe,
long int mode,
realnum scale[],
realnum x[],
realnum * fx,
long int * nfe,
realnum work[],
long int iwork[],
long int * iflag )

optimize_subplex is the main driver, and only exposed, routine for the cowan downhill simplex routine

Parameters
n
tol
maxnfe
mode
scale[]
x[]
*fx
*nfe
work[]
iwork[]
*iflag

References cdcopy(), DEBUG_ENTRY, evalf(), fp_equal(), isubc, MAX2, partx(), POW2, setstp(), simplx(), sortd(), subopt(), and usubc.

Referenced by optimize_do().

Here is the call graph for this function:

◆ order() [1/2]

STATIC void order ( long int npts,
realnum fs[],
long int * il,
long int * is,
long int * ih )

References DEBUG_ENTRY, and STATIC.

◆ order() [2/2]

STATIC void order ( long ,
realnum [],
long * ,
long * ,
long *  )

References STATIC.

Referenced by dawson10(), FastVoigtH(), FastVoigtH(), and simplx().

◆ partx() [1/2]

STATIC void partx ( long int n,
long int ip[],
realnum absdx[],
long int * nsubs,
long int nsvals[] )

References DEBUG_ENTRY, MIN2, STATIC, and usubc.

◆ partx() [2/2]

STATIC void partx ( long ,
long [],
realnum [],
long * ,
long [] )

References STATIC.

Referenced by optimize_subplex().

◆ setstp() [1/2]

STATIC void setstp ( long int nsubs,
long int n,
realnum deltax[],
realnum step[] )

References cdasum(), csscal(), DEBUG_ENTRY, MAX2, MIN2, sign(), STATIC, and usubc.

Here is the call graph for this function:

◆ setstp() [2/2]

STATIC void setstp ( long ,
long ,
realnum [],
realnum [] )

References STATIC.

Referenced by optimize_subplex().

◆ simplx() [1/2]

STATIC void simplx ( long int n,
realnum step[],
long int ns,
long int ips[],
long int maxnfe,
int cmode,
realnum x[],
realnum * fx,
long int * nfe,
realnum * s,
realnum fs[],
long int * iflag )

References calcc(), cdcopy(), DEBUG_ENTRY, dist(), evalf(), fe, isubc, MIN2, newpt(), order(), S, start(), STATIC, and usubc.

Here is the call graph for this function:

◆ simplx() [2/2]

STATIC void simplx ( long ,
realnum [],
long ,
long [],
long ,
int ,
realnum [],
realnum * ,
long * ,
realnum * ,
realnum [],
long *  )

References STATIC.

Referenced by optimize_subplex().

◆ sortd() [1/2]

STATIC void sortd ( long int n,
realnum xkey[],
long int ix[] )

References DEBUG_ENTRY, and STATIC.

◆ sortd() [2/2]

STATIC void sortd ( long ,
realnum [],
long [] )

References STATIC.

Referenced by optimize_subplex().

◆ start() [1/2]

STATIC void start ( long int ,
realnum x[],
realnum step[],
long int ns,
long int ips[],
realnum * s,
int * small )

References cdcopy(), DEBUG_ENTRY, S, and STATIC.

Here is the call graph for this function:

◆ start() [2/2]

STATIC void start ( long ,
realnum [],
realnum [],
long ,
long [],
realnum * ,
int *  )

◆ subopt() [1/2]

STATIC void subopt ( long int n)

References DEBUG_ENTRY, MIN2, STATIC, and usubc.

◆ subopt() [2/2]

STATIC void subopt ( long )

References STATIC.

Referenced by optimize_subplex().

Variable Documentation

◆ isubc

struct t_isubc isubc

Referenced by evalf(), optimize_subplex(), and simplx().

◆ usubc