検索
AND検索
OR検索
トップ
|
リロード
|
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
plus_double_module_ver0.1 をテンプレートにして作成
最新の20件
2020-04-07
TEST
2018-12-11
RecentDeleted
2017-09-13
bccでdll作成
2017-09-12
index
hspmallocに関するスレッド
2017-09-05
経済学に関するエッセイ
plus_double_module_ver0.1
plus_double_module_ver0.01
plus_float_module_ver0.03
plus_float_module_ver0.02
plus_float_module
plus_modules
(仮)クリーンHSPに関する資料 ver0.2
雑談:ロールモデルに関するおしゃべりページ ver0.2
雑談:今年(今月)の抱負に関するおしゃべりページ ver0.2
HSPへの要望に関するおしゃべりページ ver0.2
HSP-Boost (HSP用ライブラリ)に関する議論 ver0.2_D
HSP-Boost (HSP用ライブラリ)に関する議論 ver0.2 C
HSP-Boost (HSP用ライブラリ)に関する議論 ver0.2 B
HSP-Boost (HSP用ライブラリ)に関する議論 ver0.2
Total:0/Today:0
開始行:
#module m_plus_double
#deffunc local init
basis_large=100000.0*100000.0*100000.0*100000.0
basis_small=100000.0*100000.0
basis4muldiv=100000.0*100000.0
return
// 掛け算と割り算の対象はdoubleだけ
#deffunc local mul_value var p_value,var p4mul,double p...
p_value*=p_arg
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
// 掛け算と割り算の対象はdoubleだけ
#deffunc local div_value var p_value,var p4mul,double p...
p_value/=p_arg
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
#deffunc local sub_value var _p_value,var _p4mul,var _ar...
set_place@m_plus_double _p_value,_p4mul,_arg_value,_arg...
_p_value-=_arg_value
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
#deffunc local add_value var _p_value,var _p4mul,var _ar...
set_place@m_plus_double _p_value,_p4mul,_arg_value,_arg...
_p_value+=_arg_value
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
// 〔隣り合って置く〕place
#deffunc local set_place var _p_value,var _p4mul,var _ar...
if _p4mul>_arg4mul{
while _p4mul > _arg4mul
_arg4mul+=10
_arg_value/=basis4muldiv
wend
}else{
while _p4mul < _arg4mul
_p4mul+=10
_p_value/=basis4muldiv
wend
}
return
#defcfunc local is_big var _p_value,var _p4mul,var _arg_...
if _p4mul>_arg4mul:return 1
if _p4mul<_arg4mul:return 0
// p4mul==arg4mulのはず
if _p_value>_arg_value:return 1
if _p_value<_arg_value:return 0
return -1
#defcfunc local is_small var _p_value,var _p4mul,var _ar...
if _p4mul>_arg4mul:return 0
if _p4mul<_arg4mul:return 1
// p4mul==arg4mulのはず
if _p_value>_arg_value:return 0
if _p_value<_arg_value:return 1
return -1
#deffunc local dump var _p_value,var _p4mul
if _p4mul<=0{
logmes ""+_p_value+" 10^"+_p4mul
}else{
logmes ""+dbl_trim(_p_value)+" 10^"+_p4mul
}
return
#global
#module
#defcfunc dbl_trim double p
n=str(p)
getstr piyo,n,0,'.'
return piyo
#global
/* 以下 TEST CODE
init@m_plus_double
tmp_value=1.0
tmp_mul=0
repeat 30
mul_value@m_plus_double tmp_value,tmp_mul,20.0
dump@m_plus_double tmp_value,tmp_mul
loop
repeat 30
div_value@m_plus_double tmp_value,tmp_mul,20.0
dump@m_plus_double tmp_value,tmp_mul
loop
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=70
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=123.0
tmptmpA_mul=70
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=70
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=123.0
tmptmpA_mul=70
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=127.0
tmptmpA_mul=60
tmptmpB_value=125.0
tmptmpB_mul=50
add_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=60
add_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=40
tmptmpB_value=125.0
tmptmpB_mul=40
add_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=60
tmptmpB_value=125.0
tmptmpB_mul=50
sub_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=60
sub_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=40
tmptmpB_value=125.0
tmptmpB_mul=40
sub_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
//*/
終了行:
#module m_plus_double
#deffunc local init
basis_large=100000.0*100000.0*100000.0*100000.0
basis_small=100000.0*100000.0
basis4muldiv=100000.0*100000.0
return
// 掛け算と割り算の対象はdoubleだけ
#deffunc local mul_value var p_value,var p4mul,double p...
p_value*=p_arg
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
// 掛け算と割り算の対象はdoubleだけ
#deffunc local div_value var p_value,var p4mul,double p...
p_value/=p_arg
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
#deffunc local sub_value var _p_value,var _p4mul,var _ar...
set_place@m_plus_double _p_value,_p4mul,_arg_value,_arg...
_p_value-=_arg_value
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
#deffunc local add_value var _p_value,var _p4mul,var _ar...
set_place@m_plus_double _p_value,_p4mul,_arg_value,_arg...
_p_value+=_arg_value
if p_value>=basis_large{
p_value/=basis4muldiv
p4mul+=10
}
if p_value<=basis_small{
if p4mul>=1{
p_value*=basis4muldiv
p4mul-=10
}
}
return
// 〔隣り合って置く〕place
#deffunc local set_place var _p_value,var _p4mul,var _ar...
if _p4mul>_arg4mul{
while _p4mul > _arg4mul
_arg4mul+=10
_arg_value/=basis4muldiv
wend
}else{
while _p4mul < _arg4mul
_p4mul+=10
_p_value/=basis4muldiv
wend
}
return
#defcfunc local is_big var _p_value,var _p4mul,var _arg_...
if _p4mul>_arg4mul:return 1
if _p4mul<_arg4mul:return 0
// p4mul==arg4mulのはず
if _p_value>_arg_value:return 1
if _p_value<_arg_value:return 0
return -1
#defcfunc local is_small var _p_value,var _p4mul,var _ar...
if _p4mul>_arg4mul:return 0
if _p4mul<_arg4mul:return 1
// p4mul==arg4mulのはず
if _p_value>_arg_value:return 0
if _p_value<_arg_value:return 1
return -1
#deffunc local dump var _p_value,var _p4mul
if _p4mul<=0{
logmes ""+_p_value+" 10^"+_p4mul
}else{
logmes ""+dbl_trim(_p_value)+" 10^"+_p4mul
}
return
#global
#module
#defcfunc dbl_trim double p
n=str(p)
getstr piyo,n,0,'.'
return piyo
#global
/* 以下 TEST CODE
init@m_plus_double
tmp_value=1.0
tmp_mul=0
repeat 30
mul_value@m_plus_double tmp_value,tmp_mul,20.0
dump@m_plus_double tmp_value,tmp_mul
loop
repeat 30
div_value@m_plus_double tmp_value,tmp_mul,20.0
dump@m_plus_double tmp_value,tmp_mul
loop
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=70
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=123.0
tmptmpA_mul=70
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_big@m_plus_double(tmptmpA_value,tmptmpA_mul...
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=70
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=123.0
tmptmpA_mul=70
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=123.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=50
logmes ""+is_small@m_plus_double(tmptmpA_value,tmptmpA_m...
tmptmpA_value=127.0
tmptmpA_mul=60
tmptmpB_value=125.0
tmptmpB_mul=50
add_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=60
add_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=40
tmptmpB_value=125.0
tmptmpB_mul=40
add_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=60
tmptmpB_value=125.0
tmptmpB_mul=50
sub_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=50
tmptmpB_value=125.0
tmptmpB_mul=60
sub_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
tmptmpA_value=127.0
tmptmpA_mul=40
tmptmpB_value=125.0
tmptmpB_mul=40
sub_value@m_plus_double tmptmpA_value,tmptmpA_mul,tmptmp...
dump@m_plus_double tmptmpA_value,tmptmpA_mul
//*/
ページ名: