| 
 | 
| Function | Hyperbolic secant function |  
  | 
| Syntax C/C++ | #include <VFmath.h>
 int VF_sech( fVector Y, fVector X, ui size );
 int VFx_sech( fVector Y, fVector X, ui size, float A, float B, float C ); |  
| C++ VecObj | #include <OptiVec.h>
 int vector<T>::sech( const vector<T>& X );
 int vector<T>::x_sech( const vector<T>& X, const T& A, const T& B, const T& C ); |  
| Pascal/Delphi | uses VFmath;
 function VF_sech( Y, X:fVector; size:UIntSize ): IntBool;
 function VFx_sech( Y, X:fVector; size:UIntSize; A, B, C:Single ): IntBool; |  
  | 
| CUDA function C/C++ | #include <cudaVFmath.h>
 int cudaVF_sech( fVector d_Y, fVector d_X, ui size );
 int cudaVFx_sech( fVector d_Y, fVector d_X, ui size, float A, float B, float C );
 int cusdVFx_sech( fVector d_Y, fVector d_X, ui size, float *d_A, float *d_B, float *d_C );
 int VFcu_sech( fVector h_Y, fVector h_X, ui size );
 int VFxcu_sech( fVector h_Y, fVector h_X, ui size, float A, float B, float C );
 |  
| CUDA function Pascal/Delphi | uses VFmath;
 function cudaVF_sech( d_Y, d_X:fVector; size:UIntSize ): IntBool;
 function cudaVFx_sech( d_Y, d_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
 function cusdVFx_sech( d_Y, d_X:fVector; size:UIntSize; d_A, d_B, d_C:PSingle ): IntBool;
 function VFcu_sech( h_Y, h_X:fVector; size:UIntSize ): IntBool;
 function VFxcu_sech( h_Y, h_X:fVector; size:UIntSize; A, B, C:Single ): IntBool;
 |  
  | 
| Description | simple versions:
 Yi = sech( Xi )
     = 2 / (exp( Xi ) + exp( −Xi ))
 expanded versions:
 Yi = C * sech( A*Xi+B ) |  
  | 
| Error handling | These functions should be error-proof. |  
  | 
| Return value | always FALSE (0) |  
  | 
 |