Skip to content

Vector の基本的な修正#3314

Open
scivola wants to merge 12 commits into
rurema:masterfrom
scivola:improve-Vector
Open

Vector の基本的な修正#3314
scivola wants to merge 12 commits into
rurema:masterfrom
scivola:improve-Vector

Conversation

@scivola

@scivola scivola commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

主な修正点は

  • 基本的な整形(バッククオート付けなど)
  • サンプルコードの簡素化
  • 「自身」→ self
  • 述語メソッドに「そうでなければ false を返します」を追加
  • 一部のメソッドの説明のちょっとした訂正
  • 冒頭の説明の訂正

@znz

znz commented Jul 25, 2026

Copy link
Copy Markdown
Member

Vector の修正 PR ありがとうございます。実機 Ruby 3.4.8(matrix 0.4.3)で全サンプルコードを実行し、記載の出力と一致することを確認しました。また PR の head をチェックアウトして bitclust update --markdowntreestatichtml まで通し、コンパイルエラー・警告 0 でビルド・レンダリングできることも確認しています。

  • バッククォート整形・self 表記への統一・述語メソッド(zero? / independent?)への「そうでなければ false を返します」の補完・-@ の「逆ベクトル(各要素に -1 を乗じたベクトル)」への言い換え・Matrix.column_vector / Matrix.row_vector への SEE 追加、いずれも matrix-0.4.3 の実装と一致しています。
  • ### def / ## 見出しは base と完全一致(シグネチャの増減なし)なので、他ファイル(Vector__ZeroVectorError.mdMatrix.mdglossary.mdnews/*.md 等)からの [m:Vector#...] / [c:Vector] 参照が壊れないことも確認しました。
  • 例の簡略化・冒頭の「複素ベクトルも表せます」等の加筆も、内容を落とさず正確でした。

マージ可と考えます。

1 点だけ、この PR で触れている covector のブロックに既存の記述誤りがあるので、ついでに直していただけると良さそうです(この PR でも別 PR でもお任せします)。

### def covector -> Matrix

列ベクトル (行列)、すなわち、(n, 1) 型の行列に変換します。
実際には `Matrix.row_vector(self)` を適用します。

covector は実際には Matrix.row_vector(self)(この PR で SEE も追加された側)を呼ぶため、返るのは行ベクトル、すなわち (1, n) 型の行列です。同ブロックの例の出力 Matrix[[2, 3, 5]] も 1×3 の行ベクトルになっています(手元でも v.covector.row_count, column_count # => 1, 3 を確認)。したがって

行ベクトル (行列)、すなわち、(1, n) 型の行列に変換します。

が正しい説明になります(covector = 双対ベクトル = 行ベクトル、という名前とも整合します)。冒頭の「Matrix との演算では列ベクトルとして扱われる」(*Matrix.column_vector を使う)の記述は別の話で、そちらは正しいままです。

なお - **raise** の例外名が normalize では `Vector::ZeroVectorError`angle_with では `ZeroVectorError` と表記ゆれしていますが、こちらは既存の体裁差で本 PR とは無関係なので、気が向いたらで構いません。

scivola added 2 commits July 26, 2026 05:09
angle_with は Vector:: が抜けていた
[]=(range, v) は ExceptionForMatrix が Matrix になっていた
@scivola

scivola commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

covector の誤りは気になっていましたが,確信が持てなかったのであとで調べようと思っていました。ご指摘で確信が持てたので,修正しました。
例外クラスも訂正しました。調べる際,[]=(range, v) の例外の誤りに気づいたのでそれも直しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants