]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/misc.cc
Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / lily / misc.cc
index 54da3d0f5566a035e3d804655cc3f79f90f985f8..aa49a697a6e990bac32fc78e76cd3ace09dd66ef 100644 (file)
@@ -43,3 +43,38 @@ directed_round (Real f, Direction d)
     return ceil (f);
 }
 
+
+
+/*
+   0 at threshold,  1 at 0, with 1/x falloff.
+ */
+Real
+peak_around (Real epsilon,  Real threshold, Real x)
+{
+  if (x < 0)
+    return 1.0;
+  return max (- epsilon * (x - threshold) / ((x + epsilon)  * threshold), 0.0);
+}
+
+
+string
+camel_case_to_lisp_identifier (string in)
+{
+  vector<char> out;
+  
+  /* don't add '-' before first character */
+  out.push_back (tolower (in[0]));
+    
+  for (size_t inpos = 1; inpos < in.size (); inpos++)
+    {
+      if (isupper (in[inpos]))
+       out.push_back ('-');
+      out.push_back (tolower (in[inpos]));
+    }
+  
+  string result (&out[0], out.size ());
+  replace_all (result, '_', '-');
+
+  return result;
+}
+