迂遠
微妙にNDAにひっかかりそうなんでも、ゴニョゴニョなんだけど(こんなアホコードにNDAもくそも無い気もするが)、
tmp_A = abs(A); tmp_B = abs(B); : : tmp = (tmp_A*tmp_B .....); : : tmp = ((A*B)/(tmp_A*tmp_B))*tmp;
なんだこりゃ。tmpの嵐の上に最後の式は一体・・・s/tmp_/abs_/gにして見たら一瞬でハッキリした。コード中の名前って本当に重要なんだな、と痛感した。符号を復活させたいがためだけに同じ事を繰り返しているのね。こないだの uuuuでmemoizeの話題で盛り上がったけど、このくらいならコンパイラが良きに計らってくれるんだろうな。しかも調べてみると原理的にAしか負にはならないんだそうな。
tmp = sign(A) * (abs(A)*abs(B) .....);
リファクタリングGO,GO!かなり疲れてきてます。
しかも、しかも、このモデル、RTLと精度部分で齟齬がありまくり。いいんだろうかこっちにあわせちゃって。神様の御姿を人間に合わせて変えてしまってる。