Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[RFC]: add `ndarray/tensor3d/ctor`

オープン
#14,959 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@0PrashantYadav0 がすでに取り組んでいます。

2026年9月4日 から。

評価

この issue はまだ評価されていません。

説明

Accepted Feature RFC
Description

This RFC proposes adding @stdlib/ndarray/tensor3d/ctor, the three-dimensional counterpart to the existing @stdlib/ndarray/vector/ctor and @stdlib/ndarray/matrix/ctor packages, as the next step toward providing dedicated dimensional constructors up to five dimensions.

Motivation

As with ndarray/vector/* and ndarray/matrix/*, these APIs provide convenient dedicated interfaces for constructing arrays of a known dimensionality from nested arrays, together with the corresponding validation. For example,

var x = new Float64Tensor3D( [ [ [ 1, 2, 3 ], [ 4, 5, 6 ] ], [ [ 7, 8, 9 ], [ 10, 11, 12 ] ] ] );
// returns <ndarray>

Dimensional constructors up to 5D cover more than 80% of end-user use cases for ndarray dimensionality. Arrays of six or more dimensions are markedly less common and are adequately served by the general-purpose @stdlib/ndarray/ctor and @stdlib/ndarray/array APIs.

Supported options (readonly, mode, submode, order) and their defaults are unchanged from matrix/ctor.

Future plan

This RFC covers tensor3d/ctor and the typed constructors. The sequence:

  1. The parent @stdlib/ndarray/tensor3d namespace package — handled separately by a maintainer. Not done here.
  2. Typed 3D constructors — done. The complete set matching vector: bool (BooleanTensor3D), complex64, complex128, float32, float64, int8, int16, int32, uint8, uint8c (Uint8ClampedTensor3D), uint16, uint32. Each is a thin wrapper over require( '@stdlib/ndarray/tensor3d/ctor' ).factory( dtype ) accompanied by documentation, types, tests, and benchmarks.
  3. ndarray/tensor4d — constructor plus typed packages, using @stdlib/array/base/flatten4d.
  4. ndarray/tensor5d — constructor plus typed packages, using @stdlib/array/base/flatten5d, completing coverage through five dimensions.

Constructor names follow the vector convention rather than a literal data type transliteration: bool exports BooleanTensor3D and uint8c exports Uint8ClampedTensor3D. Package descriptions use the repository's dominant phrasing for integer types ("signed 32-bit integer", used by 39 packages) rather than the inverted form used by matrix/int32 and two others.

Related Issues

None.

Questions

No.

Three questions were raised while drafting and have since been resolved by a maintainer:

  1. Should the thin parent @stdlib/ndarray/tensor3d namespace package land together with tensor3d/ctor? — No. It will be handled separately by a maintainer.
  2. Should the typed constructors mirror the matrix set or the broader vector set? — The full set, matching vector. Work is already in progress to bring the matrix namespace up to the complete set.
  3. Should the from_arraybuffer.js TODO be tackled as part of this work? — No. Work on @stdlib/ndarray/from-arraybuffer is already in progress separately; copying the helper is acceptable for now.
Other

No.

Checklist
  • I have read and understood the Code of Conduct.
  • Searched for existing issues and pull requests.
  • The issue name begins with RFC:.
主要言語
JavaScript
スター
6k
フォーク
1.3k
平均マージ
1日 8時間
マージ済み PR(30日)
586

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

stdlib-js/stdlib のほかの issue

stdlib-js/stdlib の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。