行はなくてもいいが、box[1]、box[2]...に含まれる要素数は計100万を超えることもあるので、用が済み次第、明示的に無効化しておく。ついては、用が済んだら必ず無効化するべきだろう(*3)。参照可能のままだと、(ブラウザ上で実行しているとして)ページを開いている限り巨大オブジェクトが残ってしまう。検索範囲の上界を返す。定義されているなら、「あ」によって、全数検索のための理論的な上界を返す。なければ、「い」によって、簡易検索のための暫定的な上界を返す。);}「上界の値自身は有効な範囲の一部(許容最大値)なのか、範囲外で無効なのか?」という境界問題は、常にバグの原因になる。2の53乗以上の場合、この計算には難点があるが、今回はその問題には立ち入らない。呼び出しの最下層にある。やってそこまで情報を伝えるか。オブジェクト指向的に書くと、速度の低下傾向が見られた。中間で使わないローカル変数を上から下まで次々と引数渡しするのも見通しが悪い。状態になって(変数を毎回読み直す必要が生じて)、遅くなるのではないか?試してみたところ、この場合、変数を引数渡しにすると速度が少し低下し、グローバル変数の方がかえって速いようだ。グローバル変数とした。入力値のエラーチェックは次の通り。ビット演算を行うと暗黙に数値型・32ビット整数へのキャストが起きるため、入力がそれ以外(例えば非整数)なら、型または値が変わって弾かれる。