四則演算はどういう順番で実行すると計算誤差が発生/伝搬しにくいですか


今ある問題は足し算と掛け算とわり算のみで構成されている演算です。

[code]

    double c, m, d1, d2;
    /*それぞれに値を代入*/
    double x = (c* m + ( d1 + 1.0/ d2 )/ 2.0 )/ (c + 1.0 );
    
[/code]

という式です。この式をMaximaに投げると

[code]

    double x = (c* m + 0.5*( d1 + 1.0/ d2 ))/ (c + 1.0);
    
[/code]

と変形されます。式の整理を行うと

[code]

    double x = (2.0* c* d2* m + d1* d2 + 1.0)/ ((2.0* c + 2.0)* d2);
    
[/code]

のようになります。

そのまま打ち込めば式を間違えることがないのですが  
計算誤差まで考慮して式変形をするとなると

割り算や掛け算による誤差が大きいのか  
足し算や引き算による誤差が大きいのか

を考える必要があると感じました  
どちらの演算子が少ない状態のほうが計算誤差が発生しにくいですか

* * *

追記

書籍「数値計算の常識」には式変形により誤差を回避できる例が挙げられているが具体的にどのように式を変形することが誤差の軽減につながるかについては書かれていない。（特に割り算掛け算について）  
多倍長演算や加算アルゴリズムの詳解を期待しているのではなく  
この質問では式変形により軽減できるのだとしたらどのように変形することが望ましいのかを質問しています。




「丸め誤差」「桁落ち」「情報落ち」など計算誤差に関する用語で自分なりにわかりやすいもので勉強されるのがいいと思います。

本としては、伊理正夫さんらによる「数値計算の常識」に計算誤差が詳しく書かれていたと思います。

またweb資料では[こちら](http://www.cc.kyoto-
su.ac.jp/~yamada/programming/float.html)のページは比較的よくまとめられています。

