Created
November 14, 2017 23:13
-
-
Save stanislaw/27a26fa312762a76abcd9fafead39d8f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
_DEFUN(run_vector_1,(vector, p, func, name, args), | |
int vector _AND | |
one_line_type *p _AND | |
char *func _AND | |
char *name _AND | |
char *args) | |
{ | |
FILE *f; | |
int mag; | |
double result; | |
if (vector) | |
{ | |
VECOPEN(name, f); | |
if (redo) | |
{ | |
double k; | |
for (k = -.2; k < .2; k+= 0.00132) | |
{ | |
fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n", | |
k,k+4); | |
} | |
for (k = -1.2; k < 1.2; k+= 0.01) | |
{ | |
fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n", | |
k,k+4); | |
} | |
for (k = -M_PI *2; k < M_PI *2; k+= M_PI/2) | |
{ | |
fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n", | |
k,k+4); | |
} | |
for (k = -30; k < 30; k+= 1.7) | |
{ | |
fprintf(f,"{2,2, 1,1, 0,0, 0x%08x,0x%08x, 0x%08x, 0x%08x},\n", | |
k,k+4); | |
} | |
VECCLOSE(f, name, args); | |
return; | |
} | |
} | |
newfunc(name); | |
while (p->line) | |
{ | |
double arg1 = thedouble(p->qs[1].msw, p->qs[1].lsw); | |
double arg2 = thedouble(p->qs[2].msw, p->qs[2].lsw); | |
double r; | |
double rf; | |
errno = 0; | |
merror = 0; | |
mname = 0; | |
line(p->line); | |
merror = 0; | |
errno = 123; | |
if (strcmp(args,"dd")==0) | |
{ | |
typedef double _EXFUN((*pdblfunc),(double)); | |
/* Double function returning a double */ | |
result = ((pdblfunc)(func))(arg1); | |
finish(f,vector, result, p, args, name); | |
} | |
else if (strcmp(args,"ff")==0) | |
{ | |
float arga; | |
double a; | |
typedef float _EXFUN((*pdblfunc),(float)); | |
/* Double function returning a double */ | |
if (arg1 < FLT_MAX ) | |
{ | |
arga = arg1; | |
result = ((pdblfunc)(func))(arga); | |
finish(f, vector, result, p,args, name); | |
} | |
} | |
else if (strcmp(args,"ddd")==0) | |
{ | |
typedef double _EXFUN((*pdblfunc),(double,double)); | |
result = ((pdblfunc)(func))(arg1,arg2); | |
finish(f, vector, result, p,args, name); | |
} | |
else if (strcmp(args,"fff")==0) | |
{ | |
double a,b; | |
float arga; | |
float argb; | |
typedef float _EXFUN((*pdblfunc),(float,float)); | |
if (arg1 < FLT_MAX && arg2 < FLT_MAX) | |
{ | |
arga = arg1; | |
argb = arg2; | |
result = ((pdblfunc)(func))(arga, argb); | |
finish(f, vector, result, p,args, name); | |
} | |
} | |
else if (strcmp(args,"did")==0) | |
{ | |
typedef double _EXFUN((*pdblfunc),(int,double)); | |
result = ((pdblfunc)(func))((int)arg1,arg2); | |
finish(f, vector, result, p,args, name); | |
} | |
else if (strcmp(args,"fif")==0) | |
{ | |
double a,b; | |
float arga; | |
float argb; | |
typedef float _EXFUN((*pdblfunc),(int,float)); | |
if (arg1 < FLT_MAX && arg2 < FLT_MAX) | |
{ | |
arga = arg1; | |
argb = arg2; | |
result = ((pdblfunc)(func))((int)arga, argb); | |
finish(f, vector, result, p,args, name); | |
} | |
} | |
p++; | |
} | |
if (vector) | |
{ | |
VECCLOSE(f, name, args); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment