パッケージ com.sanpudo.formula

算譜堂数式エバリュエータは、javaによる数式評価クラスライブラリです。

参照先:
          説明

インタフェースの概要
FunctionImplementation 関数を実装するクラスのインタフェース。
 

クラスの概要
FormulaEvaluator 指定された数式を評価するクラス。
FunctionAdaptor ユーザ定義関数を実装する際に拡張するためのアダプタクラス。
Messages 例外で使用されるメッセージを定義したクラス。
SystemFunctions システム定義済み関数。
 

列挙型の概要
RoundPoint 端数処理の時点を現す列挙体。
 

例外の概要
FormulaEvaluatorException 数式評価時の例外。
FunctionEvalException 関数の評価時に発生した問題をスローする例外。
FunctionException 関数実装に関する例外。
 

パッケージ com.sanpudo.formula の説明

算譜堂数式エバリュエータは、javaによる数式評価クラスライブラリです。つまり

 "1+1"という式から2という結果を得る
ライブラリです。 特徴は以下のとおりです。
  1. Stringの数式を評価し、評価結果の値を返します。

  2. double(倍精度浮動小数点)とBigDecimal(任意精度十進)の双方をサポートし、同じ数式をdouble、BigDecimalの どちらでも評価できます。doubleは通常の数値演算に、BigDecimalは厳密な端数処理を要求される 一部の自然科学の計算や金融計算等に向いています。

  3. ユーザが関数を定義して数式の中で使用できます。ユーザ関数は、式による記述と javaによる記述の両方が可能です。式による関数定義は、簡単で直感的です。一方、 javaによる関数定義は柔軟・強力で、基本的にプログラムで書けることは何でもできる方法です。

開発の背景

かつて作者が証券会社のシステムエンジニアであった時に、仕組み債券の利息計算を作った事がありました。 仕組み債券の利息計算は発行する債券ごとに複雑に異なっており、簡単なデータ構造で表現できないため、 いっそ

 数式自体をデータベースに登録して実行時に評価しよう

と考えてjavaによる数式評価ライブラリを探したのですが、適当なものが見つかりませんでした。 その時は、簡単なものをでっち上げて間に合わせたのですが、その後、こういったライブラリはjavaで 一式は必要であると思い、改めてオープンソースのライブラリとして一から自作したものです。

アプリケーションへの適用

算譜堂数式エバリュエータは上記「開発の背景」でも述べておりますように、 での使用に向いています。逆に向かないのは と思われます。あなたも、

アプリケーションから個別の数式を追出しましょう!