[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] SF.net SVN: supercollider:[8342] trunk/Source/plugins/LFUGens.cpp



Revision: 8342
          http://supercollider.svn.sourceforge.net/supercollider/?rev=8342&view=rev
Author:   timblech
Date:     2008-12-31 12:04:47 +0000 (Wed, 31 Dec 2008)

Log Message:
-----------
use some stl math functions to avoid float->double->float conversions

Signed-off-by: Tim Blechmann <tim@xxxxxxxxxx>

Modified Paths:
--------------
    trunk/Source/plugins/LFUGens.cpp

Modified: trunk/Source/plugins/LFUGens.cpp
===================================================================
--- trunk/Source/plugins/LFUGens.cpp	2008-12-31 11:35:40 UTC (rev 8341)
+++ trunk/Source/plugins/LFUGens.cpp	2008-12-31 12:04:47 UTC (rev 8342)
@@ -1352,7 +1352,7 @@
 	
 	int counter = (int)(dur * unit->mRate->mSampleRate + .5f);
 	unit->mCounter = sc_max(1, counter);
-	unit->mGrowth = pow(end / start, 1.0 / counter);
+	unit->mGrowth = std::pow(end / start, 1.0 / counter);
 	unit->mLevel = start;
 	unit->mEndLevel = end;
 	
@@ -1518,7 +1518,7 @@
 	
 	LOOP(inNumSamples, 
 		float xa = ZXP(freq);
-		ZXP(out) = xa >= 0.f ? pow(xa, xb) * rootmul : -pow(-xa, xb) * rootmul;
+		ZXP(out) = xa >= 0.f ? std::pow(xa, xb) * rootmul : -std::pow(-xa, xb) * rootmul;
 	);
 }
 
@@ -1532,7 +1532,7 @@
 	
 	LOOP(inNumSamples, 
 		float xa = root / ZXP(freq);
-		ZXP(out) = xa >= 0.f ? pow(xa, xb) : -pow(-xa, xb);
+		ZXP(out) = xa >= 0.f ? std::pow(xa, xb) : -std::pow(-xa, xb);
 	);
 }
 
@@ -1542,7 +1542,7 @@
 		SETCALC(AmpComp_next_kk);
 	} else {
 		float exp = ZIN0(2);
-		unit->m_rootmul = pow(ZIN0(1), exp);
+		unit->m_rootmul = std::pow(ZIN0(1), exp);
 		unit->m_exponent = -1.f * exp;
 		SETCALC(AmpComp_next);
 	}
@@ -1662,7 +1662,7 @@
 	float rrminuslo = unit->m_rrminuslo;
 
 	LOOP(inNumSamples, 
-		ZXP(out) = dstlo * pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
+		ZXP(out) = dstlo * std::pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
 	);
 }
 
@@ -1679,7 +1679,7 @@
 	float rrminuslo = rsrcrange * -srclo;
 
 	LOOP(inNumSamples, 
-		ZXP(out) = dstlo * pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
+		ZXP(out) = dstlo * std::pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
 	);
 }
 
@@ -1701,7 +1701,7 @@
 		float dstratio = zdsthi/zdstlo;
 		float rsrcrange = 1. / (zsrchi - zsrclo);
 		float rrminuslo = rsrcrange * -zsrclo;
-		ZXP(out) = zdstlo * pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
+		ZXP(out) = zdstlo * std::pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
 	);
 }
 
@@ -1721,7 +1721,7 @@
 		
 		float rsrcrange = 1. / (zsrchi - zsrclo);
 		float rrminuslo = rsrcrange * -zsrclo;
-		ZXP(out) = dstlo * pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
+		ZXP(out) = dstlo * std::pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
 	);
 }
 
@@ -1740,7 +1740,7 @@
 		float zdsthi = ZXP(dsthi);
 		float zdstlo = ZXP(dstlo);
 		float dstratio = zdsthi/zdstlo;
-		ZXP(out) = zdstlo * pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
+		ZXP(out) = zdstlo * std::pow(dstratio, ZXP(in) * rsrcrange + rrminuslo);
 	);
 }
 
@@ -2073,7 +2073,7 @@
 					//Print("grow %g\n", unit->m_grow);
 				} break;
 				case shape_Exponential : {
-					unit->m_grow = pow(endLevel / level, 1.0 / counter);
+					unit->m_grow = std::pow(endLevel / level, 1.0 / counter);
 				} break;
 				case shape_Sine : {
 					double w = pi / counter;
@@ -2117,8 +2117,8 @@
 					unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 				} break;
 				case shape_Cubed : {
-					unit->m_y1 = pow(level, 0.33333333); 
-					unit->m_y2 = pow(endLevel, 0.33333333); 
+					unit->m_y1 = std::pow(level, 0.33333333);
+					unit->m_y2 = std::pow(endLevel, 0.33333333);
 					unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 				} break;
 			}
@@ -2278,7 +2278,7 @@
 						unit->m_grow = (endLevel - level) / counter;
 					} break;
 					case shape_Exponential : {
-						unit->m_grow = pow(endLevel / level, 1.0 / counter);
+						unit->m_grow = std::pow(endLevel / level, 1.0 / counter);
 					} break;
 					case shape_Sine : {
 						double w = pi / counter;
@@ -2322,8 +2322,8 @@
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 					case shape_Cubed : {
-						unit->m_y1 = pow(level, 0.33333333); 
-						unit->m_y2 = pow(endLevel, 0.33333333); 
+						unit->m_y1 = std::pow(level, 0.33333333);
+						unit->m_y2 = std::pow(endLevel, 0.33333333);
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 				}
@@ -2525,7 +2525,7 @@
 						unit->m_grow = (endLevel - level) / counter;
 					} break;
 					case shape_Exponential : {
-						unit->m_grow = pow(endLevel / level, 1.0 / counter);
+						unit->m_grow = std::pow(endLevel / level, 1.0 / counter);
 					} break;
 					case shape_Sine : {
 						double w = pi / counter;
@@ -2569,8 +2569,8 @@
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 					case shape_Cubed : {
-						unit->m_y1 = pow(level, 0.33333333); 
-						unit->m_y2 = pow(endLevel, 0.33333333); 
+						unit->m_y1 = std::pow(level, 0.33333333);
+						unit->m_y2 = std::pow(endLevel, 0.33333333);
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 				}
@@ -2806,7 +2806,7 @@
 					//Print("grow %g\n", unit->m_grow);
 				} break;
 				case shape_Exponential : {
-					unit->m_grow = pow(endLevel / level, 1.0 / counter);
+					unit->m_grow = std::pow(endLevel / level, 1.0 / counter);
 				} break;
 				case shape_Sine : {
 					double w = pi / counter;
@@ -2850,8 +2850,8 @@
 					unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 				} break;
 				case shape_Cubed : {
-					unit->m_y1 = pow(level, 0.33333333); 
-					unit->m_y2 = pow(endLevel, 0.33333333); 
+					unit->m_y1 = std::pow(level, 0.33333333);
+					unit->m_y2 = std::pow(endLevel, 0.33333333);
 					unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 				} break;
 			}
@@ -3002,7 +3002,7 @@
 						unit->m_grow = (endLevel - level) / counter;
 					} break;
 					case shape_Exponential : {
-						unit->m_grow = pow(endLevel / level, 1.0 / counter);
+						unit->m_grow = std::pow(endLevel / level, 1.0 / counter);
 					} break;
 					case shape_Sine : {
 						double w = pi / counter;
@@ -3046,8 +3046,8 @@
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 					case shape_Cubed : {
-						unit->m_y1 = pow(level, 0.33333333); 
-						unit->m_y2 = pow(endLevel, 0.33333333); 
+						unit->m_y1 = std::pow(level, 0.33333333);
+						unit->m_y2 = std::pow(endLevel, 0.33333333);
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 				}
@@ -3232,7 +3232,7 @@
 						unit->m_grow = (endLevel - level) / counter;
 					} break;
 					case shape_Exponential : {
-						unit->m_grow = pow(endLevel / level, 1.0 / counter);
+						unit->m_grow = std::pow(endLevel / level, 1.0 / counter);
 					} break;
 					case shape_Sine : {
 						double w = pi / counter;
@@ -3276,8 +3276,8 @@
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 					case shape_Cubed : {
-						unit->m_y1 = pow(level, 0.33333333); 
-						unit->m_y2 = pow(endLevel, 0.33333333); 
+						unit->m_y1 = std::pow(level, 0.33333333);
+						unit->m_y2 = std::pow(endLevel, 0.33333333);
 						unit->m_grow = (unit->m_y2 - unit->m_y1) / counter;
 					} break;
 				}
@@ -3586,10 +3586,10 @@
 	counter = sc_max(1, counter);
 	unit->m_counter = counter;
 
-	double a1 = (endLevel - unit->m_level) / (1.0 - exp(curve));	
+	double a1 = (endLevel - unit->m_level) / (1.0 - std::exp(curve));
 	unit->m_a2 = unit->m_level + a1;
 	unit->m_b1 = a1; 
-	unit->m_grow = exp(curve / counter);
+	unit->m_grow = std::exp(curve / counter);
 }
 
 inline void ADSR_next(ADSR *unit)
@@ -3699,7 +3699,7 @@
 				}
 			} break;
 			case shape_Exponential : {
-				double grow = pow(endLevel / level, 1.0 / nsmps);
+				double grow = std::pow(endLevel / level, 1.0 / nsmps);
 				for (int i=0; i<nsmps; ++i) {
 					data[index++] = level;
 					level *= grow;
@@ -3774,8 +3774,8 @@
 				}
 			} break;
 			case shape_Cubed : {
-				double y1 = pow(level, 0.33333333); 
-				double y2 = pow(endLevel, 0.33333333); 
+				double y1 = std::pow(level, 0.33333333);
+				double y2 = std::pow(endLevel, 0.33333333);
 				double grow = (y2 - y1) / nsmps;
 				for (int i=0; i<nsmps; ++i) {
 					data[index++] = level;
@@ -3823,7 +3823,7 @@
 		    level = unit->m_level = pos * (endLevel - begLevel) + begLevel; \
 		    break; \
 	    case shape_Exponential : \
-		    level = unit->m_level = begLevel * pow(endLevel / begLevel, pos); \
+			level = unit->m_level = begLevel * std::pow(endLevel / begLevel, pos); \
 		    break; \
 	    case shape_Sine : \
 		    level = unit->m_level = begLevel + (endLevel - begLevel) * (-cos(pi * pos) * 0.5 + 0.5); \
@@ -3840,8 +3840,8 @@
 		    if (fabs((float)curve) < 0.0001) { \
 			    level = unit->m_level = pos * (endLevel - begLevel) + begLevel; \
 		    } else { \
-			    double denom = 1. - exp((float)curve); \
-			    double numer = 1. - exp((float)(pos * curve)); \
+				double denom = 1. - std::exp((float)curve); \
+				double numer = 1. - std::exp((float)(pos * curve)); \
 			    level = unit->m_level = begLevel + (endLevel - begLevel) * (numer/denom); \
 		    } \
 		    break; \
@@ -3855,8 +3855,8 @@
 	    } \
 	    case shape_Cubed : \
 	    { \
-		    double cbrtBegLevel = pow(begLevel, (float)0.3333333); \
-		    double cbrtEndLevel = pow(endLevel, (float)0.3333333); \
+			double cbrtBegLevel = std::pow(begLevel, 0.3333333f); \
+			double cbrtEndLevel = std::pow(endLevel, 0.3333333f); \
 		    double cbrtLevel = pos * (cbrtEndLevel - cbrtBegLevel) + cbrtBegLevel; \
 		    level = unit->m_level = cbrtLevel * cbrtLevel * cbrtLevel; \
 		    break; \


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/