y=square(x) returns the square of the argument for any numeric type.  
More...
y=square(x) returns the square of the argument for any numeric type. 
We promise to evaluate x only once. We assume is is acceptable for the result type to be the same as the argument type; if it won't fit caller must cast argument to a wider type first. This is an inline routine which will run as fast as an explicit multiply (x*x) in optimized code, and somewhat faster for complex and conjugate types (5 flops instead of the usual 6).
Squaring a negated number loses the negator at no cost; squaring a conjugate number returns a complex result at no additional cost. 
◆ square() [1/19]
  
  
      
        
          | unsigned char SimTK::square  | 
          ( | 
          unsigned char  | 
          u | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [2/19]
  
  
      
        
          | unsigned short SimTK::square  | 
          ( | 
          unsigned short  | 
          u | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [3/19]
  
  
      
        
          | unsigned int SimTK::square  | 
          ( | 
          unsigned int  | 
          u | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [4/19]
  
  
      
        
          | unsigned long SimTK::square  | 
          ( | 
          unsigned long  | 
          u | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [5/19]
  
  
      
        
          | unsigned long long SimTK::square  | 
          ( | 
          unsigned long long  | 
          u | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [6/19]
  
  
      
        
          | char SimTK::square  | 
          ( | 
          char  | 
          c | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [7/19]
  
  
      
        
          | signed char SimTK::square  | 
          ( | 
          signed char  | 
          i | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [8/19]
  
  
      
        
          | short SimTK::square  | 
          ( | 
          short  | 
          i | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [9/19]
  
  
      
        
          | int SimTK::square  | 
          ( | 
          int  | 
          i | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [10/19]
  
  
      
        
          | long SimTK::square  | 
          ( | 
          long  | 
          i | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [11/19]
  
  
      
        
          | long long SimTK::square  | 
          ( | 
          long long  | 
          i | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [12/19]
  
  
      
        
          | float SimTK::square  | 
          ( | 
          const float &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [13/19]
  
  
      
        
          | double SimTK::square  | 
          ( | 
          const double &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [14/19]
  
  
      
        
          | float SimTK::square  | 
          ( | 
          const negator< float > &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [15/19]
  
  
      
        
          | double SimTK::square  | 
          ( | 
          const negator< double > &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [16/19]
template<class P > 
  
  
      
        
          | std::complex<P> SimTK::square  | 
          ( | 
          const std::complex< P > &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [17/19]
template<class P > 
  
  
      
        
          | std::complex<P> SimTK::square  | 
          ( | 
          const conjugate< P > &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [18/19]
template<class P > 
  
  
      
        
          | std::complex<P> SimTK::square  | 
          ( | 
          const negator< std::complex< P > > &  | 
          x | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ square() [19/19]