Opened 9 years ago

Last modified 9 years ago

#11 accepted タスク

動的リンクライブラリのサンプルプログラムを作成する

Reported by: 村山 俊之 Owned by: 村山 俊之
Priority: 通常 Milestone: API開発手法習得
Component: 技術調査 Severity: 極めて重大
Keywords: Cc:

Description (last modified by 村山 俊之)

「C++のためのAPIデザイン」 Sec.6.9「シンボルのエクスポート」に記述のある内容を修得するためのサンプルプログラムを作成する。

サンプルプログラムの内容

概要

n次方程式の任意の x に対する y を求めるライブラリ。

設計

  • Equation クラス
    • Equation(const double [] coeffs, size_t size) ... コンストラクタ
      • coeffs ... (I) 係数セット。 y = x0 + x1 * x + x2 * x2 + ... といった式を想定し、次元の低い順に並べて指定する。例えば y = 2x3 + x のような式にしたい場合、 { 0, 1, 0, 2 } を渡す。
      • size ... (I) coeffs の大きさを指示する。
    • Equation(std::const_iterator<double> coeff_st, std::const_iterator<double> coeff_ed) ... コンストラクタ
      • coeff_st, coeff_ed ... (I) 係数セットの範囲を示すイテレータ。
    • double calc(double x) const ... 指定した位置の値を求める。
      • x ... (I) Y 座標値を求める X 座標値。
      • 戻り値 ... 対応する Y 座標値。
    • std::vector<double> calc(double x1, double x2, double step) const ... 指定した範囲の値を求める。
      • x1, x2 ... (I) Y 座標値を求める X 座標値の範囲。 x1 <= n <= x2 の範囲で求める。
        • x1, x2 の大小関係が逆の場合、入れ替えて評価する。
      • step ... (I) X 座標値の粒度。 たとえば auto result = e.calc(-1, 1, 0.1) とした場合、 result には -1 から 1 までの範囲を 0.1 刻みで求めた 21 個の値の配列が格納される。
      • 戻り値 ... 対応する範囲における Y 座標値の配列。

Change History (5)

comment:1 by 村山 俊之, 9 years ago

Status: newaccepted

comment:2 by 村山 俊之, 9 years ago

Description: modified (diff)

どんなライブラリにするかという話なのですが…

やっぱり配列を受け取って Windows Wave 形式のオーディオファイルを出力するライブラリとかがいいかなと。

comment:3 by 村山 俊之, 9 years ago

Description: modified (diff)

comment:4 by 村山 俊之, 9 years ago

Description: modified (diff)

もっと簡単なものの方がいいかな…

comment:5 by 村山 俊之, 9 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.