sc32 function
Implementation
double sc32(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[145]) - (r * MAGIC[139])), z + ((r * MAGIC[139]) + (r * MAGIC[145]))))
+(n.noise2(x + ((r * MAGIC[79]) - (r * MAGIC[78])), z + ((r * MAGIC[78]) + (r * MAGIC[79]))))
+(n.noise2(x + ((r * MAGIC[146]) - (r * MAGIC[99])), z + ((r * MAGIC[99]) + (r * MAGIC[146]))))
+(n.noise2(x + ((r * MAGIC[81]) - (r * MAGIC[80])), z + ((r * MAGIC[80]) + (r * MAGIC[81]))))
+(n.noise2(x + ((r * MAGIC[147]) - (r * MAGIC[67])), z + ((r * MAGIC[67]) + (r * MAGIC[147]))))
+(n.noise2(x + ((r * MAGIC[71]) - (r * MAGIC[72])), z + ((r * MAGIC[72]) + (r * MAGIC[71]))))
+(n.noise2(x + ((r * MAGIC[133]) - (r * MAGIC[134])), z + ((r * MAGIC[134]) + (r * MAGIC[133]))))
+(n.noise2(x + ((r * MAGIC[83]) - (r * MAGIC[82])), z + ((r * MAGIC[82]) + (r * MAGIC[83]))))
+(n.noise2(x + ((r * MAGIC[59]) - (r * MAGIC[57])), z + ((r * MAGIC[57]) + (r * MAGIC[59]))))
+(n.noise2(x + ((r * MAGIC[36]) - (r * MAGIC[84])), z + ((r * MAGIC[84]) + (r * MAGIC[36]))))
+(n.noise2(x + ((r * MAGIC[149]) - (r * MAGIC[148])), z + ((r * MAGIC[148]) + (r * MAGIC[149]))))
+(n.noise2(x + ((r * MAGIC[85]) - (r * MAGIC[73])), z + ((r * MAGIC[73]) + (r * MAGIC[85]))))
+(n.noise2(x + ((r * MAGIC[138]) - (r * MAGIC[137])), z + ((r * MAGIC[137]) + (r * MAGIC[138]))))
+(n.noise2(x + ((r * MAGIC[86]) - (r * MAGIC[44])), z + ((r * MAGIC[44]) + (r * MAGIC[86]))))
+(n.noise2(x + ((r * MAGIC[24]) - (r * MAGIC[65])), z + ((r * MAGIC[65]) + (r * MAGIC[24]))))
+(n.noise2(x + ((r * MAGIC[88]) - (r * MAGIC[87])), z + ((r * MAGIC[87]) + (r * MAGIC[88]))))
+(n.noise2(x + ((r * MAGIC[113]) - (r * MAGIC[112])), z + ((r * MAGIC[112]) + (r * MAGIC[113]))))
+(n.noise2(x + ((r * MAGIC[14]) - (r * MAGIC[40])), z + ((r * MAGIC[40]) + (r * MAGIC[14]))))
+(n.noise2(x + ((r * MAGIC[143]) - (r * MAGIC[111])), z + ((r * MAGIC[111]) + (r * MAGIC[143]))))
+(n.noise2(x + ((r * MAGIC[89]) - (r * MAGIC[38])), z + ((r * MAGIC[38]) + (r * MAGIC[89]))))
+(n.noise2(x + ((r * MAGIC[102]) - (r * MAGIC[101])), z + ((r * MAGIC[101]) + (r * MAGIC[102]))))
+(n.noise2(x + ((r * MAGIC[91]) - (r * MAGIC[90])), z + ((r * MAGIC[90]) + (r * MAGIC[91]))))
+(n.noise2(x + ((r * MAGIC[151]) - (r * MAGIC[150])), z + ((r * MAGIC[150]) + (r * MAGIC[151]))))
+(n.noise2(x + ((r * MAGIC[46]) - (r * MAGIC[76])), z + ((r * MAGIC[76]) + (r * MAGIC[46]))))
+(n.noise2(x + ((r * MAGIC[69]) - (r * MAGIC[70])), z + ((r * MAGIC[70]) + (r * MAGIC[69]))))
+(n.noise2(x + ((r * MAGIC[93]) - (r * MAGIC[92])), z + ((r * MAGIC[92]) + (r * MAGIC[93]))))
+(n.noise2(x + ((r * MAGIC[20]) - (r * MAGIC[21])), z + ((r * MAGIC[21]) + (r * MAGIC[20]))))
+(n.noise2(x + ((r * MAGIC[95]) - (r * MAGIC[94])), z + ((r * MAGIC[94]) + (r * MAGIC[95]))))
+(n.noise2(x + ((r * MAGIC[152]) - (r * MAGIC[114])), z + ((r * MAGIC[114]) + (r * MAGIC[152]))))
+(n.noise2(x + ((r * MAGIC[4]) - (r * MAGIC[5])), z + ((r * MAGIC[5]) + (r * MAGIC[4]))))
+(n.noise2(x + ((r * MAGIC[154]) - (r * MAGIC[153])), z + ((r * MAGIC[153]) + (r * MAGIC[154]))))
+(n.noise2(x + ((r * MAGIC[55]) - (r * MAGIC[54])), z + ((r * MAGIC[54]) + (r * MAGIC[55])))))*0.03125;
}