func RealIsNaN(a Real) bool {
	return math.IsNaN(float64(a))
}
RealIsNaN returns true if the value is Not a Number.
package math
import (
	"math"
)
type Real float64
const Epsilon Real = 1e-7
const (
	MinNormal = Real(1.1754943508222875e-38)  
	MinValue  = Real(math.SmallestNonzeroFloat64)
	MaxValue  = Real(math.MaxFloat64)
)
var (
	InfPos = Real(math.Inf(1))
	InfNeg = Real(math.Inf(-1))
	NaN    = Real(math.NaN())
)
type Matrix3 [9]Real
type Matrix3x4 [12]Real
type Matrix4 [16]Real
type Vector3 [3]Real
type Vector4 [4]Real
type Quat Vector4
func RealEqual(a, b Real) bool {
	if a == b {
		return true
	}
	diff := Real(math.Abs(float64(a - b)))
	if a*b == 0 || diff < MinNormal {
		return diff < Epsilon*Epsilon
	}
	return diff/Real(math.Abs(float64(a))+math.Abs(float64(b))) < Epsilon
}
func DegToRad(angle Real) Real {
	return angle * math.Pi / 180.0
}
func RadToDeg(angle Real) Real {
	return angle * 180.0 / math.Pi
}
func RealAbs(a Real) Real {
	return Real(math.Abs(float64(a)))
}
func RealSqrt(a Real) Real {
	return Real(math.Sqrt(float64(a)))
}
func RealSin(a Real) Real {
	return Real(math.Sin(float64(a)))
}
func RealCos(a Real) Real {
	return Real(math.Cos(float64(a)))
}