void                      ::           &     ,
            ::           &     ,
        int       , int           ,
        float       , float         ,
        float                 , float                 ,
        float          , float             ,
        float            
  {
        .       ;
        ::               ::           ,     ::            
      .                 ,  . ,  .   *         ,       ,            ;
         int   =  ;   <     .        .    ; ++  
    {
              &   =     .           . ;
      float   =  .   +  .    *  . ; // hack: 0.49 to avoid getting pow(0)
      float    =            ,      .  ,  . ,            ;
      float    =  .  -            .  -  ,      .  ,  . ,               ;
       .  =       ,   ,    *   .  -                   *       ;
    }
        .           ,                  *       ,   ;
        .                    ;
        .                ;
        .                  ;
        .         ;
        .                 ::           ;

        .       ;
        ::               ::         ,     ::          
      .                 ,  .  *                  *       ,  .   *                  *         ,  ,            ;
        .                    ;
        .                ;
        .                  ;
        .                 ::           ;
        .         ;
  }
