迂遠

微妙に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と精度部分で齟齬がありまくり。いいんだろうかこっちにあわせちゃって。神様の御姿を人間に合わせて変えてしまってる。