constructor

ArrayView.constructor()

ソース

constructor() {
    var args;

    if (arguments.length == 1 && Array.isArray(arguments[0])) {

        args = arguments[0];
    }
    else {

        // 引数のリストをArrayに変換します。
        args = Array.prototype.slice.call(arguments);
    }

    // 引数の最後
    var last_arg = args[args.length - 1];
    if (typeof last_arg != 'number') {
        // 引数の最後が数値でない場合

        if (typeof last_arg == 'ArrayView') {

            this.dt = new Float32Array(last_arg.dt);
        }
        else {

            Assert(last_arg instanceof Float32Array, "is Float32Array");
            this.dt = last_arg;
        }

        args.pop();
    }

    this.shape = args;

    this.ncol = this.shape[this.shape.length - 1];
    if (this.shape.length == 1) {

        this.nrow = 1;
    }
    else {

        this.nrow = this.shape[this.shape.length - 2];
    }

    if (!this.dt) {
        this.dt = new Float32Array(this.shape.reduce((x, y) => x * y));
    }
}