Slide 22 de 37

Matemática

proc main(): void {
	radius := 3.0
	area := hive.math.pi() * radius ** 2.0
	echo area

	echo hive.math.sqrt(hive.math.hypot(3.0, 4.0))
	echo hive.math.max(hive.math.min(2.0, 5.0), 1.0)
	echo hive.math.clamp(120.0, 0.0, 100.0)
}
hive.math é puro, e cada uma de suas treze funções recebe e responde com um Float — não existe uma versão inteira, porque Hive nunca amplia um número pelas suas costas. pi é a única constante; sin, cos, tan e suas inversas asin, acos e atan2 cobrem ângulos; sqrt, hypot e abs cobrem distâncias; min, max e clamp cobrem limites, com clamp definido como exatamente min(max(v, low), high), então um intervalo passado de trás para frente responde com o limite superior. Nada disso reporta um erro: um valor fora do domínio de uma função simplesmente responde com o Float não finito que a aritmética já produz.