区間の上端、下端を表すために使うデータの型を指定する。 double を使うことが多いだろう。その場合は、 例えば次のようにすると、変数 x が定義できる。
kv::interval<double> x;
typedef kv::interval<double> itv; itv x;
初期化をするには?
点区間 ![$ [1,1]$](img1.gif) の場合は
 の場合は
itv x(1.); itv x=(itv)1.;
| これはダメ | 
| itv x=1.; | 
| 定義した後、実行文で代入するのはOK | 
| itv x; x=1.; | 
点区間でない、フツーの区間でも同様。![$ [1,2]$](img2.gif) の場合は
 の場合は
| itv x(1.,2.); itv x=itv(1.,2.); | 
また、 文字列での初期化、代入も可能である。非整数データのときに役に立つ。
itv x("0.1", "0.2");
itv x;
x=itv("0.1", "0.2");
文字列での初期化を「標準」と考えるのが良いかもね。
円周率のような定数はどうしようかな? いつものやり方の自然な拡張をするのならば、以下のようになる。
| testkv1.c | 
| 
/*
 * testkv1.c
 *   g++ -I/opt/local/include -I/usr/local/include testkv1.cc
 */
#include <iostream>
#include <math.h>
#include <kv/interval.hpp>
#include <kv/rdouble.hpp>
typedef kv::interval<double> itv;
int main(void)
{
  itv pi;
  pi = 4*atan(itv(1.0));
  std::cout.precision(17);
  std::cout << pi << std::endl;
  return 0;
}
 | 
| $ g++ -I/opt/local/include -I/usr/local/include testkv1.cc $ ./a.out [3.1415926535897931,3.1415926535897936] $ | 
 であるから、ちゃんと
であるから、ちゃんと  を包含する機械区間が得られたみたいである。
 を包含する機械区間が得られたみたいである。
桂田 祐史