docs: private void computeRotation(double run, double rise) {
  //        double alpha = Math.sqrt(run*run + rise*rise);
  //        c = run/alpha;
  //        s = rise/alpha;
  
          if( Math.abs(rise) > Math.abs(run)) {
              double k = run/rise;
  
              double bottom = 1.0 + k*k;
              double bottom_sq = Math.sqrt(bottom);
  
              s2 = 1.0/bottom;
              c2 = k*k/bottom;
              cs = k/bottom;
              s = 1.0/bottom_sq;
              c = k/bottom_sq;
          } else {
              double t = rise/run;
  
              double bottom = 1.0 + t*t;
              double bottom_sq = Math.sqrt(bottom);
  
              c2 = 1.0/bottom;
              s2 = t*t/bottom;
              cs = t/bottom;
              c = 1.0/bottom_sq;
              s = t/bottom_sq;
          }
      }