sc38 function
Implementation
double sc38(double x, double z, double r, NoisePlane n) {
return ((n.noise2(x + ((r * MAGIC[1]) - (r * MAGIC[0])), z + ((r * MAGIC[0]) + (r * MAGIC[1]))))
+(n.noise2(x + ((r * MAGIC[57]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[57]))))
+(n.noise2(x + ((r * MAGIC[9]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[9]))))
+(n.noise2(x + ((r * MAGIC[56]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[56]))))
+(n.noise2(x + ((r * MAGIC[39]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[39]))))
+(n.noise2(x + ((r * MAGIC[28]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[28]))))
+(n.noise2(x + ((r * MAGIC[11]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[11]))))
+(n.noise2(x + ((r * MAGIC[20]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[20]))))
+(n.noise2(x + ((r * MAGIC[10]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[10]))))
+(n.noise2(x + ((r * MAGIC[58]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[58]))))
+(n.noise2(x + ((r * MAGIC[7]) - (r * MAGIC[1])), z + ((r * MAGIC[1]) + (r * MAGIC[7]))))
+(n.noise2(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59]))))
+(n.noise2(x + ((r * MAGIC[40]) - (r * MAGIC[9])), z + ((r * MAGIC[9]) + (r * MAGIC[40]))))
+(n.noise2(x + ((r * MAGIC[61]) - (r * MAGIC[56])), z + ((r * MAGIC[56]) + (r * MAGIC[61]))))
+(n.noise2(x + ((r * MAGIC[13]) - (r * MAGIC[39])), z + ((r * MAGIC[39]) + (r * MAGIC[13]))))
+(n.noise2(x + ((r * MAGIC[29]) - (r * MAGIC[28])), z + ((r * MAGIC[28]) + (r * MAGIC[29]))))
+(n.noise2(x + ((r * MAGIC[12]) - (r * MAGIC[11])), z + ((r * MAGIC[11]) + (r * MAGIC[12]))))
+(n.noise2(x + ((r * MAGIC[21]) - (r * MAGIC[20])), z + ((r * MAGIC[20]) + (r * MAGIC[21]))))
+(n.noise2(x + ((r * MAGIC[14]) - (r * MAGIC[10])), z + ((r * MAGIC[10]) + (r * MAGIC[14]))))
+(n.noise2(x + ((r * MAGIC[60]) - (r * MAGIC[58])), z + ((r * MAGIC[58]) + (r * MAGIC[60]))))
+(n.noise2(x + ((r * MAGIC[3]) - (r * MAGIC[2])), z + ((r * MAGIC[2]) + (r * MAGIC[3]))))
+(n.noise2(x + ((r * MAGIC[60]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[60]))))
+(n.noise2(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14]))))
+(n.noise2(x + ((r * MAGIC[21]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[21]))))
+(n.noise2(x + ((r * MAGIC[12]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[12]))))
+(n.noise2(x + ((r * MAGIC[29]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[29]))))
+(n.noise2(x + ((r * MAGIC[13]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[13]))))
+(n.noise2(x + ((r * MAGIC[61]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[61]))))
+(n.noise2(x + ((r * MAGIC[40]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[40]))))
+(n.noise2(x + ((r * MAGIC[59]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[59]))))
+(n.noise2(x + ((r * MAGIC[8]) - (r * MAGIC[3])), z + ((r * MAGIC[3]) + (r * MAGIC[8]))))
+(n.noise2(x + ((r * MAGIC[58]) - (r * MAGIC[60])), z + ((r * MAGIC[60]) + (r * MAGIC[58]))))
+(n.noise2(x + ((r * MAGIC[10]) - (r * MAGIC[14])), z + ((r * MAGIC[14]) + (r * MAGIC[10]))))
+(n.noise2(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20]))))
+(n.noise2(x + ((r * MAGIC[11]) - (r * MAGIC[12])), z + ((r * MAGIC[12]) + (r * MAGIC[11]))))
+(n.noise2(x + ((r * MAGIC[28]) - (r * MAGIC[29])), z + ((r * MAGIC[29]) + (r * MAGIC[28]))))
+(n.noise2(x + ((r * MAGIC[39]) - (r * MAGIC[13])), z + ((r * MAGIC[13]) + (r * MAGIC[39]))))
+(n.noise2(x + ((r * MAGIC[56]) - (r * MAGIC[61])), z + ((r * MAGIC[61]) + (r * MAGIC[56]))))
+(n.noise2(x + ((r * MAGIC[9]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[9]))))
+(n.noise2(x + ((r * MAGIC[57]) - (r * MAGIC[59])), z + ((r * MAGIC[59]) + (r * MAGIC[57])))))*0.02631579;
}