transformRealAndImagComponentsWith(func) {
        let buf = this._buffer.slice();
        for (let i = 0; i < buf.length; i++) {
            buf[i] = func(buf[i]);
        }
        return new Matrix(this._width, this._height, buf);
    }
@param {!function(!number) : !number} func
@returns {!Matrix}
@private