sqrstore
Cambia lo que hay en una celda por su raíz cuadrada redondeada; si no es positivo, la deja en 0.
Datos
- Palabra
sqrstore- Familia
- Escritura en memoria
- Pila entera
- saca 1, pone 0
- Qué hace
- Saca una dirección y deja en la celda su raíz cuadrada, redondeada al entero más cercano. Si tenía 0 o un negativo, queda en 0.
- Costo
- Store dividido por el divisor de cada uno, solo si escribe
- División del costo
- ÷ 7
- Se ejecuta en
- en el cuerpo de un gen (start o else) y solo si el tope de la pila booleana es verdadero o está vacía
- Marca lazos
- no
d sqrstore saca la dirección d y deja en la celda la raíz cuadrada de lo que tenía, redondeada al entero más cercano. No toma ningún valor de la pila.
| Palabra | Pila después |
|---|---|
50 | 50 |
sqrstore | (vacía); si la celda 50 tenía 50, ahora tiene 7 |
La raíz sirve para achicar números grandes sin perder el orden: 3000 queda en 55 y 30000 en 173.
' empuja hacia adelante según la raíz de su energía
cond
start
*.nrg 50 store
50 sqrstore
*50 .up store
stopCon 3000 de energía (.nrg) el bot pide 55 con .up; con menos energía, menos. En el primer ciclo pide 0, porque los sentidos todavía no se publicaron y *.nrg lee 0 (ver Ejecución y costos).
Si la celda tiene 0 o un negativo, queda en 0: no da error. Es lo mismo que *50 sqr 50 store (ver sqr), con menos palabras y a la séptima parte del costo de un store.