2017-02-25 3 views
-1

ライブラリを探していますが、何を探したいのか分かりません。そのような方法で検索可能です)。機能「式の評価、キャッシング、スマートな更新」の検索可能な名前lib

例Iは、例えばその中のいくつかの共通要素を持つ単一の操作を伴う行列方程式の数(乗算)、持っている:何の未知数はここにありません

result_1 = a * b * c * e 
result_2 = b * c 
result_3 = c * e * f 

を;我々はちょうどresult_nアイテムを計算しています。

これらの乗算は実行するのに費用がかかりますので、私はa,bなどの方程式と値を設定して、resultの項目を取得するライブラリを必要としています。

さらに重要なことは、「値を更新しています(例えば、af)」と言うことができ、不要な計算を行わないようにする必要があります。 result_2(答えは変わらない)を再計算しても問題ありません。b * c * eresult_1)またはc * eresult_3)の部分も再計算されません。

この種の施設には名前がありますか?

異なる演算子(たとえば、バイナリ*および単項式transpose)を扱うことができ、演算子のプロパティを指定することもできます。 "*は通勤ではありませんが、関連性があります"。これらのプロパティを知っていると、libがより効率的な仕事をすることがあります。

+0

検索する単語をお探しの場合は、「スプレッドシート」はどうですか。 –

+0

あなたの質問はメタについて議論されました:[援助の要請がない](https://meta.stackoverflow.com/questions/345592/off-topic-requests-for-assistance) – user000001

答えて

1

本当に大きな数字で作業していない限り、標準ライブラリを利用することをお勧めします。 C++での数値の乗算は、アセンブリコードの使用以外にも最小限のものである可能性があります。

私は個人的にはPythonを使用していたならYESですが、Pythonの数学ライブラリを使用することをお勧めしますが、これはC++なので、本当に心配する必要はありません。

質問すると、なぜ最適化する必要がありますか?最適化を使ってコンパイラにフラグを立てようとしましたか?あなたが働いている数字は大きくなっていますか?

+1

あなたの答えをありがとう!あなたはC + +では、それはおそらく多くの状況ではそれほど価値はないと思います。しかし、私は "これには適切な名前はありますか?"この種のことをするライブラリがありますか?」 - それは実現可能な言​​語で私によって使用される可能性があります – occulus

+0

@occulusあなたの応答を読み返した後 'これらの乗算は実行するのに費用がかかりますので、私は方程式とa、bなどの値を設定できるライブラリが必要です結果アイテムを取得します。実際には、ベクトルが返された操作のオーバーロードのように聞こえます。しかし、セットアップするのはややこしいでしょう! –