summaryrefslogtreecommitdiff
path: root/kaldi_io/src/tools/ATLAS/include/atlas_refmisc.h
diff options
context:
space:
mode:
Diffstat (limited to 'kaldi_io/src/tools/ATLAS/include/atlas_refmisc.h')
-rw-r--r--kaldi_io/src/tools/ATLAS/include/atlas_refmisc.h367
1 files changed, 0 insertions, 367 deletions
diff --git a/kaldi_io/src/tools/ATLAS/include/atlas_refmisc.h b/kaldi_io/src/tools/ATLAS/include/atlas_refmisc.h
deleted file mode 100644
index d8b600e..0000000
--- a/kaldi_io/src/tools/ATLAS/include/atlas_refmisc.h
+++ /dev/null
@@ -1,367 +0,0 @@
-/* ---------------------------------------------------------------------
- *
- * -- Automatically Tuned Linear Algebra Software (ATLAS)
- * (C) Copyright 2000 All Rights Reserved
- *
- * -- ATLAS routine -- Version 3.2 -- December 25, 2000
- *
- * Author : Antoine P. Petitet
- * Originally developed at the University of Tennessee,
- * Innovative Computing Laboratory, Knoxville TN, 37996-1301, USA.
- *
- * ---------------------------------------------------------------------
- *
- * -- Copyright notice and Licensing terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions, and the following disclaimer in
- * the documentation and/or other materials provided with the distri-
- * bution.
- * 3. The name of the University, the ATLAS group, or the names of its
- * contributors may not be used to endorse or promote products deri-
- * ved from this software without specific written permission.
- *
- * -- Disclaimer:
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
- * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEO-
- * RY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (IN-
- * CLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ---------------------------------------------------------------------
- */
-#ifndef ATL_REFMISC_H
-#define ATL_REFMISC_H
-/*
- * =====================================================================
- * Include files
- * =====================================================================
- */
-#include <math.h>
-#include "atlas_enum.h"
-/*
- * =====================================================================
- * #define macro constants
- * =====================================================================
- */
-#define ATL_sNONE (-1.0f)
-#define ATL_sNTWO (-2.0f)
-#define ATL_sONE ( 1.0f)
-#define ATL_sZERO ( 0.0f)
-
-#define ATL_dNONE (-1.0)
-#define ATL_dNTWO (-2.0)
-#define ATL_dONE ( 1.0)
-#define ATL_dZERO ( 0.0)
-/*
- * =====================================================================
- * # macro functions
- * =====================================================================
- */
-#define Msabs( a_ ) ( ( (a_) < ATL_sZERO ) ? -(a_) : (a_) )
-
-#define Mszero( a_r_, a_i_ ) \
- ( ( (a_r_) == ATL_sZERO ) && ( (a_i_) == ATL_sZERO ) )
-
-#define Msone( a_r_, a_i_ ) \
- ( ( (a_r_) == ATL_sONE ) && ( (a_i_) == ATL_sZERO ) )
-
-#define Msscl( a_r_, a_i_, c_r_, c_i_ ) \
- { \
- register float tmp_r_, tmp_i_; \
- tmp_r_ = (a_r_) * c_r_ - (a_i_) * c_i_; \
- tmp_i_ = (a_r_) * c_i_ + (a_i_) * c_r_; \
- c_r_ = tmp_r_; \
- c_i_ = tmp_i_; \
- }
-/*
- * Msdiv performs complex division in real arithmetic
- * a_r_ + i * a_i_ = ( a_r_ + i * a_i_ ) / ( b_r_ + i * b_i_ );
- * The algorithm is due to Robert L. Smith and can be found in D. Knuth,
- * The art of Computer Programming, Vol.2, p.195
- */
-#define Msdiv( b_r_, b_i_, a_r_, a_i_ ) \
- { \
- register float c_i_, c_r_, tmp1_, tmp2_; \
- if( Msabs( b_i_ ) < Msabs( b_r_ ) ) \
- { \
- tmp1_ = (b_i_) / (b_r_); \
- tmp2_ = (b_r_) + (b_i_) * tmp1_; \
- c_r_ = ( (a_r_) + (a_i_) * tmp1_ ) / tmp2_; \
- c_i_ = ( (a_i_) - (a_r_) * tmp1_ ) / tmp2_; \
- } \
- else \
- { \
- tmp1_ = (b_r_) / (b_i_); \
- tmp2_ = (b_i_) + (b_r_) * tmp1_; \
- c_r_ = ( (a_i_) + (a_r_) * tmp1_ ) / tmp2_; \
- c_i_ = ( -(a_r_) + (a_i_) * tmp1_ ) / tmp2_; \
- } \
- a_r_ = c_r_; \
- a_i_ = c_i_; \
- }
-
-#define Mdabs( a_ ) ( ( (a_) < ATL_dZERO ) ? -(a_) : (a_) )
-
-#define Mdzero( a_r_, a_i_ ) \
- ( ( (a_r_) == ATL_dZERO ) && ( (a_i_) == ATL_dZERO ) )
-
-#define Mdone( a_r_, a_i_ ) \
- ( ( (a_r_) == ATL_dONE ) && ( (a_i_) == ATL_dZERO ) )
-
-#define Mdscl( a_r_, a_i_, c_r_, c_i_ ) \
- { \
- register double tmp_r_, tmp_i_; \
- tmp_r_ = (a_r_) * c_r_ - (a_i_) * c_i_; \
- tmp_i_ = (a_r_) * c_i_ + (a_i_) * c_r_; \
- c_r_ = tmp_r_; \
- c_i_ = tmp_i_; \
- }
-/*
- * Mddiv performs complex division in real arithmetic
- * a_r_ + i * a_i_ = ( a_r_ + i * a_i_ ) / ( b_r_ + i * b_i_ );
- * The algorithm is due to Robert L. Smith and can be found in D. Knuth,
- * The art of Computer Programming, Vol.2, p.195
- */
-#define Mddiv( b_r_, b_i_, a_r_, a_i_ ) \
- { \
- register double c_i_, c_r_, tmp1_, tmp2_; \
- if( Mdabs( b_i_ ) < Mdabs( b_r_ ) ) \
- { \
- tmp1_ = (b_i_) / (b_r_); \
- tmp2_ = (b_r_) + (b_i_) * tmp1_; \
- c_r_ = ( (a_r_) + (a_i_) * tmp1_ ) / tmp2_; \
- c_i_ = ( (a_i_) - (a_r_) * tmp1_ ) / tmp2_; \
- } \
- else \
- { \
- tmp1_ = (b_r_) / (b_i_); \
- tmp2_ = (b_i_) + (b_r_) * tmp1_; \
- c_r_ = ( (a_i_) + (a_r_) * tmp1_ ) / tmp2_; \
- c_i_ = ( -(a_r_) + (a_i_) * tmp1_ ) / tmp2_; \
- } \
- a_r_ = c_r_; \
- a_i_ = c_i_; \
- }
-
-#define Mmin( a_, b_ ) ( ( (a_) < (b_) ) ? (a_) : (b_) )
-
-#define Mmax( a_, b_ ) ( ( (a_) > (b_) ) ? (a_) : (b_) )
-
-#define Mmul( a_r_, a_i_, b_r_, b_i_, c_r_, c_i_ ) \
- { \
- c_r_ = (a_r_) * (b_r_) - (a_i_) * (b_i_); \
- c_i_ = (a_r_) * (b_i_) + (a_i_) * (b_r_); \
- }
-
-#define Mmla( a_r_, a_i_, b_r_, b_i_, c_r_, c_i_ ) \
- { \
- c_r_ += (a_r_) * (b_r_) - (a_i_) * (b_i_); \
- c_i_ += (a_r_) * (b_i_) + (a_i_) * (b_r_); \
- }
-
-#define Mmls( a_r_, a_i_, b_r_, b_i_, c_r_, c_i_ ) \
- { \
- c_r_ -= (a_r_) * (b_r_) - (a_i_) * (b_i_); \
- c_i_ -= (a_r_) * (b_i_) + (a_i_) * (b_r_); \
- }
-
-#define Mset( a_r_, a_i_, b_r_, b_i_ ) \
- { \
- b_r_ = (a_r_); \
- b_i_ = (a_i_); \
- }
-
-#define Mselscal( al_, a_ ) \
- { \
- if( (al_) == ATL_sZERO ) { (a_) = ATL_sZERO; } \
- else if( (al_) != ATL_sONE ) { (a_) *= (al_); } \
- }
-
-#define Mdelscal( al_, a_ ) \
- { \
- if( (al_) == ATL_dZERO ) { (a_) = ATL_dZERO; } \
- else if( (al_) != ATL_dONE ) { (a_) *= (al_); } \
- }
-
-#define Mcelscal( al_r_, al_i_, a_r_, a_i_ ) \
- { \
- if( Mszero( (al_r_), (al_i_) ) ) \
- { (a_r_) = (a_i_) = ATL_sZERO; } \
- else if( ! Msone( (al_r_), (al_i_) ) ) \
- { Msscl( (al_r_), (al_i_), (a_r_), (a_i_) ); } \
- }
-
-#define Mzelscal( al_r_, al_i_, a_r_, a_i_ ) \
- { \
- if( Mdzero( (al_r_), (al_i_) ) ) \
- { (a_r_) = (a_i_) = ATL_dZERO; } \
- else if( ! Mdone( (al_r_), (al_i_) ) ) \
- { Mdscl( (al_r_), (al_i_), (a_r_), (a_i_) ); } \
- }
-
-#define Msvscal( n_, al_, x_, incx_ ) \
- { \
- int i_, ix_; \
- if( (al_) == ATL_sZERO ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \
- { (x_)[ix_] = ATL_sZERO; } \
- } \
- else if( (al_) != ATL_sONE ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \
- { (x_)[ix_] *= (al_); } \
- } \
- }
-
-#define Mdvscal( n_, al_, x_, incx_ ) \
- { \
- int i_, ix_; \
- if( (al_) == ATL_dZERO ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \
- { (x_)[ix_] = ATL_dZERO; } \
- } \
- else if( (al_) != ATL_dONE ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx_) ) \
- { (x_)[ix_] *= (al_); } \
- } \
- }
-
-#define Mcvscal( n_, al_, x_, incx_ ) \
- { \
- int i_, ix_, incx2_ = ( 2 * (incx_) ); \
- if( Mszero( (al_)[0], (al_)[1] ) ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \
- { (x_)[ix_] = (x_)[ix_+1] = ATL_sZERO; } \
- } \
- else if( ! Msone( (al_)[0], (al_)[1] ) ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \
- { Msscl( (al_)[0], (al_)[1], (x_)[ix_], (x_)[ix_+1] ); } \
- } \
- }
-
-#define Mzvscal( n_, al_, x_, incx_ ) \
- { \
- int i_, ix_, incx2_ = ( 2 * (incx_) ); \
- if( Mdzero( (al_)[0], (al_)[1] ) ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \
- { (x_)[ix_] = (x_)[ix_+1] = ATL_dZERO; } \
- } \
- else if( ! Mdone( (al_)[0], (al_)[1] ) ) \
- { \
- for( i_ = 0, ix_ = 0; i_ < (n_); i_++, ix_ += (incx2_) ) \
- { Mdscl( (al_)[0], (al_)[1], (x_)[ix_], (x_)[ix_+1] ); } \
- } \
- }
-
-#define Msgescal( m_, n_, al_, a_, lda_ ) \
- { \
- int i_, iaij_, j_, jaj_; \
- if( (al_) == ATL_sZERO ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \
- { (a_)[iaij_] = ATL_sZERO; } \
- } \
- } \
- else if( (al_) != ATL_sONE ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \
- { (a_)[iaij_] *= (al_); } \
- } \
- } \
- }
-
-#define Mdgescal( m_, n_, al_, a_, lda_ ) \
- { \
- int i_, iaij_, j_, jaj_; \
- if( (al_) == ATL_dZERO ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \
- { (a_)[iaij_] = ATL_dZERO; } \
- } \
- } \
- else if( (al_) != ATL_dONE ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += (lda_) ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 1 ) \
- { (a_)[iaij_] *= (al_); } \
- } \
- } \
- }
-
-#define Mcgescal( m_, n_, al_, a_, lda_ ) \
- { \
- int i_, iaij_, j_, jaj_, lda2_ = ( (lda_) << 1 ); \
- if( Mszero( (al_)[0], (al_)[1] ) ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \
- { (a_)[iaij_] = (a_)[iaij_+1] = ATL_sZERO; } \
- } \
- } \
- else if( ! Msone( (al_)[0], (al_)[1] ) ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \
- { \
- Msscl( (al_)[0], (al_)[1], (a_)[iaij_], (a_)[iaij_+1] ); \
- } \
- } \
- } \
- }
-
-#define Mzgescal( m_, n_, al_, a_, lda_ ) \
- { \
- int i_, iaij_, j_, jaj_, lda2_ = ( (lda_) << 1 ); \
- if( Mdzero( (al_)[0], (al_)[1] ) ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \
- { (a_)[iaij_] = (a_)[iaij_+1] = ATL_dZERO; } \
- } \
- } \
- else if( ! Mdone( (al_)[0], (al_)[1] ) ) \
- { \
- for( j_ = 0, jaj_ = 0; j_ < (n_); j_++, jaj_ += lda2_ ) \
- { \
- for( i_ = 0, iaij_ = jaj_; i_ < (m_); i_++, iaij_ += 2 ) \
- { \
- Mdscl( (al_)[0], (al_)[1], (a_)[iaij_], (a_)[iaij_+1] ); \
- } \
- } \
- } \
- }
-
-#endif
-/*
- * End of atlas_refmisc.h
- */