shithub: mc

ref: e07b79bf077459eda3d7d59cbaf1b4f431e3b2c6
dir: /test/sqrt.myr/

View raw version
use std

const abs = {d
	if d < 0.0
		-> -d
	else
		-> d
	;;
}

const Eps = 0.00001
const Maxiter = 20

const sqrt = {x : float64
	var val
	var iter
	var i;

	val = 1.0;
	for i = 0; i < Maxiter; i++
		iter = 0.5*(val - x/val)
		if abs(val - iter) < Eps
			-> val;
			val = iter;
		;;
	;;
}

const main = {
	std.exit(sqrt(20.0) castto(int))
}