トップ 最新 追記

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2010-08-06 [長年日記]

_ [SAD]INTRA EMITのバグ探し

誤差付きOpticsをINTRA EMITすると BINTが NaNを出して まともに動かない件を昨日から真面目に調べていて分かったこと

  • bint()に渡される被非積分関数が、積分領域の端でNaNを返す
    • 改良前の台形公式による積分値がNaNなので、bint()内の収束判定が必ず失敗する
    • 被積分関数のパラメータに問題が有り、関数の値が純虚数になる領域がある

というわけで、呼出側(tintrb)での前後関係を洗ってゆくと、NaNが発生する 前の計算で、3x3行列の固有値がおかしいことが発覚。 周辺のコードから、固有値は正定値であることが期待されているのに、 零や負の値が帰ってきている。

固有値分解関数eigs33()へ与えている行列と帰ってきた固有値を 正常時と異常時で比較してゆくと、一番小さい固有値が失われているのが 直接の原因と判明。

内部の2x2部分行列の固有値分解で桁落ちしている部分を修正したら、 多少マシになったが、完治していない。

多分、対角化操作で行列を回転する際に桁落ち or 情報落ちしているものと 思われる。対処法としては、

  1. ピポッド選択等のアルゴリズムを改良する
  2. 4倍 or 8倍精度実数を使う
  3. Error Free Transformationで行列操作を実装する

3x3行列なので、(1)はあまり余地は無いかもしれない。 (2)は、Fortran標準では実装必須にはなっていないので、 動作がコンパイラ依存になるのが難。 (3)は、実装が面倒くさいのが難。C++とかだと class化すれば 表面上のコードは綺麗にかけるけど、FortranからC++を呼び出すのは 木に竹を継ぐような話だから避けたい所である。


2010-08-15 [長年日記]

_ [イベント]コミケ3日目

07:10に会場到着(臨時急行バス4両目?)で、 海側に拡張された東駐車場(増設分で1ホールは軽く収容できるように見えたが)は すでに閉鎖状態で、総西状態…

なに、このカオスな状況 orz


2010-08-25 [長年日記]

_ [SAD]revision 3200

idlist common blockを修正するために MAC*.incを整理し始めたら、 作業が膨れ上がってキリ番に到達...

-m64を使った darwin buildは現時点では動きませんが、 関数ポインタを格納するのに integer型の idval(*)ではなく TYPE(C_PTR)型の idptr(*)を導入して根本的な解決を行うことを 目標に作業中


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記