Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Math.max and Math.min only accept two parameters

Abierto
#618 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
javascript

Línea de trabajo

Comienza reproduciendo el ejemplo de kernel de GPU.js proporcionado con Math.max y Math.min usando tres o más argumentos; después, inspecciona cómo se traducen estas llamadas al shader de GPU. Se considera completado cuando las llamadas con múltiples argumentos compilan y devuelven el resultado esperado sin requerir workarounds anidados; verifica el ejemplo original y el caso de dos argumentos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

A GIF or MEME to give some spice of the internet

What is wrong?

Using Math.max with more than two parameters causes the GPU kernel build to fail.

How do we replicate the issue?

const gpu = new GPU({ mode: 'gpu' });
const kernel = gpu.createKernel(function() {
    return Math.max(0, 1, 2);
}).setOutput([1]);
kernel();

And observe the output error
gpu-browser.js:14913 Uncaught Error: Error compiling fragment shader: ERROR: 0:457: 'max' : no matching overloaded function found. Replacing 0, 1, 2 with 0, 1 (or any other two numbers) leads to the function behaving as expected. The same is true of Math.min.
JS Fiddle: https://jsfiddle.net/TomWyllie/opdg95kb/

GPU.js 2.9.4
GPU: NVIDIA GeForce GTX 1060 3GB
Nvidia Driver 446.14
Google Chrome Version 83.0.4103.97 (Official Build) (64-bit)
Windows 10

How important is this (1-5)?

2, it's very easy (but pretty messy) to workaround by using Math.max(x, Math.max(y, Math.max(z, t))); or similar, but that is pretty ugly. My understanding is that the spec allows arbitrarily many parameters.

Other Comments

I'm beginning to think there might be something deeper wrong with GPU.js on my machine given this issue and the other I filed several days ago (#617) must be very common use cases and surely lots of other people would be having these same problems... any thoughts appreciated.

Lenguaje dominante
JavaScript
Estrellas
15.5k
Forks
663
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de gpujs/gpu.js

Todos los issues de gpujs/gpu.js

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.