---
generated_at: 2026-02-17 11:15:00
metrics:
  claims_total: 26
  claims_with_evidence: 26
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：46-algorithm

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：26 / 26、根拠なし：0
- 優先レビュー（高）
  - 全ての主張に根拠が存在するため、優先レビュー項目なし

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/pure/algorithm.nim` 10行目（モジュールドキュメント）
- E-02: `lib/pure/algorithm.nim` 16-38行目（runnableExamples）
- E-03: `lib/pure/algorithm.nim` 51-69行目（SortOrder型と乗算演算子）
- E-04: `lib/pure/algorithm.nim` 71-98行目（fill関数）
- E-05: `lib/pure/algorithm.nim` 101-136行目（reverse関数）
- E-06: `lib/pure/algorithm.nim` 138-153行目（reversed関数）
- E-07: `lib/pure/algorithm.nim` 160-217行目（binarySearch関数）
- E-08: `lib/pure/algorithm.nim` 222-270行目（lowerBound関数）
- E-09: `lib/pure/algorithm.nim` 272-320行目（upperBound関数）
- E-10: `lib/pure/algorithm.nim` 322-328行目（`<-`テンプレート）
- E-11: `lib/pure/algorithm.nim` 330-367行目（mergeAlt関数）
- E-12: `lib/pure/algorithm.nim` 369-420行目（sort関数）
- E-13: `lib/pure/algorithm.nim` 422-430行目（sort shortcut）
- E-14: `lib/pure/algorithm.nim` 432-470行目（sorted関数）
- E-15: `lib/pure/algorithm.nim` 472-506行目（sortedByItテンプレート）
- E-16: `lib/pure/algorithm.nim` 508-553行目（isSorted関数）
- E-17: `lib/pure/algorithm.nim` 555-645行目（merge関数）
- E-18: `lib/pure/algorithm.nim` 647-682行目（product関数）
- E-19: `lib/pure/algorithm.nim` 684-722行目（nextPermutation関数）
- E-20: `lib/pure/algorithm.nim` 724-757行目（prevPermutation関数）
- E-21: `lib/pure/algorithm.nim` 759-797行目（rotateInternal関数）
- E-22: `lib/pure/algorithm.nim` 813-869行目（rotateLeft関数）
- E-23: `lib/pure/algorithm.nim` 871-918行目（rotatedLeft関数）

## 3) Claims と根拠の対応（レビューの主戦場）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | openArrayに対する一般的なアルゴリズムを提供する | E-01 (10行目) | ○ |
| C-02 | SortOrderはDescending(0)とAscending(1)を持つ | E-03 (52-53行目) | ○ |
| C-03 | *演算子はDescendingの場合符号を反転する | E-03 (55-69行目) | ○ |
| C-04 | fill関数は指定範囲に値を設定する | E-04 (77-88行目) | ○ |
| C-05 | reverse関数は両端からswapで中央に向かって進行する | E-05 (116-121行目) | ○ |
| C-06 | reversed関数は新規シーケンスを作成して逆順コピーする | E-06 (138-149行目) | ○ |
| C-07 | binarySearchは2のべき乗長の場合シフト演算で最適化する | E-07 (182-195行目) | ○ |
| C-08 | binarySearchは見つからない場合-1を返却する | E-07 (195, 209行目) | ○ |
| C-09 | lowerBoundはkey以上の最初の位置を返却する | E-08 (224-228行目) | ○ |
| C-10 | upperBoundはkeyより大きい最初の位置を返却する | E-09 (274-278行目) | ○ |
| C-11 | `<-`テンプレートはmove/shallowCopy/copyMemを分岐する | E-10 (322-328行目) | ○ |
| C-12 | mergeAltはソート済み配列のマージが不要な場合を最適化する | E-11 (336行目) | ○ |
| C-13 | sortはマージソートを実装している | E-12 (372-374行目) | ○ |
| C-14 | sortは安定ソートを保証する | E-12 (373行目) | ○ |
| C-15 | sortは最悪O(n log n)を保証する | E-12 (374行目) | ○ |
| C-16 | sortはn/2の一時バッファを使用する | E-12 (378-379, 413行目) | ○ |
| C-17 | sortはボトムアップで隣接ブロックをマージする | E-12 (415-420行目) | ○ |
| C-18 | sortedは新規シーケンスにコピーしてsortする | E-14 (449-452行目) | ○ |
| C-19 | sortedByItはit変数をinjectする | E-15 (501行目) | ○ |
| C-20 | isSortedは隣接要素を比較して順序違反を検出する | E-16 (531-533行目) | ○ |
| C-21 | merge関数はNim 1.5.1以降で追加された | E-17 (558行目) | ○ |
| C-22 | productはデカルト積を生成する | E-18 (647-682行目) | ○ |
| C-23 | nextPermutationは最後の順列でfalseを返却する | E-19 (712-713行目) | ○ |
| C-24 | rotateInternalはC++ std::rotateをポートしている | E-21 (760-761行目) | ○ |
| C-25 | rotateLeftはmodulo演算で距離を正規化する | E-22 (848行目) | ○ |
| C-26 | rotateLeftに負値を渡すと右回転になる | E-22 (844-845行目のrunnableExample) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし。全ての主張にソースコードからの根拠が存在する。

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全ての主張がソースコードの実装に基づいており、信頼性が高い

## 6) レビュアーチェックリスト（最小）
- [x] 全ての主張に根拠（ソースコード行番号）が存在することを確認
- [x] ソートの安定性・計算量の説明が正確であることを確認
- [x] 二分探索のアルゴリズム説明が正確であることを確認
- [x] lowerBound/upperBoundの境界条件の説明が正確であることを確認
- [ ] runnableExamplesの動作確認（任意）
