MCPcopy Create free account
hub / github.com/gpujs/gpu.js / _resultImmutableKernel3DLoop

Method _resultImmutableKernel3DLoop

src/backend/cpu/kernel.js:552–574  ·  view source on GitHub ↗
(kernelString)

Source from the content-addressed store, hash-verified

550 }
551
552 _resultImmutableKernel3DLoop(kernelString) {
553 const constructorString = this._getKernelResultTypeConstructorString();
554 return ` const outputX = _this.output[0];
555 const outputY = _this.output[1];
556 const outputZ = _this.output[2];
557 const result = new Array(outputZ);
558 ${ this._mapSubKernels(subKernel => `const result_${ subKernel.name } = new Array(outputZ);\n`).join(' ') }
559 ${ this._mapSubKernels(subKernel => `let subKernelResult_${ subKernel.name };\n`).join(' ') }
560 for (let z = 0; z < outputZ; z++) {
561 this.thread.z = z;
562 const resultY = result[z] = new Array(outputY);
563 ${ this._mapSubKernels(subKernel => `const resultY_${ subKernel.name } = result_${subKernel.name}[z] = new Array(outputY);\n`).join(' ') }
564 for (let y = 0; y < outputY; y++) {
565 this.thread.y = y;
566 const resultX = resultY[y] = new ${constructorString}(outputX);
567 ${ this._mapSubKernels(subKernel => `const resultX_${ subKernel.name } = resultY_${subKernel.name}[y] = new ${constructorString}(outputX);\n`).join(' ') }
568 for (let x = 0; x < outputX; x++) {
569 this.thread.x = x;
570 ${ kernelString }
571 }
572 }
573 }`;
574 }
575
576 _mutableKernel3DResults() {
577 const constructorString = this._getKernelResultTypeConstructorString();

Callers 1

_resultKernelBodyMethod · 0.95

Calls 2

_mapSubKernelsMethod · 0.95

Tested by

no test coverage detected