version 1.12, 2016/03/14 04:15:05 |
version 1.14, 2017/03/29 01:15:14 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/builtin/bfaux.c,v 1.11 2015/08/25 18:41:03 ohara Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/builtin/bfaux.c,v 1.13 2017/03/09 00:46:44 noro Exp $ */ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
|
|
Line 11 void Pmpfr_y0(), Pmpfr_y1(); |
|
Line 11 void Pmpfr_y0(), Pmpfr_y1(); |
|
void Pmpfr_gamma(), Pmpfr_lngamma(), Pmpfr_digamma(); |
void Pmpfr_gamma(), Pmpfr_lngamma(), Pmpfr_digamma(); |
void Pmpfr_floor(), Pmpfr_round(), Pmpfr_ceil(); |
void Pmpfr_floor(), Pmpfr_round(), Pmpfr_ceil(); |
void Prk_ratmat(); |
void Prk_ratmat(); |
|
void mp_sin(),mp_cos(),mp_tan(),mp_asin(),mp_acos(),mp_atan(); |
|
void mp_sinh(),mp_cosh(),mp_tanh(),mp_asinh(),mp_acosh(),mp_atanh(); |
|
void mp_exp(),mp_log(),mp_pow(); |
|
|
struct ftab bf_tab[] = { |
struct ftab bf_tab[] = { |
{"eval",Peval,-2}, |
{"eval",Peval,-2}, |
Line 18 struct ftab bf_tab[] = { |
|
Line 21 struct ftab bf_tab[] = { |
|
{"setbprec",Psetbprec,-1}, |
{"setbprec",Psetbprec,-1}, |
{"setround",Psetround,-1}, |
{"setround",Psetround,-1}, |
{"todouble",Ptodouble,1}, |
{"todouble",Ptodouble,1}, |
|
{"mpfr_sin",mp_sin,-2}, |
|
{"mpfr_cos",mp_cos,-2}, |
|
{"mpfr_tan",mp_tan,-2}, |
|
{"mpfr_asin",mp_asin,-2}, |
|
{"mpfr_acos",mp_acos,-2}, |
|
{"mpfr_atan",mp_atan,-2}, |
|
{"mpfr_sinh",mp_sinh,-2}, |
|
{"mpfr_cosh",mp_cosh,-2}, |
|
{"mpfr_tanh",mp_tanh,-2}, |
|
{"mpfr_asinh",mp_asinh,-2}, |
|
{"mpfr_acosh",mp_acosh,-2}, |
|
{"mpfr_atanh",mp_atanh,-2}, |
|
{"mpfr_exp",mp_exp,-2}, |
|
{"mpfr_log",mp_log,-2}, |
|
{"mpfr_pow",mp_pow,-3}, |
{"mpfr_ai",Pmpfr_ai,-2}, |
{"mpfr_ai",Pmpfr_ai,-2}, |
{"mpfr_zeta",Pmpfr_zeta,-2}, |
{"mpfr_zeta",Pmpfr_zeta,-2}, |
{"mpfr_j0",Pmpfr_j0,-2}, |
{"mpfr_j0",Pmpfr_j0,-2}, |
Line 624 void Prk_ratmat(NODE arg,LIST *rp) |
|
Line 642 void Prk_ratmat(NODE arg,LIST *rp) |
|
|
|
n = fv->len; |
n = fv->len; |
d = mat->len; |
d = mat->len; |
num = (struct smat *)MALLOC(n*sizeof(struct smat)); |
num = (struct smat *)MALLOC(d*sizeof(struct smat)); |
for ( i = 0; i < d; i++ ) { |
for ( i = 0; i < d; i++ ) { |
num[i].rlen = (int *)MALLOC(n*sizeof(int)); |
num[i].rlen = (int *)MALLOC_ATOMIC(n*sizeof(int)); |
num[i].row = (struct jv **)MALLOC(n*sizeof(struct jv *)); |
num[i].row = (struct jv **)MALLOC(n*sizeof(struct jv *)); |
mati = (MAT)mat->body[i]; |
mati = (MAT)mat->body[i]; |
b = (Obj **)mati->body; |
b = (Obj **)mati->body; |
Line 634 void Prk_ratmat(NODE arg,LIST *rp) |
|
Line 652 void Prk_ratmat(NODE arg,LIST *rp) |
|
for ( len = k = 0; k < n; k++ ) |
for ( len = k = 0; k < n; k++ ) |
if ( b[j][k] ) len++; |
if ( b[j][k] ) len++; |
num[i].rlen[j] = len; |
num[i].rlen[j] = len; |
num[i].row[j] = (struct jv *)MALLOC(len*sizeof(struct jv)); |
if ( !len ) |
for ( s = k = 0; k < n; k++ ) |
num[i].row[j] = 0; |
if ( b[j][k] ) { |
else { |
num[i].row[j][s].j = k; |
num[i].row[j] = (struct jv *)MALLOC_ATOMIC((len)*sizeof(struct jv)); |
num[i].row[j][s].v = ToReal((Num)b[j][k]); |
for ( s = k = 0; k < n; k++ ) |
s++; |
if ( b[j][k] ) { |
} |
num[i].row[j][s].j = k; |
|
num[i].row[j][s].v = ToReal((Num)b[j][k]); |
|
s++; |
|
} |
|
} |
} |
} |
} |
} |
f = (double *)MALLOC(n*sizeof(double)); |
f = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
for ( j = 0; j < n; j++ ) |
for ( j = 0; j < n; j++ ) |
f[j] = ToReal((Num)fv->body[j]); |
f[j] = ToReal((Num)fv->body[j]); |
w = (double *)MALLOC(n*sizeof(double)); |
w = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
k1 = (double *)MALLOC(n*sizeof(double)); |
k1 = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
k2 = (double *)MALLOC(n*sizeof(double)); |
k2 = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
k3 = (double *)MALLOC(n*sizeof(double)); |
k3 = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
k4 = (double *)MALLOC(n*sizeof(double)); |
k4 = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
k5 = (double *)MALLOC(n*sizeof(double)); |
k5 = (double *)MALLOC_ATOMIC(n*sizeof(double)); |
k6 = (double *)MALLOC(n*sizeof(double)); |
k6 = (double *)MALLOC(n*sizeof(double)); |
nd = 0; |
nd = 0; |
switch ( ord ) { |
switch ( ord ) { |