📄 math.c
字号:
/* math.c * * (C) Copyright Dec 20 1998, Edmond J. Breen. * ALL RIGHTS RESERVED. * This code may be copied for personal, non-profit use only. * *//* This file is broken into 2 parts * the first part defines the interface routines * and the 2nd part adds the interface routine * to EiC's look up tables. */#include <math.h>#include <stdlib.h>#include "eic.h"/* MATH.H STUFF */val_t eic_div(void){ /* rem: the return type is a structure; * therefore, the first slot is used for * a hidden parameter */ val_t v; static div_t d; /* create some memory */ /* skip argument -1 & start at -2 */ int num = arg(1,getargs(),int); int dem = arg(2,getargs(),int); d.quot = num/dem; d.rem = num - dem * d.quot; if(d.quot < 0 && 0 < d.rem) { d.quot += 1; d.rem -= dem; } /* set safe */ v.p.sp = v.p.p = &d; v.p.ep = (char*)&d + sizeof(div_t); return v;}val_t eic_ldiv(void){ val_t v; static ldiv_t d; /* create some memory */ /* skip argument -1 & start at -2 */ long num = arg(1,getargs(),long); long dem = arg(2,getargs(),long); d.quot = num/dem; d.rem = num - dem * d.quot; if(d.quot < 0 && 0 < d.rem) { d.quot += 1; d.rem -= dem; } /* set safe */ v.p.sp = v.p.p = &d; v.p.ep = (char*)&d + sizeof(ldiv_t); return v;}val_t eic_acos(void){ val_t v; v.dval = acos(arg(0,getargs(),double)); return v;}val_t eic_asin(void){ val_t v; v.dval = asin(arg(0,getargs(),double)); return v;}val_t eic_atan(void){ val_t v; v.dval = atan(arg(0,getargs(),double)); return v;}val_t eic_atan2(void){ val_t v; v.dval = atan2(arg(0,getargs(),double), arg(1,getargs(),double)); return v;}val_t eic_cos(void){ val_t v; v.dval = cos(arg(0,getargs(),double)); return v;}val_t eic_sin(void){ val_t v; v.dval = sin(arg(0,getargs(),double)); return v;}val_t eic_tan(void){ val_t v; v.dval = tan(arg(0,getargs(),double)); return v;}val_t eic_cosh(void){ val_t v; v.dval = cosh(arg(0,getargs(),double)); return v;}val_t eic_sinh(void){ val_t v; v.dval = sinh(arg(0,getargs(),double)); return v;}val_t eic_tanh(void){ val_t v; v.dval = tanh(arg(0,getargs(),double)); return v;}val_t eic_exp(void){ val_t v; v.dval = exp(arg(0,getargs(),double)); return v;}val_t eic_frexp(void){ val_t v; v.dval = frexp(arg(0,getargs(),double), arg(1,getargs(),ptr_t).p); return v;}val_t eic_ldexp(void){ val_t v; v.dval = ldexp(arg(0,getargs(),double), arg(1,getargs(),int)); return v;}val_t eic_log(void){ val_t v; v.dval = log(arg(0,getargs(),double)); return v;}val_t eic_log10(void){ val_t v; v.dval = log10(arg(0,getargs(),double)); return v;}val_t eic_modf(void){ val_t v; v.dval = modf(arg(0,getargs(),double), arg(1,getargs(),ptr_t).p); return v;}val_t eic_pow(void){ val_t v; v.dval = pow(arg(0,getargs(),double), arg(1,getargs(),double)); return v;}val_t eic_sqrt(void){ val_t v; v.dval = sqrt(arg(0,getargs(),double)); return v;}val_t eic_ceil(void){ val_t v; v.dval = ceil(arg(0,getargs(),double)); return v;}val_t eic_fabs(void){ val_t v; v.dval = fabs(arg(0,getargs(),double)); return v;}val_t eic_floor(void){ val_t v; v.dval = floor(arg(0,getargs(),double)); return v;}val_t eic_fmod(void){ val_t v; v.dval = fmod(arg(0,getargs(),double), arg(1,getargs(),double)); return v;}/***********************************************************************************/void module_math(void){ /* math.h stuff */ EiC_add_builtinfunc("div",eic_div); EiC_add_builtinfunc("ldiv",eic_ldiv); EiC_add_builtinfunc("acos",eic_acos); EiC_add_builtinfunc("asin",eic_asin); EiC_add_builtinfunc("atan",eic_atan); EiC_add_builtinfunc("atan2",eic_atan2); EiC_add_builtinfunc("cos",eic_cos); EiC_add_builtinfunc("sin",eic_sin); EiC_add_builtinfunc("tan",eic_tan); EiC_add_builtinfunc("cosh",eic_cosh); EiC_add_builtinfunc("sinh",eic_sinh); EiC_add_builtinfunc("tanh",eic_tanh); EiC_add_builtinfunc("exp",eic_exp); EiC_add_builtinfunc("frexp",eic_frexp); EiC_add_builtinfunc("ldexp",eic_ldexp); EiC_add_builtinfunc("log",eic_log); EiC_add_builtinfunc("log10",eic_log10); EiC_add_builtinfunc("modf",eic_modf); EiC_add_builtinfunc("pow",eic_pow); EiC_add_builtinfunc("sqrt",eic_sqrt); EiC_add_builtinfunc("ceil",eic_ceil); EiC_add_builtinfunc("fabs",eic_fabs); EiC_add_builtinfunc("floor",eic_floor); EiC_add_builtinfunc("fmod",eic_fmod); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -