⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f2c.h

📁 L-M法的函数库
💻 H
字号:
/* f2c.h  --  Standard Fortran to C header file 

	f2c is a Fortran to C converter under development by
		David Gay (AT&T Bell Labs)
		Stu Feldman (Bellcore)
		Mark Maimone (Carnegie-Mellon University)
		Norm Schryer (AT&T Bell Labs)

***  barf  [ba:rf]  2.  "He suggested using FORTRAN, and everybody barfed."

	- From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */


#ifndef F2C_INCLUDE
#define F2C_INCLUDE
//#include "Unit1.h"


typedef long int integer;
typedef char *address;
typedef short int shortint;
typedef float real;
typedef double doublereal;
typedef struct { real r, i; } complex;
typedef struct { doublereal r, i; } doublecomplex;
typedef long int logical;
typedef short int shortlogical;

#define TRUE_ (1)
#define FALSE_ (0)

/* Extern is for use with -E */
#ifndef Extern
#define Extern extern
#endif

/* I/O stuff */

#ifdef f2c_i2
/* for -i2 */
typedef short flag;
typedef short ftnlen;
typedef short ftnint;
#else
typedef long flag;
typedef long ftnlen;
typedef long ftnint;
#endif

/*external read, write*/
typedef struct
{	flag cierr;
	ftnint ciunit;
	flag ciend;
	char *cifmt;
	ftnint cirec;
} cilist;

/*internal read, write*/
typedef struct
{	flag icierr;
	char *iciunit;
	flag iciend;
	char *icifmt;
	ftnint icirlen;
	ftnint icirnum;
} icilist;

/*open*/
typedef struct
{	flag oerr;
	ftnint ounit;
	char *ofnm;
	ftnlen ofnmlen;
	char *osta;
	char *oacc;
	char *ofm;
	ftnint orl;
	char *oblnk;
} olist;

/*close*/
typedef struct
{	flag cerr;
	ftnint cunit;
	char *csta;
} cllist;

/*rewind, backspace, endfile*/
typedef struct
{	flag aerr;
	ftnint aunit;
} alist;

/* inquire */
typedef struct
{	flag inerr;
	ftnint inunit;
	char *infile;
	ftnlen infilen;
	ftnint	*inex;	/*parameters in standard's order*/
	ftnint	*inopen;
	ftnint	*innum;
	ftnint	*innamed;
	char	*inname;
	ftnlen	innamlen;
	char	*inacc;
	ftnlen	inacclen;
	char	*inseq;
	ftnlen	inseqlen;
	char 	*indir;
	ftnlen	indirlen;
	char	*infmt;
	ftnlen	infmtlen;
	char	*inform;
	ftnint	informlen;
	char	*inunf;
	ftnlen	inunflen;
	ftnint	*inrecl;
	ftnint	*innrec;
	char	*inblank;
	ftnlen	inblanklen;
} inlist;

#define VOID void

union Multitype {	/* for multiple entry points */
	shortint h;
	integer i;
	real r;
	doublereal d;
	complex c;
	doublecomplex z;
	};

typedef union Multitype Multitype;

typedef long Long;	/* No longer used; formerly in Namelist */

struct Vardesc {	/* for Namelist */
	char *name;
	char *addr;
	ftnlen *dims;
	int  type;
	};
typedef struct Vardesc Vardesc;

struct Namelist {
	char *name;
	Vardesc **vars;
	int nvars;
	};
typedef struct Namelist Namelist;
//int lmdif_();
//doublereal enorm_();
//int fdjac2_();
//int lmpar_();
//int qrfac_();
//int qrsolv_();
#define abs(x) ((x) >= 0 ? (x) : -(x))
#define dabs(x) (doublereal)abs(x)
#define xmin(a,b) ((a) <= (b) ? (a) : (b))
#define xmax(a,b) ((a) >= (b) ? (a) : (b))
#define dmin(a,b) (doublereal)min(a,b)
#define dmax(a,b) (doublereal)max(a,b)
//
int _declspec(dllexport)  lmdif_(int (*fcn)(integer * ,integer * ,doublereal *,doublereal * ,integer * ),
integer *m,
integer *n,
doublereal *x, 
doublereal *fvec, 
doublereal *ftol,
doublereal *xtol, 
doublereal *gtol, 
integer *maxfev,
doublereal *epsfcn,
doublereal *diag, 
integer *mode, 
doublereal *factor, 
integer *nprint, 
integer *info, 
integer *nfev,
doublereal *fjac,
integer *ldfjac, 
integer *ipvt, 
doublereal *qtf, 
doublereal *wa1, 
doublereal *wa2, 
doublereal *wa3, 
doublereal *wa4);
doublereal enorm_(integer *n, doublereal *x);
int fdjac2_( int (*fcn) (),
integer * m,integer * n,
doublereal * x, doublereal *fvec, doublereal *fjac, 
integer *ldfjac,integer * iflag, 
doublereal *epsfcn,doublereal * wa);
int lmpar_(integer *n, 
doublereal *r, 
integer *ldr, integer *ipvt, 
doublereal *diag, doublereal *qtb, doublereal *delta, doublereal *par,
 doublereal *x, doublereal *sdiag, doublereal *wa1, doublereal *wa2);
int qrfac_(integer *m, integer *n, 
doublereal *a, 
integer *lda, 
logical *pivot, 
integer *ipvt, integer *lipvt,
doublereal *rdiag,doublereal * acnorm, doublereal *wa);
int qrsolv_(integer *n, 
doublereal *r, 
integer *ldr, integer *ipvt, 
doublereal *diag, doublereal *qtb, doublereal *x, doublereal *sdiag, doublereal *wa);
doublereal dpmpar_(integer *i);
/* procedure parameter types for -A and -C++ */

#define F2C_proc_par_types 1
#ifdef __cplusplus
typedef int /* Unknown procedure type */ (*U_fp)(...);
typedef shortint (*J_fp)(...);
typedef integer (*I_fp)(...);
typedef real (*R_fp)(...);
typedef doublereal (*D_fp)(...), (*E_fp)(...);
typedef /* Complex */ VOID (*C_fp)(...);
typedef /* Double Complex */ VOID (*Z_fp)(...);
typedef logical (*L_fp)(...);
typedef shortlogical (*K_fp)(...);
typedef /* Character */ VOID (*H_fp)(...);
typedef /* Subroutine */ int (*S_fp)(...);
#else
typedef int /* Unknown procedure type */ (*U_fp)();
typedef shortint (*J_fp)();
typedef integer (*I_fp)();
typedef real (*R_fp)();
typedef doublereal (*D_fp)(), (*E_fp)();
typedef /* Complex */ VOID (*C_fp)();
typedef /* Double Complex */ VOID (*Z_fp)();
typedef logical (*L_fp)();
typedef shortlogical (*K_fp)();
typedef /* Character */ VOID (*H_fp)();
typedef /* Subroutine */ int (*S_fp)();
#endif
/* E_fp is for real functions when -R is not specified */
#define C_f VOID	/* complex function */
#define H_f VOID	/* character function */
#define Z_f VOID	/* double complex function */
typedef doublereal E_f;	/* real function with -R not specified */

/* undef any lower-case symbols that your C compiler predefines, e.g.: */

#ifndef Skip_f2c_Undefs
#undef cray
#undef gcos
#undef mc68010
#undef mc68020
#undef mips
#undef pdp11
#undef sgi
#undef sparc
#undef sun
#undef sun2
#undef sun3
#undef sun4
#undef u370
#undef u3b
#undef u3b2
#undef u3b5
#undef unix
#undef vax
#endif
#endif
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -