/*******************************************************************************
 * Copyright (c) 2018, College of William & Mary
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * 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 distribution.
 *     * Neither the name of the College of William & Mary nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * 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 COLLEGE OF WILLIAM & MARY BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * PRIMME: https://github.com/primme/primme
 * Contact: Andreas Stathopoulos, a n d r e a s _at_ c s . w m . e d u
 *******************************************************************************
 *   NOTE: THIS FILE IS AUTOMATICALLY GENERATED. PLEASE DON'T MODIFY
 ******************************************************************************/


#ifndef blaslapack_H
#define blaslapack_H
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Sprimme)
#  define Num_check_pointer_Sprimme CONCAT(Num_check_pointer_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Rprimme)
#  define Num_check_pointer_Rprimme CONCAT(Num_check_pointer_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SHprimme)
#  define Num_check_pointer_SHprimme CONCAT(Num_check_pointer_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RHprimme)
#  define Num_check_pointer_RHprimme CONCAT(Num_check_pointer_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SXprimme)
#  define Num_check_pointer_SXprimme CONCAT(Num_check_pointer_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RXprimme)
#  define Num_check_pointer_RXprimme CONCAT(Num_check_pointer_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Shprimme)
#  define Num_check_pointer_Shprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Rhprimme)
#  define Num_check_pointer_Rhprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Ssprimme)
#  define Num_check_pointer_Ssprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Rsprimme)
#  define Num_check_pointer_Rsprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Sdprimme)
#  define Num_check_pointer_Sdprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Rdprimme)
#  define Num_check_pointer_Rdprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Sqprimme)
#  define Num_check_pointer_Sqprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_Rqprimme)
#  define Num_check_pointer_Rqprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SXhprimme)
#  define Num_check_pointer_SXhprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RXhprimme)
#  define Num_check_pointer_RXhprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SXsprimme)
#  define Num_check_pointer_SXsprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RXsprimme)
#  define Num_check_pointer_RXsprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SXdprimme)
#  define Num_check_pointer_SXdprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RXdprimme)
#  define Num_check_pointer_RXdprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SXqprimme)
#  define Num_check_pointer_SXqprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RXqprimme)
#  define Num_check_pointer_RXqprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SHhprimme)
#  define Num_check_pointer_SHhprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RHhprimme)
#  define Num_check_pointer_RHhprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SHsprimme)
#  define Num_check_pointer_SHsprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RHsprimme)
#  define Num_check_pointer_RHsprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SHdprimme)
#  define Num_check_pointer_SHdprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RHdprimme)
#  define Num_check_pointer_RHdprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_SHqprimme)
#  define Num_check_pointer_SHqprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_check_pointer_RHqprimme)
#  define Num_check_pointer_RHqprimme CONCAT(Num_check_pointer_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_check_pointer_dprimme(void *x);
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Sprimme)
#  define Num_malloc_Sprimme CONCAT(Num_malloc_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Rprimme)
#  define Num_malloc_Rprimme CONCAT(Num_malloc_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SHprimme)
#  define Num_malloc_SHprimme CONCAT(Num_malloc_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RHprimme)
#  define Num_malloc_RHprimme CONCAT(Num_malloc_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SXprimme)
#  define Num_malloc_SXprimme CONCAT(Num_malloc_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RXprimme)
#  define Num_malloc_RXprimme CONCAT(Num_malloc_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Shprimme)
#  define Num_malloc_Shprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Rhprimme)
#  define Num_malloc_Rhprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Ssprimme)
#  define Num_malloc_Ssprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Rsprimme)
#  define Num_malloc_Rsprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Sdprimme)
#  define Num_malloc_Sdprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Rdprimme)
#  define Num_malloc_Rdprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Sqprimme)
#  define Num_malloc_Sqprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_Rqprimme)
#  define Num_malloc_Rqprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SXhprimme)
#  define Num_malloc_SXhprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RXhprimme)
#  define Num_malloc_RXhprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SXsprimme)
#  define Num_malloc_SXsprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RXsprimme)
#  define Num_malloc_RXsprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SXdprimme)
#  define Num_malloc_SXdprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RXdprimme)
#  define Num_malloc_RXdprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SXqprimme)
#  define Num_malloc_SXqprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RXqprimme)
#  define Num_malloc_RXqprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SHhprimme)
#  define Num_malloc_SHhprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RHhprimme)
#  define Num_malloc_RHhprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SHsprimme)
#  define Num_malloc_SHsprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RHsprimme)
#  define Num_malloc_RHsprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SHdprimme)
#  define Num_malloc_SHdprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RHdprimme)
#  define Num_malloc_RHdprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_SHqprimme)
#  define Num_malloc_SHqprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_RHqprimme)
#  define Num_malloc_RHqprimme CONCAT(Num_malloc_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_malloc_dprimme(PRIMME_INT n, dummy_type_dprimme **x, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Sprimme)
#  define Num_free_Sprimme CONCAT(Num_free_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Rprimme)
#  define Num_free_Rprimme CONCAT(Num_free_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SHprimme)
#  define Num_free_SHprimme CONCAT(Num_free_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RHprimme)
#  define Num_free_RHprimme CONCAT(Num_free_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SXprimme)
#  define Num_free_SXprimme CONCAT(Num_free_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RXprimme)
#  define Num_free_RXprimme CONCAT(Num_free_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Shprimme)
#  define Num_free_Shprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Rhprimme)
#  define Num_free_Rhprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Ssprimme)
#  define Num_free_Ssprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Rsprimme)
#  define Num_free_Rsprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Sdprimme)
#  define Num_free_Sdprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Rdprimme)
#  define Num_free_Rdprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Sqprimme)
#  define Num_free_Sqprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_Rqprimme)
#  define Num_free_Rqprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SXhprimme)
#  define Num_free_SXhprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RXhprimme)
#  define Num_free_RXhprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SXsprimme)
#  define Num_free_SXsprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RXsprimme)
#  define Num_free_RXsprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SXdprimme)
#  define Num_free_SXdprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RXdprimme)
#  define Num_free_RXdprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SXqprimme)
#  define Num_free_SXqprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RXqprimme)
#  define Num_free_RXqprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SHhprimme)
#  define Num_free_SHhprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RHhprimme)
#  define Num_free_RHhprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SHsprimme)
#  define Num_free_SHsprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RHsprimme)
#  define Num_free_RHsprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SHdprimme)
#  define Num_free_SHdprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RHdprimme)
#  define Num_free_RHdprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_SHqprimme)
#  define Num_free_SHqprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_RHqprimme)
#  define Num_free_RHqprimme CONCAT(Num_free_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_free_dprimme(dummy_type_dprimme *x, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSprimme)
#  define Num_malloc_iprimmeSprimme CONCAT(Num_malloc_iprimme,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRprimme)
#  define Num_malloc_iprimmeRprimme CONCAT(Num_malloc_iprimme,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSHprimme)
#  define Num_malloc_iprimmeSHprimme CONCAT(Num_malloc_iprimme,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRHprimme)
#  define Num_malloc_iprimmeRHprimme CONCAT(Num_malloc_iprimme,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSXprimme)
#  define Num_malloc_iprimmeSXprimme CONCAT(Num_malloc_iprimme,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRXprimme)
#  define Num_malloc_iprimmeRXprimme CONCAT(Num_malloc_iprimme,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeShprimme)
#  define Num_malloc_iprimmeShprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRhprimme)
#  define Num_malloc_iprimmeRhprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSsprimme)
#  define Num_malloc_iprimmeSsprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRsprimme)
#  define Num_malloc_iprimmeRsprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSdprimme)
#  define Num_malloc_iprimmeSdprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRdprimme)
#  define Num_malloc_iprimmeRdprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSqprimme)
#  define Num_malloc_iprimmeSqprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRqprimme)
#  define Num_malloc_iprimmeRqprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSXhprimme)
#  define Num_malloc_iprimmeSXhprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRXhprimme)
#  define Num_malloc_iprimmeRXhprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSXsprimme)
#  define Num_malloc_iprimmeSXsprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRXsprimme)
#  define Num_malloc_iprimmeRXsprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSXdprimme)
#  define Num_malloc_iprimmeSXdprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRXdprimme)
#  define Num_malloc_iprimmeRXdprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSXqprimme)
#  define Num_malloc_iprimmeSXqprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRXqprimme)
#  define Num_malloc_iprimmeRXqprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSHhprimme)
#  define Num_malloc_iprimmeSHhprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRHhprimme)
#  define Num_malloc_iprimmeRHhprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSHsprimme)
#  define Num_malloc_iprimmeSHsprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRHsprimme)
#  define Num_malloc_iprimmeRHsprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSHdprimme)
#  define Num_malloc_iprimmeSHdprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRHdprimme)
#  define Num_malloc_iprimmeRHdprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeSHqprimme)
#  define Num_malloc_iprimmeSHqprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_malloc_iprimmeRHqprimme)
#  define Num_malloc_iprimmeRHqprimme CONCAT(Num_malloc_iprimme,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_malloc_iprimme(PRIMME_INT n, int **x, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSprimme)
#  define Num_free_iprimmeSprimme CONCAT(Num_free_iprimme,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRprimme)
#  define Num_free_iprimmeRprimme CONCAT(Num_free_iprimme,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSHprimme)
#  define Num_free_iprimmeSHprimme CONCAT(Num_free_iprimme,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRHprimme)
#  define Num_free_iprimmeRHprimme CONCAT(Num_free_iprimme,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSXprimme)
#  define Num_free_iprimmeSXprimme CONCAT(Num_free_iprimme,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRXprimme)
#  define Num_free_iprimmeRXprimme CONCAT(Num_free_iprimme,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeShprimme)
#  define Num_free_iprimmeShprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRhprimme)
#  define Num_free_iprimmeRhprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSsprimme)
#  define Num_free_iprimmeSsprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRsprimme)
#  define Num_free_iprimmeRsprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSdprimme)
#  define Num_free_iprimmeSdprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRdprimme)
#  define Num_free_iprimmeRdprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSqprimme)
#  define Num_free_iprimmeSqprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRqprimme)
#  define Num_free_iprimmeRqprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSXhprimme)
#  define Num_free_iprimmeSXhprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRXhprimme)
#  define Num_free_iprimmeRXhprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSXsprimme)
#  define Num_free_iprimmeSXsprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRXsprimme)
#  define Num_free_iprimmeRXsprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSXdprimme)
#  define Num_free_iprimmeSXdprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRXdprimme)
#  define Num_free_iprimmeRXdprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSXqprimme)
#  define Num_free_iprimmeSXqprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRXqprimme)
#  define Num_free_iprimmeRXqprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSHhprimme)
#  define Num_free_iprimmeSHhprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRHhprimme)
#  define Num_free_iprimmeRHhprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSHsprimme)
#  define Num_free_iprimmeSHsprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRHsprimme)
#  define Num_free_iprimmeRHsprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSHdprimme)
#  define Num_free_iprimmeSHdprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRHdprimme)
#  define Num_free_iprimmeRHdprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeSHqprimme)
#  define Num_free_iprimmeSHqprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_free_iprimmeRHqprimme)
#  define Num_free_iprimmeRHqprimme CONCAT(Num_free_iprimme,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_free_iprimme(int *x, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Sprimme)
#  define Num_copy_Sprimme CONCAT(Num_copy_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Rprimme)
#  define Num_copy_Rprimme CONCAT(Num_copy_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SHprimme)
#  define Num_copy_SHprimme CONCAT(Num_copy_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RHprimme)
#  define Num_copy_RHprimme CONCAT(Num_copy_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SXprimme)
#  define Num_copy_SXprimme CONCAT(Num_copy_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RXprimme)
#  define Num_copy_RXprimme CONCAT(Num_copy_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Shprimme)
#  define Num_copy_Shprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Rhprimme)
#  define Num_copy_Rhprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Ssprimme)
#  define Num_copy_Ssprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Rsprimme)
#  define Num_copy_Rsprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Sdprimme)
#  define Num_copy_Sdprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Rdprimme)
#  define Num_copy_Rdprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Sqprimme)
#  define Num_copy_Sqprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Rqprimme)
#  define Num_copy_Rqprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SXhprimme)
#  define Num_copy_SXhprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RXhprimme)
#  define Num_copy_RXhprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SXsprimme)
#  define Num_copy_SXsprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RXsprimme)
#  define Num_copy_RXsprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SXdprimme)
#  define Num_copy_SXdprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RXdprimme)
#  define Num_copy_RXdprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SXqprimme)
#  define Num_copy_SXqprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RXqprimme)
#  define Num_copy_RXqprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SHhprimme)
#  define Num_copy_SHhprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RHhprimme)
#  define Num_copy_RHhprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SHsprimme)
#  define Num_copy_SHsprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RHsprimme)
#  define Num_copy_RHsprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SHdprimme)
#  define Num_copy_SHdprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RHdprimme)
#  define Num_copy_RHdprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_SHqprimme)
#  define Num_copy_SHqprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_RHqprimme)
#  define Num_copy_RHqprimme CONCAT(Num_copy_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_copy_dprimme(PRIMME_INT n, dummy_type_dprimme *x, PRIMME_INT incx, dummy_type_dprimme *y,
      PRIMME_INT incy, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Sprimme)
#  define Num_copy_Tmatrix_Sprimme CONCAT(Num_copy_Tmatrix_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Rprimme)
#  define Num_copy_Tmatrix_Rprimme CONCAT(Num_copy_Tmatrix_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SHprimme)
#  define Num_copy_Tmatrix_SHprimme CONCAT(Num_copy_Tmatrix_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RHprimme)
#  define Num_copy_Tmatrix_RHprimme CONCAT(Num_copy_Tmatrix_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SXprimme)
#  define Num_copy_Tmatrix_SXprimme CONCAT(Num_copy_Tmatrix_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RXprimme)
#  define Num_copy_Tmatrix_RXprimme CONCAT(Num_copy_Tmatrix_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Shprimme)
#  define Num_copy_Tmatrix_Shprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Rhprimme)
#  define Num_copy_Tmatrix_Rhprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Ssprimme)
#  define Num_copy_Tmatrix_Ssprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Rsprimme)
#  define Num_copy_Tmatrix_Rsprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Sdprimme)
#  define Num_copy_Tmatrix_Sdprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Rdprimme)
#  define Num_copy_Tmatrix_Rdprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Sqprimme)
#  define Num_copy_Tmatrix_Sqprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_Rqprimme)
#  define Num_copy_Tmatrix_Rqprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SXhprimme)
#  define Num_copy_Tmatrix_SXhprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RXhprimme)
#  define Num_copy_Tmatrix_RXhprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SXsprimme)
#  define Num_copy_Tmatrix_SXsprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RXsprimme)
#  define Num_copy_Tmatrix_RXsprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SXdprimme)
#  define Num_copy_Tmatrix_SXdprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RXdprimme)
#  define Num_copy_Tmatrix_RXdprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SXqprimme)
#  define Num_copy_Tmatrix_SXqprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RXqprimme)
#  define Num_copy_Tmatrix_RXqprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SHhprimme)
#  define Num_copy_Tmatrix_SHhprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RHhprimme)
#  define Num_copy_Tmatrix_RHhprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SHsprimme)
#  define Num_copy_Tmatrix_SHsprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RHsprimme)
#  define Num_copy_Tmatrix_RHsprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SHdprimme)
#  define Num_copy_Tmatrix_SHdprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RHdprimme)
#  define Num_copy_Tmatrix_RHdprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_SHqprimme)
#  define Num_copy_Tmatrix_SHqprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_RHqprimme)
#  define Num_copy_Tmatrix_RHqprimme CONCAT(Num_copy_Tmatrix_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_copy_Tmatrix_dprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, dummy_type_dprimme *y, PRIMME_INT ldy,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSprimme)
#  define Num_copy_Tmatrix_iprimmeSprimme CONCAT(Num_copy_Tmatrix_iprimme,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRprimme)
#  define Num_copy_Tmatrix_iprimmeRprimme CONCAT(Num_copy_Tmatrix_iprimme,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSHprimme)
#  define Num_copy_Tmatrix_iprimmeSHprimme CONCAT(Num_copy_Tmatrix_iprimme,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRHprimme)
#  define Num_copy_Tmatrix_iprimmeRHprimme CONCAT(Num_copy_Tmatrix_iprimme,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSXprimme)
#  define Num_copy_Tmatrix_iprimmeSXprimme CONCAT(Num_copy_Tmatrix_iprimme,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRXprimme)
#  define Num_copy_Tmatrix_iprimmeRXprimme CONCAT(Num_copy_Tmatrix_iprimme,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeShprimme)
#  define Num_copy_Tmatrix_iprimmeShprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRhprimme)
#  define Num_copy_Tmatrix_iprimmeRhprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSsprimme)
#  define Num_copy_Tmatrix_iprimmeSsprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRsprimme)
#  define Num_copy_Tmatrix_iprimmeRsprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSdprimme)
#  define Num_copy_Tmatrix_iprimmeSdprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRdprimme)
#  define Num_copy_Tmatrix_iprimmeRdprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSqprimme)
#  define Num_copy_Tmatrix_iprimmeSqprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRqprimme)
#  define Num_copy_Tmatrix_iprimmeRqprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSXhprimme)
#  define Num_copy_Tmatrix_iprimmeSXhprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRXhprimme)
#  define Num_copy_Tmatrix_iprimmeRXhprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSXsprimme)
#  define Num_copy_Tmatrix_iprimmeSXsprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRXsprimme)
#  define Num_copy_Tmatrix_iprimmeRXsprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSXdprimme)
#  define Num_copy_Tmatrix_iprimmeSXdprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRXdprimme)
#  define Num_copy_Tmatrix_iprimmeRXdprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSXqprimme)
#  define Num_copy_Tmatrix_iprimmeSXqprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRXqprimme)
#  define Num_copy_Tmatrix_iprimmeRXqprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSHhprimme)
#  define Num_copy_Tmatrix_iprimmeSHhprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRHhprimme)
#  define Num_copy_Tmatrix_iprimmeRHhprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSHsprimme)
#  define Num_copy_Tmatrix_iprimmeSHsprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRHsprimme)
#  define Num_copy_Tmatrix_iprimmeRHsprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSHdprimme)
#  define Num_copy_Tmatrix_iprimmeSHdprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRHdprimme)
#  define Num_copy_Tmatrix_iprimmeRHdprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeSHqprimme)
#  define Num_copy_Tmatrix_iprimmeSHqprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_Tmatrix_iprimmeRHqprimme)
#  define Num_copy_Tmatrix_iprimmeRHqprimme CONCAT(Num_copy_Tmatrix_iprimme,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_copy_Tmatrix_iprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, int *y, PRIMME_INT ldy,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Sprimme)
#  define Num_copy_matrix_Sprimme CONCAT(Num_copy_matrix_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Rprimme)
#  define Num_copy_matrix_Rprimme CONCAT(Num_copy_matrix_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SHprimme)
#  define Num_copy_matrix_SHprimme CONCAT(Num_copy_matrix_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RHprimme)
#  define Num_copy_matrix_RHprimme CONCAT(Num_copy_matrix_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SXprimme)
#  define Num_copy_matrix_SXprimme CONCAT(Num_copy_matrix_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RXprimme)
#  define Num_copy_matrix_RXprimme CONCAT(Num_copy_matrix_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Shprimme)
#  define Num_copy_matrix_Shprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Rhprimme)
#  define Num_copy_matrix_Rhprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Ssprimme)
#  define Num_copy_matrix_Ssprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Rsprimme)
#  define Num_copy_matrix_Rsprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Sdprimme)
#  define Num_copy_matrix_Sdprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Rdprimme)
#  define Num_copy_matrix_Rdprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Sqprimme)
#  define Num_copy_matrix_Sqprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_Rqprimme)
#  define Num_copy_matrix_Rqprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SXhprimme)
#  define Num_copy_matrix_SXhprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RXhprimme)
#  define Num_copy_matrix_RXhprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SXsprimme)
#  define Num_copy_matrix_SXsprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RXsprimme)
#  define Num_copy_matrix_RXsprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SXdprimme)
#  define Num_copy_matrix_SXdprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RXdprimme)
#  define Num_copy_matrix_RXdprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SXqprimme)
#  define Num_copy_matrix_SXqprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RXqprimme)
#  define Num_copy_matrix_RXqprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SHhprimme)
#  define Num_copy_matrix_SHhprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RHhprimme)
#  define Num_copy_matrix_RHhprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SHsprimme)
#  define Num_copy_matrix_SHsprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RHsprimme)
#  define Num_copy_matrix_RHsprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SHdprimme)
#  define Num_copy_matrix_SHdprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RHdprimme)
#  define Num_copy_matrix_RHdprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_SHqprimme)
#  define Num_copy_matrix_SHqprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_copy_matrix_RHqprimme)
#  define Num_copy_matrix_RHqprimme CONCAT(Num_copy_matrix_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_copy_matrix_dprimme(dummy_type_dprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, dummy_type_dprimme *y, PRIMME_INT ldy,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Sprimme)
#  define Num_zero_matrix_Sprimme CONCAT(Num_zero_matrix_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Rprimme)
#  define Num_zero_matrix_Rprimme CONCAT(Num_zero_matrix_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SHprimme)
#  define Num_zero_matrix_SHprimme CONCAT(Num_zero_matrix_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RHprimme)
#  define Num_zero_matrix_RHprimme CONCAT(Num_zero_matrix_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SXprimme)
#  define Num_zero_matrix_SXprimme CONCAT(Num_zero_matrix_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RXprimme)
#  define Num_zero_matrix_RXprimme CONCAT(Num_zero_matrix_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Shprimme)
#  define Num_zero_matrix_Shprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Rhprimme)
#  define Num_zero_matrix_Rhprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Ssprimme)
#  define Num_zero_matrix_Ssprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Rsprimme)
#  define Num_zero_matrix_Rsprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Sdprimme)
#  define Num_zero_matrix_Sdprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Rdprimme)
#  define Num_zero_matrix_Rdprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Sqprimme)
#  define Num_zero_matrix_Sqprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_Rqprimme)
#  define Num_zero_matrix_Rqprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SXhprimme)
#  define Num_zero_matrix_SXhprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RXhprimme)
#  define Num_zero_matrix_RXhprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SXsprimme)
#  define Num_zero_matrix_SXsprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RXsprimme)
#  define Num_zero_matrix_RXsprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SXdprimme)
#  define Num_zero_matrix_SXdprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RXdprimme)
#  define Num_zero_matrix_RXdprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SXqprimme)
#  define Num_zero_matrix_SXqprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RXqprimme)
#  define Num_zero_matrix_RXqprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SHhprimme)
#  define Num_zero_matrix_SHhprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RHhprimme)
#  define Num_zero_matrix_RHhprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SHsprimme)
#  define Num_zero_matrix_SHsprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RHsprimme)
#  define Num_zero_matrix_RHsprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SHdprimme)
#  define Num_zero_matrix_SHdprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RHdprimme)
#  define Num_zero_matrix_RHdprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_SHqprimme)
#  define Num_zero_matrix_SHqprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_zero_matrix_RHqprimme)
#  define Num_zero_matrix_RHqprimme CONCAT(Num_zero_matrix_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_zero_matrix_dprimme(dummy_type_dprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Sprimme)
#  define Num_gemm_Sprimme CONCAT(Num_gemm_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Rprimme)
#  define Num_gemm_Rprimme CONCAT(Num_gemm_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SHprimme)
#  define Num_gemm_SHprimme CONCAT(Num_gemm_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RHprimme)
#  define Num_gemm_RHprimme CONCAT(Num_gemm_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SXprimme)
#  define Num_gemm_SXprimme CONCAT(Num_gemm_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RXprimme)
#  define Num_gemm_RXprimme CONCAT(Num_gemm_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Shprimme)
#  define Num_gemm_Shprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Rhprimme)
#  define Num_gemm_Rhprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Ssprimme)
#  define Num_gemm_Ssprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Rsprimme)
#  define Num_gemm_Rsprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Sdprimme)
#  define Num_gemm_Sdprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Rdprimme)
#  define Num_gemm_Rdprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Sqprimme)
#  define Num_gemm_Sqprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_Rqprimme)
#  define Num_gemm_Rqprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SXhprimme)
#  define Num_gemm_SXhprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RXhprimme)
#  define Num_gemm_RXhprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SXsprimme)
#  define Num_gemm_SXsprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RXsprimme)
#  define Num_gemm_RXsprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SXdprimme)
#  define Num_gemm_SXdprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RXdprimme)
#  define Num_gemm_RXdprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SXqprimme)
#  define Num_gemm_SXqprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RXqprimme)
#  define Num_gemm_RXqprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SHhprimme)
#  define Num_gemm_SHhprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RHhprimme)
#  define Num_gemm_RHhprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SHsprimme)
#  define Num_gemm_SHsprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RHsprimme)
#  define Num_gemm_RHsprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SHdprimme)
#  define Num_gemm_SHdprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RHdprimme)
#  define Num_gemm_RHdprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_SHqprimme)
#  define Num_gemm_SHqprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_RHqprimme)
#  define Num_gemm_RHqprimme CONCAT(Num_gemm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gemm_dprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda,
      dummy_type_dprimme *b, PRIMME_INT ldb, dummy_type_dprimme beta, dummy_type_dprimme *c, PRIMME_INT ldc,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Sprimme)
#  define Num_gemm_dhd_Sprimme CONCAT(Num_gemm_dhd_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Rprimme)
#  define Num_gemm_dhd_Rprimme CONCAT(Num_gemm_dhd_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SHprimme)
#  define Num_gemm_dhd_SHprimme CONCAT(Num_gemm_dhd_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RHprimme)
#  define Num_gemm_dhd_RHprimme CONCAT(Num_gemm_dhd_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SXprimme)
#  define Num_gemm_dhd_SXprimme CONCAT(Num_gemm_dhd_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RXprimme)
#  define Num_gemm_dhd_RXprimme CONCAT(Num_gemm_dhd_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Shprimme)
#  define Num_gemm_dhd_Shprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Rhprimme)
#  define Num_gemm_dhd_Rhprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Ssprimme)
#  define Num_gemm_dhd_Ssprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Rsprimme)
#  define Num_gemm_dhd_Rsprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Sdprimme)
#  define Num_gemm_dhd_Sdprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Rdprimme)
#  define Num_gemm_dhd_Rdprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Sqprimme)
#  define Num_gemm_dhd_Sqprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_Rqprimme)
#  define Num_gemm_dhd_Rqprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SXhprimme)
#  define Num_gemm_dhd_SXhprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RXhprimme)
#  define Num_gemm_dhd_RXhprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SXsprimme)
#  define Num_gemm_dhd_SXsprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RXsprimme)
#  define Num_gemm_dhd_RXsprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SXdprimme)
#  define Num_gemm_dhd_SXdprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RXdprimme)
#  define Num_gemm_dhd_RXdprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SXqprimme)
#  define Num_gemm_dhd_SXqprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RXqprimme)
#  define Num_gemm_dhd_RXqprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SHhprimme)
#  define Num_gemm_dhd_SHhprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RHhprimme)
#  define Num_gemm_dhd_RHhprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SHsprimme)
#  define Num_gemm_dhd_SHsprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RHsprimme)
#  define Num_gemm_dhd_RHsprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SHdprimme)
#  define Num_gemm_dhd_SHdprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RHdprimme)
#  define Num_gemm_dhd_RHdprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_SHqprimme)
#  define Num_gemm_dhd_SHqprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_dhd_RHqprimme)
#  define Num_gemm_dhd_RHqprimme CONCAT(Num_gemm_dhd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gemm_dhd_dprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda,
      dummy_type_dprimme *b, PRIMME_INT ldb, dummy_type_dprimme beta, dummy_type_dprimme *c, PRIMME_INT ldc,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Sprimme)
#  define Num_gemm_ddh_Sprimme CONCAT(Num_gemm_ddh_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Rprimme)
#  define Num_gemm_ddh_Rprimme CONCAT(Num_gemm_ddh_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SHprimme)
#  define Num_gemm_ddh_SHprimme CONCAT(Num_gemm_ddh_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RHprimme)
#  define Num_gemm_ddh_RHprimme CONCAT(Num_gemm_ddh_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SXprimme)
#  define Num_gemm_ddh_SXprimme CONCAT(Num_gemm_ddh_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RXprimme)
#  define Num_gemm_ddh_RXprimme CONCAT(Num_gemm_ddh_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Shprimme)
#  define Num_gemm_ddh_Shprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Rhprimme)
#  define Num_gemm_ddh_Rhprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Ssprimme)
#  define Num_gemm_ddh_Ssprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Rsprimme)
#  define Num_gemm_ddh_Rsprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Sdprimme)
#  define Num_gemm_ddh_Sdprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Rdprimme)
#  define Num_gemm_ddh_Rdprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Sqprimme)
#  define Num_gemm_ddh_Sqprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_Rqprimme)
#  define Num_gemm_ddh_Rqprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SXhprimme)
#  define Num_gemm_ddh_SXhprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RXhprimme)
#  define Num_gemm_ddh_RXhprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SXsprimme)
#  define Num_gemm_ddh_SXsprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RXsprimme)
#  define Num_gemm_ddh_RXsprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SXdprimme)
#  define Num_gemm_ddh_SXdprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RXdprimme)
#  define Num_gemm_ddh_RXdprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SXqprimme)
#  define Num_gemm_ddh_SXqprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RXqprimme)
#  define Num_gemm_ddh_RXqprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SHhprimme)
#  define Num_gemm_ddh_SHhprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RHhprimme)
#  define Num_gemm_ddh_RHhprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SHsprimme)
#  define Num_gemm_ddh_SHsprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RHsprimme)
#  define Num_gemm_ddh_RHsprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SHdprimme)
#  define Num_gemm_ddh_SHdprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RHdprimme)
#  define Num_gemm_ddh_RHdprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_SHqprimme)
#  define Num_gemm_ddh_SHqprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemm_ddh_RHqprimme)
#  define Num_gemm_ddh_RHqprimme CONCAT(Num_gemm_ddh_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gemm_ddh_dprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda,
      dummy_type_dprimme *b, PRIMME_INT ldb, dummy_type_dprimme beta, dummy_type_dprimme *c, PRIMME_INT ldc,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Sprimme)
#  define Num_hemm_Sprimme CONCAT(Num_hemm_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Rprimme)
#  define Num_hemm_Rprimme CONCAT(Num_hemm_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SHprimme)
#  define Num_hemm_SHprimme CONCAT(Num_hemm_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RHprimme)
#  define Num_hemm_RHprimme CONCAT(Num_hemm_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SXprimme)
#  define Num_hemm_SXprimme CONCAT(Num_hemm_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RXprimme)
#  define Num_hemm_RXprimme CONCAT(Num_hemm_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Shprimme)
#  define Num_hemm_Shprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Rhprimme)
#  define Num_hemm_Rhprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Ssprimme)
#  define Num_hemm_Ssprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Rsprimme)
#  define Num_hemm_Rsprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Sdprimme)
#  define Num_hemm_Sdprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Rdprimme)
#  define Num_hemm_Rdprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Sqprimme)
#  define Num_hemm_Sqprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_Rqprimme)
#  define Num_hemm_Rqprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SXhprimme)
#  define Num_hemm_SXhprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RXhprimme)
#  define Num_hemm_RXhprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SXsprimme)
#  define Num_hemm_SXsprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RXsprimme)
#  define Num_hemm_RXsprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SXdprimme)
#  define Num_hemm_SXdprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RXdprimme)
#  define Num_hemm_RXdprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SXqprimme)
#  define Num_hemm_SXqprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RXqprimme)
#  define Num_hemm_RXqprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SHhprimme)
#  define Num_hemm_SHhprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RHhprimme)
#  define Num_hemm_RHhprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SHsprimme)
#  define Num_hemm_SHsprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RHsprimme)
#  define Num_hemm_RHsprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SHdprimme)
#  define Num_hemm_SHdprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RHdprimme)
#  define Num_hemm_RHdprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_SHqprimme)
#  define Num_hemm_SHqprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hemm_RHqprimme)
#  define Num_hemm_RHqprimme CONCAT(Num_hemm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_hemm_dprimme(const char *side, const char *uplo, PRIMME_INT m,
      PRIMME_INT n, dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *b,
      PRIMME_INT ldb, dummy_type_dprimme beta, dummy_type_dprimme *c, PRIMME_INT ldc,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Sprimme)
#  define Num_trmm_Sprimme CONCAT(Num_trmm_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Rprimme)
#  define Num_trmm_Rprimme CONCAT(Num_trmm_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SHprimme)
#  define Num_trmm_SHprimme CONCAT(Num_trmm_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RHprimme)
#  define Num_trmm_RHprimme CONCAT(Num_trmm_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SXprimme)
#  define Num_trmm_SXprimme CONCAT(Num_trmm_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RXprimme)
#  define Num_trmm_RXprimme CONCAT(Num_trmm_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Shprimme)
#  define Num_trmm_Shprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Rhprimme)
#  define Num_trmm_Rhprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Ssprimme)
#  define Num_trmm_Ssprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Rsprimme)
#  define Num_trmm_Rsprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Sdprimme)
#  define Num_trmm_Sdprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Rdprimme)
#  define Num_trmm_Rdprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Sqprimme)
#  define Num_trmm_Sqprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_Rqprimme)
#  define Num_trmm_Rqprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SXhprimme)
#  define Num_trmm_SXhprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RXhprimme)
#  define Num_trmm_RXhprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SXsprimme)
#  define Num_trmm_SXsprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RXsprimme)
#  define Num_trmm_RXsprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SXdprimme)
#  define Num_trmm_SXdprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RXdprimme)
#  define Num_trmm_RXdprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SXqprimme)
#  define Num_trmm_SXqprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RXqprimme)
#  define Num_trmm_RXqprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SHhprimme)
#  define Num_trmm_SHhprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RHhprimme)
#  define Num_trmm_RHhprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SHsprimme)
#  define Num_trmm_SHsprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RHsprimme)
#  define Num_trmm_RHsprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SHdprimme)
#  define Num_trmm_SHdprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RHdprimme)
#  define Num_trmm_RHdprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_SHqprimme)
#  define Num_trmm_SHqprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trmm_RHqprimme)
#  define Num_trmm_RHqprimme CONCAT(Num_trmm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_trmm_dprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_dprimme alpha, dummy_type_dprimme *a,
      PRIMME_INT lda, dummy_type_dprimme *b, PRIMME_INT ldb, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Sprimme)
#  define Num_gemv_Sprimme CONCAT(Num_gemv_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Rprimme)
#  define Num_gemv_Rprimme CONCAT(Num_gemv_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SHprimme)
#  define Num_gemv_SHprimme CONCAT(Num_gemv_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RHprimme)
#  define Num_gemv_RHprimme CONCAT(Num_gemv_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SXprimme)
#  define Num_gemv_SXprimme CONCAT(Num_gemv_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RXprimme)
#  define Num_gemv_RXprimme CONCAT(Num_gemv_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Shprimme)
#  define Num_gemv_Shprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Rhprimme)
#  define Num_gemv_Rhprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Ssprimme)
#  define Num_gemv_Ssprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Rsprimme)
#  define Num_gemv_Rsprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Sdprimme)
#  define Num_gemv_Sdprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Rdprimme)
#  define Num_gemv_Rdprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Sqprimme)
#  define Num_gemv_Sqprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_Rqprimme)
#  define Num_gemv_Rqprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SXhprimme)
#  define Num_gemv_SXhprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RXhprimme)
#  define Num_gemv_RXhprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SXsprimme)
#  define Num_gemv_SXsprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RXsprimme)
#  define Num_gemv_RXsprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SXdprimme)
#  define Num_gemv_SXdprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RXdprimme)
#  define Num_gemv_RXdprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SXqprimme)
#  define Num_gemv_SXqprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RXqprimme)
#  define Num_gemv_RXqprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SHhprimme)
#  define Num_gemv_SHhprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RHhprimme)
#  define Num_gemv_RHhprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SHsprimme)
#  define Num_gemv_SHsprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RHsprimme)
#  define Num_gemv_RHsprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SHdprimme)
#  define Num_gemv_SHdprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RHdprimme)
#  define Num_gemv_RHdprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_SHqprimme)
#  define Num_gemv_SHqprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_RHqprimme)
#  define Num_gemv_RHqprimme CONCAT(Num_gemv_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gemv_dprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *x, PRIMME_INT incx,
      dummy_type_dprimme beta, dummy_type_dprimme *y, PRIMME_INT incy, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Sprimme)
#  define Num_gemv_ddh_Sprimme CONCAT(Num_gemv_ddh_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Rprimme)
#  define Num_gemv_ddh_Rprimme CONCAT(Num_gemv_ddh_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SHprimme)
#  define Num_gemv_ddh_SHprimme CONCAT(Num_gemv_ddh_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RHprimme)
#  define Num_gemv_ddh_RHprimme CONCAT(Num_gemv_ddh_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SXprimme)
#  define Num_gemv_ddh_SXprimme CONCAT(Num_gemv_ddh_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RXprimme)
#  define Num_gemv_ddh_RXprimme CONCAT(Num_gemv_ddh_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Shprimme)
#  define Num_gemv_ddh_Shprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Rhprimme)
#  define Num_gemv_ddh_Rhprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Ssprimme)
#  define Num_gemv_ddh_Ssprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Rsprimme)
#  define Num_gemv_ddh_Rsprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Sdprimme)
#  define Num_gemv_ddh_Sdprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Rdprimme)
#  define Num_gemv_ddh_Rdprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Sqprimme)
#  define Num_gemv_ddh_Sqprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_Rqprimme)
#  define Num_gemv_ddh_Rqprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SXhprimme)
#  define Num_gemv_ddh_SXhprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RXhprimme)
#  define Num_gemv_ddh_RXhprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SXsprimme)
#  define Num_gemv_ddh_SXsprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RXsprimme)
#  define Num_gemv_ddh_RXsprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SXdprimme)
#  define Num_gemv_ddh_SXdprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RXdprimme)
#  define Num_gemv_ddh_RXdprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SXqprimme)
#  define Num_gemv_ddh_SXqprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RXqprimme)
#  define Num_gemv_ddh_RXqprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SHhprimme)
#  define Num_gemv_ddh_SHhprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RHhprimme)
#  define Num_gemv_ddh_RHhprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SHsprimme)
#  define Num_gemv_ddh_SHsprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RHsprimme)
#  define Num_gemv_ddh_RHsprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SHdprimme)
#  define Num_gemv_ddh_SHdprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RHdprimme)
#  define Num_gemv_ddh_RHdprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_SHqprimme)
#  define Num_gemv_ddh_SHqprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_ddh_RHqprimme)
#  define Num_gemv_ddh_RHqprimme CONCAT(Num_gemv_ddh_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gemv_ddh_dprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *x, PRIMME_INT incx,
      dummy_type_dprimme beta, dummy_type_dprimme *y, PRIMME_INT incy, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Sprimme)
#  define Num_gemv_dhd_Sprimme CONCAT(Num_gemv_dhd_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Rprimme)
#  define Num_gemv_dhd_Rprimme CONCAT(Num_gemv_dhd_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SHprimme)
#  define Num_gemv_dhd_SHprimme CONCAT(Num_gemv_dhd_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RHprimme)
#  define Num_gemv_dhd_RHprimme CONCAT(Num_gemv_dhd_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SXprimme)
#  define Num_gemv_dhd_SXprimme CONCAT(Num_gemv_dhd_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RXprimme)
#  define Num_gemv_dhd_RXprimme CONCAT(Num_gemv_dhd_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Shprimme)
#  define Num_gemv_dhd_Shprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Rhprimme)
#  define Num_gemv_dhd_Rhprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Ssprimme)
#  define Num_gemv_dhd_Ssprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Rsprimme)
#  define Num_gemv_dhd_Rsprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Sdprimme)
#  define Num_gemv_dhd_Sdprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Rdprimme)
#  define Num_gemv_dhd_Rdprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Sqprimme)
#  define Num_gemv_dhd_Sqprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_Rqprimme)
#  define Num_gemv_dhd_Rqprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SXhprimme)
#  define Num_gemv_dhd_SXhprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RXhprimme)
#  define Num_gemv_dhd_RXhprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SXsprimme)
#  define Num_gemv_dhd_SXsprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RXsprimme)
#  define Num_gemv_dhd_RXsprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SXdprimme)
#  define Num_gemv_dhd_SXdprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RXdprimme)
#  define Num_gemv_dhd_RXdprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SXqprimme)
#  define Num_gemv_dhd_SXqprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RXqprimme)
#  define Num_gemv_dhd_RXqprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SHhprimme)
#  define Num_gemv_dhd_SHhprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RHhprimme)
#  define Num_gemv_dhd_RHhprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SHsprimme)
#  define Num_gemv_dhd_SHsprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RHsprimme)
#  define Num_gemv_dhd_RHsprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SHdprimme)
#  define Num_gemv_dhd_SHdprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RHdprimme)
#  define Num_gemv_dhd_RHdprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_SHqprimme)
#  define Num_gemv_dhd_SHqprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gemv_dhd_RHqprimme)
#  define Num_gemv_dhd_RHqprimme CONCAT(Num_gemv_dhd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gemv_dhd_dprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_dprimme alpha, dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *x, PRIMME_INT incx,
      dummy_type_dprimme beta, dummy_type_dprimme *y, PRIMME_INT incy, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Sprimme)
#  define Num_axpy_Sprimme CONCAT(Num_axpy_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Rprimme)
#  define Num_axpy_Rprimme CONCAT(Num_axpy_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SHprimme)
#  define Num_axpy_SHprimme CONCAT(Num_axpy_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RHprimme)
#  define Num_axpy_RHprimme CONCAT(Num_axpy_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SXprimme)
#  define Num_axpy_SXprimme CONCAT(Num_axpy_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RXprimme)
#  define Num_axpy_RXprimme CONCAT(Num_axpy_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Shprimme)
#  define Num_axpy_Shprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Rhprimme)
#  define Num_axpy_Rhprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Ssprimme)
#  define Num_axpy_Ssprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Rsprimme)
#  define Num_axpy_Rsprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Sdprimme)
#  define Num_axpy_Sdprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Rdprimme)
#  define Num_axpy_Rdprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Sqprimme)
#  define Num_axpy_Sqprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_Rqprimme)
#  define Num_axpy_Rqprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SXhprimme)
#  define Num_axpy_SXhprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RXhprimme)
#  define Num_axpy_RXhprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SXsprimme)
#  define Num_axpy_SXsprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RXsprimme)
#  define Num_axpy_RXsprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SXdprimme)
#  define Num_axpy_SXdprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RXdprimme)
#  define Num_axpy_RXdprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SXqprimme)
#  define Num_axpy_SXqprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RXqprimme)
#  define Num_axpy_RXqprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SHhprimme)
#  define Num_axpy_SHhprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RHhprimme)
#  define Num_axpy_RHhprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SHsprimme)
#  define Num_axpy_SHsprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RHsprimme)
#  define Num_axpy_RHsprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SHdprimme)
#  define Num_axpy_SHdprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RHdprimme)
#  define Num_axpy_RHdprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_SHqprimme)
#  define Num_axpy_SHqprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_axpy_RHqprimme)
#  define Num_axpy_RHqprimme CONCAT(Num_axpy_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_axpy_dprimme(PRIMME_INT n, dummy_type_dprimme alpha, dummy_type_dprimme *x, PRIMME_INT incx,
      dummy_type_dprimme *y, PRIMME_INT incy, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Sprimme)
#  define Num_dot_Sprimme CONCAT(Num_dot_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Rprimme)
#  define Num_dot_Rprimme CONCAT(Num_dot_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SHprimme)
#  define Num_dot_SHprimme CONCAT(Num_dot_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RHprimme)
#  define Num_dot_RHprimme CONCAT(Num_dot_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SXprimme)
#  define Num_dot_SXprimme CONCAT(Num_dot_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RXprimme)
#  define Num_dot_RXprimme CONCAT(Num_dot_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Shprimme)
#  define Num_dot_Shprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Rhprimme)
#  define Num_dot_Rhprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Ssprimme)
#  define Num_dot_Ssprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Rsprimme)
#  define Num_dot_Rsprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Sdprimme)
#  define Num_dot_Sdprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Rdprimme)
#  define Num_dot_Rdprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Sqprimme)
#  define Num_dot_Sqprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_Rqprimme)
#  define Num_dot_Rqprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SXhprimme)
#  define Num_dot_SXhprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RXhprimme)
#  define Num_dot_RXhprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SXsprimme)
#  define Num_dot_SXsprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RXsprimme)
#  define Num_dot_RXsprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SXdprimme)
#  define Num_dot_SXdprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RXdprimme)
#  define Num_dot_RXdprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SXqprimme)
#  define Num_dot_SXqprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RXqprimme)
#  define Num_dot_RXqprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SHhprimme)
#  define Num_dot_SHhprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RHhprimme)
#  define Num_dot_RHhprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SHsprimme)
#  define Num_dot_SHsprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RHsprimme)
#  define Num_dot_RHsprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SHdprimme)
#  define Num_dot_SHdprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RHdprimme)
#  define Num_dot_RHdprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_SHqprimme)
#  define Num_dot_SHqprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_dot_RHqprimme)
#  define Num_dot_RHqprimme CONCAT(Num_dot_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
dummy_type_dprimme Num_dot_dprimme(PRIMME_INT n, dummy_type_dprimme *x, PRIMME_INT incx, dummy_type_dprimme *y,
      PRIMME_INT incy, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Sprimme)
#  define Num_larnv_Sprimme CONCAT(Num_larnv_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Rprimme)
#  define Num_larnv_Rprimme CONCAT(Num_larnv_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SHprimme)
#  define Num_larnv_SHprimme CONCAT(Num_larnv_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RHprimme)
#  define Num_larnv_RHprimme CONCAT(Num_larnv_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SXprimme)
#  define Num_larnv_SXprimme CONCAT(Num_larnv_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RXprimme)
#  define Num_larnv_RXprimme CONCAT(Num_larnv_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Shprimme)
#  define Num_larnv_Shprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Rhprimme)
#  define Num_larnv_Rhprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Ssprimme)
#  define Num_larnv_Ssprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Rsprimme)
#  define Num_larnv_Rsprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Sdprimme)
#  define Num_larnv_Sdprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Rdprimme)
#  define Num_larnv_Rdprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Sqprimme)
#  define Num_larnv_Sqprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_Rqprimme)
#  define Num_larnv_Rqprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SXhprimme)
#  define Num_larnv_SXhprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RXhprimme)
#  define Num_larnv_RXhprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SXsprimme)
#  define Num_larnv_SXsprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RXsprimme)
#  define Num_larnv_RXsprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SXdprimme)
#  define Num_larnv_SXdprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RXdprimme)
#  define Num_larnv_RXdprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SXqprimme)
#  define Num_larnv_SXqprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RXqprimme)
#  define Num_larnv_RXqprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SHhprimme)
#  define Num_larnv_SHhprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RHhprimme)
#  define Num_larnv_RHhprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SHsprimme)
#  define Num_larnv_SHsprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RHsprimme)
#  define Num_larnv_RHsprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SHdprimme)
#  define Num_larnv_SHdprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RHdprimme)
#  define Num_larnv_RHdprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_SHqprimme)
#  define Num_larnv_SHqprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_larnv_RHqprimme)
#  define Num_larnv_RHqprimme CONCAT(Num_larnv_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_larnv_dprimme(int idist, PRIMME_INT *iseed, PRIMME_INT length,
      dummy_type_dprimme *x, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Sprimme)
#  define Num_scal_Sprimme CONCAT(Num_scal_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Rprimme)
#  define Num_scal_Rprimme CONCAT(Num_scal_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SHprimme)
#  define Num_scal_SHprimme CONCAT(Num_scal_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RHprimme)
#  define Num_scal_RHprimme CONCAT(Num_scal_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SXprimme)
#  define Num_scal_SXprimme CONCAT(Num_scal_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RXprimme)
#  define Num_scal_RXprimme CONCAT(Num_scal_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Shprimme)
#  define Num_scal_Shprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Rhprimme)
#  define Num_scal_Rhprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Ssprimme)
#  define Num_scal_Ssprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Rsprimme)
#  define Num_scal_Rsprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Sdprimme)
#  define Num_scal_Sdprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Rdprimme)
#  define Num_scal_Rdprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Sqprimme)
#  define Num_scal_Sqprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_Rqprimme)
#  define Num_scal_Rqprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SXhprimme)
#  define Num_scal_SXhprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RXhprimme)
#  define Num_scal_RXhprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SXsprimme)
#  define Num_scal_SXsprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RXsprimme)
#  define Num_scal_RXsprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SXdprimme)
#  define Num_scal_SXdprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RXdprimme)
#  define Num_scal_RXdprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SXqprimme)
#  define Num_scal_SXqprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RXqprimme)
#  define Num_scal_RXqprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SHhprimme)
#  define Num_scal_SHhprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RHhprimme)
#  define Num_scal_RHhprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SHsprimme)
#  define Num_scal_SHsprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RHsprimme)
#  define Num_scal_RHsprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SHdprimme)
#  define Num_scal_SHdprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RHdprimme)
#  define Num_scal_RHdprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_SHqprimme)
#  define Num_scal_SHqprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_scal_RHqprimme)
#  define Num_scal_RHqprimme CONCAT(Num_scal_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_scal_dprimme(PRIMME_INT n, dummy_type_dprimme alpha, dummy_type_dprimme *x, PRIMME_INT incx,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Sprimme)
#  define Num_heev_Sprimme CONCAT(Num_heev_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Rprimme)
#  define Num_heev_Rprimme CONCAT(Num_heev_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SHprimme)
#  define Num_heev_SHprimme CONCAT(Num_heev_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RHprimme)
#  define Num_heev_RHprimme CONCAT(Num_heev_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SXprimme)
#  define Num_heev_SXprimme CONCAT(Num_heev_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RXprimme)
#  define Num_heev_RXprimme CONCAT(Num_heev_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Shprimme)
#  define Num_heev_Shprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Rhprimme)
#  define Num_heev_Rhprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Ssprimme)
#  define Num_heev_Ssprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Rsprimme)
#  define Num_heev_Rsprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Sdprimme)
#  define Num_heev_Sdprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Rdprimme)
#  define Num_heev_Rdprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Sqprimme)
#  define Num_heev_Sqprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_Rqprimme)
#  define Num_heev_Rqprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SXhprimme)
#  define Num_heev_SXhprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RXhprimme)
#  define Num_heev_RXhprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SXsprimme)
#  define Num_heev_SXsprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RXsprimme)
#  define Num_heev_RXsprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SXdprimme)
#  define Num_heev_SXdprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RXdprimme)
#  define Num_heev_RXdprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SXqprimme)
#  define Num_heev_SXqprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RXqprimme)
#  define Num_heev_RXqprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SHhprimme)
#  define Num_heev_SHhprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RHhprimme)
#  define Num_heev_RHhprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SHsprimme)
#  define Num_heev_SHsprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RHsprimme)
#  define Num_heev_RHsprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SHdprimme)
#  define Num_heev_SHdprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RHdprimme)
#  define Num_heev_RHdprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_SHqprimme)
#  define Num_heev_SHqprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_heev_RHqprimme)
#  define Num_heev_RHqprimme CONCAT(Num_heev_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_heev_dprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *w, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Sprimme)
#  define Num_hegv_Sprimme CONCAT(Num_hegv_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Rprimme)
#  define Num_hegv_Rprimme CONCAT(Num_hegv_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SHprimme)
#  define Num_hegv_SHprimme CONCAT(Num_hegv_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RHprimme)
#  define Num_hegv_RHprimme CONCAT(Num_hegv_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SXprimme)
#  define Num_hegv_SXprimme CONCAT(Num_hegv_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RXprimme)
#  define Num_hegv_RXprimme CONCAT(Num_hegv_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Shprimme)
#  define Num_hegv_Shprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Rhprimme)
#  define Num_hegv_Rhprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Ssprimme)
#  define Num_hegv_Ssprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Rsprimme)
#  define Num_hegv_Rsprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Sdprimme)
#  define Num_hegv_Sdprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Rdprimme)
#  define Num_hegv_Rdprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Sqprimme)
#  define Num_hegv_Sqprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_Rqprimme)
#  define Num_hegv_Rqprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SXhprimme)
#  define Num_hegv_SXhprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RXhprimme)
#  define Num_hegv_RXhprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SXsprimme)
#  define Num_hegv_SXsprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RXsprimme)
#  define Num_hegv_RXsprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SXdprimme)
#  define Num_hegv_SXdprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RXdprimme)
#  define Num_hegv_RXdprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SXqprimme)
#  define Num_hegv_SXqprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RXqprimme)
#  define Num_hegv_RXqprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SHhprimme)
#  define Num_hegv_SHhprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RHhprimme)
#  define Num_hegv_RHhprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SHsprimme)
#  define Num_hegv_SHsprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RHsprimme)
#  define Num_hegv_RHsprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SHdprimme)
#  define Num_hegv_SHdprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RHdprimme)
#  define Num_hegv_RHdprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_SHqprimme)
#  define Num_hegv_SHqprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hegv_RHqprimme)
#  define Num_hegv_RHqprimme CONCAT(Num_hegv_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_hegv_dprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *b0, PRIMME_INT ldb0, dummy_type_dprimme *w,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Sprimme)
#  define Num_gesvd_Sprimme CONCAT(Num_gesvd_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Rprimme)
#  define Num_gesvd_Rprimme CONCAT(Num_gesvd_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SHprimme)
#  define Num_gesvd_SHprimme CONCAT(Num_gesvd_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RHprimme)
#  define Num_gesvd_RHprimme CONCAT(Num_gesvd_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SXprimme)
#  define Num_gesvd_SXprimme CONCAT(Num_gesvd_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RXprimme)
#  define Num_gesvd_RXprimme CONCAT(Num_gesvd_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Shprimme)
#  define Num_gesvd_Shprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Rhprimme)
#  define Num_gesvd_Rhprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Ssprimme)
#  define Num_gesvd_Ssprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Rsprimme)
#  define Num_gesvd_Rsprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Sdprimme)
#  define Num_gesvd_Sdprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Rdprimme)
#  define Num_gesvd_Rdprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Sqprimme)
#  define Num_gesvd_Sqprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_Rqprimme)
#  define Num_gesvd_Rqprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SXhprimme)
#  define Num_gesvd_SXhprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RXhprimme)
#  define Num_gesvd_RXhprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SXsprimme)
#  define Num_gesvd_SXsprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RXsprimme)
#  define Num_gesvd_RXsprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SXdprimme)
#  define Num_gesvd_SXdprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RXdprimme)
#  define Num_gesvd_RXdprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SXqprimme)
#  define Num_gesvd_SXqprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RXqprimme)
#  define Num_gesvd_RXqprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SHhprimme)
#  define Num_gesvd_SHhprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RHhprimme)
#  define Num_gesvd_RHhprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SHsprimme)
#  define Num_gesvd_SHsprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RHsprimme)
#  define Num_gesvd_RHsprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SHdprimme)
#  define Num_gesvd_SHdprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RHdprimme)
#  define Num_gesvd_RHdprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_SHqprimme)
#  define Num_gesvd_SHqprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gesvd_RHqprimme)
#  define Num_gesvd_RHqprimme CONCAT(Num_gesvd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gesvd_dprimme(const char *jobu, const char *jobvt, PRIMME_INT m,
      PRIMME_INT n, dummy_type_dprimme *a, PRIMME_INT lda, dummy_type_dprimme *s, dummy_type_dprimme *u,
      PRIMME_INT ldu, dummy_type_dprimme *vt, PRIMME_INT ldvt, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Sprimme)
#  define Num_hetrf_Sprimme CONCAT(Num_hetrf_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Rprimme)
#  define Num_hetrf_Rprimme CONCAT(Num_hetrf_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SHprimme)
#  define Num_hetrf_SHprimme CONCAT(Num_hetrf_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RHprimme)
#  define Num_hetrf_RHprimme CONCAT(Num_hetrf_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SXprimme)
#  define Num_hetrf_SXprimme CONCAT(Num_hetrf_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RXprimme)
#  define Num_hetrf_RXprimme CONCAT(Num_hetrf_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Shprimme)
#  define Num_hetrf_Shprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Rhprimme)
#  define Num_hetrf_Rhprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Ssprimme)
#  define Num_hetrf_Ssprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Rsprimme)
#  define Num_hetrf_Rsprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Sdprimme)
#  define Num_hetrf_Sdprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Rdprimme)
#  define Num_hetrf_Rdprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Sqprimme)
#  define Num_hetrf_Sqprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_Rqprimme)
#  define Num_hetrf_Rqprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SXhprimme)
#  define Num_hetrf_SXhprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RXhprimme)
#  define Num_hetrf_RXhprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SXsprimme)
#  define Num_hetrf_SXsprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RXsprimme)
#  define Num_hetrf_RXsprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SXdprimme)
#  define Num_hetrf_SXdprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RXdprimme)
#  define Num_hetrf_RXdprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SXqprimme)
#  define Num_hetrf_SXqprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RXqprimme)
#  define Num_hetrf_RXqprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SHhprimme)
#  define Num_hetrf_SHhprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RHhprimme)
#  define Num_hetrf_RHhprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SHsprimme)
#  define Num_hetrf_SHsprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RHsprimme)
#  define Num_hetrf_RHsprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SHdprimme)
#  define Num_hetrf_SHdprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RHdprimme)
#  define Num_hetrf_RHdprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_SHqprimme)
#  define Num_hetrf_SHqprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrf_RHqprimme)
#  define Num_hetrf_RHqprimme CONCAT(Num_hetrf_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_hetrf_dprimme(const char *uplo, PRIMME_INT n, dummy_type_dprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Sprimme)
#  define Num_hetrs_Sprimme CONCAT(Num_hetrs_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Rprimme)
#  define Num_hetrs_Rprimme CONCAT(Num_hetrs_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SHprimme)
#  define Num_hetrs_SHprimme CONCAT(Num_hetrs_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RHprimme)
#  define Num_hetrs_RHprimme CONCAT(Num_hetrs_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SXprimme)
#  define Num_hetrs_SXprimme CONCAT(Num_hetrs_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RXprimme)
#  define Num_hetrs_RXprimme CONCAT(Num_hetrs_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Shprimme)
#  define Num_hetrs_Shprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Rhprimme)
#  define Num_hetrs_Rhprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Ssprimme)
#  define Num_hetrs_Ssprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Rsprimme)
#  define Num_hetrs_Rsprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Sdprimme)
#  define Num_hetrs_Sdprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Rdprimme)
#  define Num_hetrs_Rdprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Sqprimme)
#  define Num_hetrs_Sqprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_Rqprimme)
#  define Num_hetrs_Rqprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SXhprimme)
#  define Num_hetrs_SXhprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RXhprimme)
#  define Num_hetrs_RXhprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SXsprimme)
#  define Num_hetrs_SXsprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RXsprimme)
#  define Num_hetrs_RXsprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SXdprimme)
#  define Num_hetrs_SXdprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RXdprimme)
#  define Num_hetrs_RXdprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SXqprimme)
#  define Num_hetrs_SXqprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RXqprimme)
#  define Num_hetrs_RXqprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SHhprimme)
#  define Num_hetrs_SHhprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RHhprimme)
#  define Num_hetrs_RHhprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SHsprimme)
#  define Num_hetrs_SHsprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RHsprimme)
#  define Num_hetrs_RHsprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SHdprimme)
#  define Num_hetrs_SHdprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RHdprimme)
#  define Num_hetrs_RHdprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_SHqprimme)
#  define Num_hetrs_SHqprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_hetrs_RHqprimme)
#  define Num_hetrs_RHqprimme CONCAT(Num_hetrs_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_hetrs_dprimme(const char *uplo, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_dprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_dprimme *b, PRIMME_INT ldb,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Sprimme)
#  define Num_potrf_Sprimme CONCAT(Num_potrf_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Rprimme)
#  define Num_potrf_Rprimme CONCAT(Num_potrf_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SHprimme)
#  define Num_potrf_SHprimme CONCAT(Num_potrf_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RHprimme)
#  define Num_potrf_RHprimme CONCAT(Num_potrf_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SXprimme)
#  define Num_potrf_SXprimme CONCAT(Num_potrf_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RXprimme)
#  define Num_potrf_RXprimme CONCAT(Num_potrf_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Shprimme)
#  define Num_potrf_Shprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Rhprimme)
#  define Num_potrf_Rhprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Ssprimme)
#  define Num_potrf_Ssprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Rsprimme)
#  define Num_potrf_Rsprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Sdprimme)
#  define Num_potrf_Sdprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Rdprimme)
#  define Num_potrf_Rdprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Sqprimme)
#  define Num_potrf_Sqprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_Rqprimme)
#  define Num_potrf_Rqprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SXhprimme)
#  define Num_potrf_SXhprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RXhprimme)
#  define Num_potrf_RXhprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SXsprimme)
#  define Num_potrf_SXsprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RXsprimme)
#  define Num_potrf_RXsprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SXdprimme)
#  define Num_potrf_SXdprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RXdprimme)
#  define Num_potrf_RXdprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SXqprimme)
#  define Num_potrf_SXqprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RXqprimme)
#  define Num_potrf_RXqprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SHhprimme)
#  define Num_potrf_SHhprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RHhprimme)
#  define Num_potrf_RHhprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SHsprimme)
#  define Num_potrf_SHsprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RHsprimme)
#  define Num_potrf_RHsprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SHdprimme)
#  define Num_potrf_SHdprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RHdprimme)
#  define Num_potrf_RHdprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_SHqprimme)
#  define Num_potrf_SHqprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_potrf_RHqprimme)
#  define Num_potrf_RHqprimme CONCAT(Num_potrf_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_potrf_dprimme(const char *uplo, PRIMME_INT n, dummy_type_dprimme *a, PRIMME_INT lda,
      int *info, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Sprimme)
#  define Num_trsm_Sprimme CONCAT(Num_trsm_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Rprimme)
#  define Num_trsm_Rprimme CONCAT(Num_trsm_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SHprimme)
#  define Num_trsm_SHprimme CONCAT(Num_trsm_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RHprimme)
#  define Num_trsm_RHprimme CONCAT(Num_trsm_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SXprimme)
#  define Num_trsm_SXprimme CONCAT(Num_trsm_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RXprimme)
#  define Num_trsm_RXprimme CONCAT(Num_trsm_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Shprimme)
#  define Num_trsm_Shprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Rhprimme)
#  define Num_trsm_Rhprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Ssprimme)
#  define Num_trsm_Ssprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Rsprimme)
#  define Num_trsm_Rsprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Sdprimme)
#  define Num_trsm_Sdprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Rdprimme)
#  define Num_trsm_Rdprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Sqprimme)
#  define Num_trsm_Sqprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_Rqprimme)
#  define Num_trsm_Rqprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SXhprimme)
#  define Num_trsm_SXhprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RXhprimme)
#  define Num_trsm_RXhprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SXsprimme)
#  define Num_trsm_SXsprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RXsprimme)
#  define Num_trsm_RXsprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SXdprimme)
#  define Num_trsm_SXdprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RXdprimme)
#  define Num_trsm_RXdprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SXqprimme)
#  define Num_trsm_SXqprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RXqprimme)
#  define Num_trsm_RXqprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SHhprimme)
#  define Num_trsm_SHhprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RHhprimme)
#  define Num_trsm_RHhprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SHsprimme)
#  define Num_trsm_SHsprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RHsprimme)
#  define Num_trsm_RHsprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SHdprimme)
#  define Num_trsm_SHdprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RHdprimme)
#  define Num_trsm_RHdprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_SHqprimme)
#  define Num_trsm_SHqprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_RHqprimme)
#  define Num_trsm_RHqprimme CONCAT(Num_trsm_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_trsm_dprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_dprimme alpha, dummy_type_dprimme *a,
      PRIMME_INT lda, dummy_type_dprimme *b, PRIMME_INT ldb, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Sprimme)
#  define Num_trsm_hd_Sprimme CONCAT(Num_trsm_hd_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Rprimme)
#  define Num_trsm_hd_Rprimme CONCAT(Num_trsm_hd_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SHprimme)
#  define Num_trsm_hd_SHprimme CONCAT(Num_trsm_hd_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RHprimme)
#  define Num_trsm_hd_RHprimme CONCAT(Num_trsm_hd_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SXprimme)
#  define Num_trsm_hd_SXprimme CONCAT(Num_trsm_hd_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RXprimme)
#  define Num_trsm_hd_RXprimme CONCAT(Num_trsm_hd_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Shprimme)
#  define Num_trsm_hd_Shprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Rhprimme)
#  define Num_trsm_hd_Rhprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Ssprimme)
#  define Num_trsm_hd_Ssprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Rsprimme)
#  define Num_trsm_hd_Rsprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Sdprimme)
#  define Num_trsm_hd_Sdprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Rdprimme)
#  define Num_trsm_hd_Rdprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Sqprimme)
#  define Num_trsm_hd_Sqprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_Rqprimme)
#  define Num_trsm_hd_Rqprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SXhprimme)
#  define Num_trsm_hd_SXhprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RXhprimme)
#  define Num_trsm_hd_RXhprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SXsprimme)
#  define Num_trsm_hd_SXsprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RXsprimme)
#  define Num_trsm_hd_RXsprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SXdprimme)
#  define Num_trsm_hd_SXdprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RXdprimme)
#  define Num_trsm_hd_RXdprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SXqprimme)
#  define Num_trsm_hd_SXqprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RXqprimme)
#  define Num_trsm_hd_RXqprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SHhprimme)
#  define Num_trsm_hd_SHhprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RHhprimme)
#  define Num_trsm_hd_RHhprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SHsprimme)
#  define Num_trsm_hd_SHsprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RHsprimme)
#  define Num_trsm_hd_RHsprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SHdprimme)
#  define Num_trsm_hd_SHdprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RHdprimme)
#  define Num_trsm_hd_RHdprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_SHqprimme)
#  define Num_trsm_hd_SHqprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_trsm_hd_RHqprimme)
#  define Num_trsm_hd_RHqprimme CONCAT(Num_trsm_hd_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_trsm_hd_dprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_dprimme alpha, dummy_type_dprimme *a,
      PRIMME_INT lda, dummy_type_dprimme *b, PRIMME_INT ldb, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Sprimme)
#  define Num_getrf_Sprimme CONCAT(Num_getrf_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Rprimme)
#  define Num_getrf_Rprimme CONCAT(Num_getrf_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SHprimme)
#  define Num_getrf_SHprimme CONCAT(Num_getrf_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RHprimme)
#  define Num_getrf_RHprimme CONCAT(Num_getrf_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SXprimme)
#  define Num_getrf_SXprimme CONCAT(Num_getrf_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RXprimme)
#  define Num_getrf_RXprimme CONCAT(Num_getrf_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Shprimme)
#  define Num_getrf_Shprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Rhprimme)
#  define Num_getrf_Rhprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Ssprimme)
#  define Num_getrf_Ssprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Rsprimme)
#  define Num_getrf_Rsprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Sdprimme)
#  define Num_getrf_Sdprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Rdprimme)
#  define Num_getrf_Rdprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Sqprimme)
#  define Num_getrf_Sqprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_Rqprimme)
#  define Num_getrf_Rqprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SXhprimme)
#  define Num_getrf_SXhprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RXhprimme)
#  define Num_getrf_RXhprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SXsprimme)
#  define Num_getrf_SXsprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RXsprimme)
#  define Num_getrf_RXsprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SXdprimme)
#  define Num_getrf_SXdprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RXdprimme)
#  define Num_getrf_RXdprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SXqprimme)
#  define Num_getrf_SXqprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RXqprimme)
#  define Num_getrf_RXqprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SHhprimme)
#  define Num_getrf_SHhprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RHhprimme)
#  define Num_getrf_RHhprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SHsprimme)
#  define Num_getrf_SHsprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RHsprimme)
#  define Num_getrf_RHsprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SHdprimme)
#  define Num_getrf_SHdprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RHdprimme)
#  define Num_getrf_RHdprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_SHqprimme)
#  define Num_getrf_SHqprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrf_RHqprimme)
#  define Num_getrf_RHqprimme CONCAT(Num_getrf_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_getrf_dprimme(PRIMME_INT m, PRIMME_INT n, dummy_type_dprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Sprimme)
#  define Num_getrs_Sprimme CONCAT(Num_getrs_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Rprimme)
#  define Num_getrs_Rprimme CONCAT(Num_getrs_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SHprimme)
#  define Num_getrs_SHprimme CONCAT(Num_getrs_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RHprimme)
#  define Num_getrs_RHprimme CONCAT(Num_getrs_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SXprimme)
#  define Num_getrs_SXprimme CONCAT(Num_getrs_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RXprimme)
#  define Num_getrs_RXprimme CONCAT(Num_getrs_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Shprimme)
#  define Num_getrs_Shprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Rhprimme)
#  define Num_getrs_Rhprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Ssprimme)
#  define Num_getrs_Ssprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Rsprimme)
#  define Num_getrs_Rsprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Sdprimme)
#  define Num_getrs_Sdprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Rdprimme)
#  define Num_getrs_Rdprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Sqprimme)
#  define Num_getrs_Sqprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_Rqprimme)
#  define Num_getrs_Rqprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SXhprimme)
#  define Num_getrs_SXhprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RXhprimme)
#  define Num_getrs_RXhprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SXsprimme)
#  define Num_getrs_SXsprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RXsprimme)
#  define Num_getrs_RXsprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SXdprimme)
#  define Num_getrs_SXdprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RXdprimme)
#  define Num_getrs_RXdprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SXqprimme)
#  define Num_getrs_SXqprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RXqprimme)
#  define Num_getrs_RXqprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SHhprimme)
#  define Num_getrs_SHhprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RHhprimme)
#  define Num_getrs_RHhprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SHsprimme)
#  define Num_getrs_SHsprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RHsprimme)
#  define Num_getrs_RHsprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SHdprimme)
#  define Num_getrs_SHdprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RHdprimme)
#  define Num_getrs_RHdprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_SHqprimme)
#  define Num_getrs_SHqprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_getrs_RHqprimme)
#  define Num_getrs_RHqprimme CONCAT(Num_getrs_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_getrs_dprimme(const char *trans, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_dprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_dprimme *b, PRIMME_INT ldb,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Sprimme)
#  define Num_compute_gramm_ddh_Sprimme CONCAT(Num_compute_gramm_ddh_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Rprimme)
#  define Num_compute_gramm_ddh_Rprimme CONCAT(Num_compute_gramm_ddh_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SHprimme)
#  define Num_compute_gramm_ddh_SHprimme CONCAT(Num_compute_gramm_ddh_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RHprimme)
#  define Num_compute_gramm_ddh_RHprimme CONCAT(Num_compute_gramm_ddh_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SXprimme)
#  define Num_compute_gramm_ddh_SXprimme CONCAT(Num_compute_gramm_ddh_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RXprimme)
#  define Num_compute_gramm_ddh_RXprimme CONCAT(Num_compute_gramm_ddh_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Shprimme)
#  define Num_compute_gramm_ddh_Shprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Rhprimme)
#  define Num_compute_gramm_ddh_Rhprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Ssprimme)
#  define Num_compute_gramm_ddh_Ssprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Rsprimme)
#  define Num_compute_gramm_ddh_Rsprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Sdprimme)
#  define Num_compute_gramm_ddh_Sdprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Rdprimme)
#  define Num_compute_gramm_ddh_Rdprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Sqprimme)
#  define Num_compute_gramm_ddh_Sqprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_Rqprimme)
#  define Num_compute_gramm_ddh_Rqprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SXhprimme)
#  define Num_compute_gramm_ddh_SXhprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RXhprimme)
#  define Num_compute_gramm_ddh_RXhprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SXsprimme)
#  define Num_compute_gramm_ddh_SXsprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RXsprimme)
#  define Num_compute_gramm_ddh_RXsprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SXdprimme)
#  define Num_compute_gramm_ddh_SXdprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RXdprimme)
#  define Num_compute_gramm_ddh_RXdprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SXqprimme)
#  define Num_compute_gramm_ddh_SXqprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RXqprimme)
#  define Num_compute_gramm_ddh_RXqprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SHhprimme)
#  define Num_compute_gramm_ddh_SHhprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RHhprimme)
#  define Num_compute_gramm_ddh_RHhprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SHsprimme)
#  define Num_compute_gramm_ddh_SHsprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RHsprimme)
#  define Num_compute_gramm_ddh_RHsprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SHdprimme)
#  define Num_compute_gramm_ddh_SHdprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RHdprimme)
#  define Num_compute_gramm_ddh_RHdprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_SHqprimme)
#  define Num_compute_gramm_ddh_SHqprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_compute_gramm_ddh_RHqprimme)
#  define Num_compute_gramm_ddh_RHqprimme CONCAT(Num_compute_gramm_ddh_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_compute_gramm_ddh_dprimme(dummy_type_dprimme *X, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldX, dummy_type_dprimme *Y, PRIMME_INT ldY, dummy_type_dprimme alpha, dummy_type_dprimme *H,
      PRIMME_INT ldH, int isherm, primme_context ctx);
int Num_check_pointer_hprimme(void *x);
int Num_malloc_hprimme(PRIMME_INT n, dummy_type_hprimme **x, primme_context ctx);
int Num_free_hprimme(dummy_type_hprimme *x, primme_context ctx);
int Num_copy_hprimme(PRIMME_INT n, dummy_type_hprimme *x, PRIMME_INT incx, dummy_type_hprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_copy_Tmatrix_hprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, dummy_type_hprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_copy_matrix_hprimme(dummy_type_hprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, dummy_type_hprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_zero_matrix_hprimme(dummy_type_hprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, primme_context ctx);
int Num_gemm_dhd_hprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_sprimme alpha, dummy_type_hprimme *a, PRIMME_INT lda,
      dummy_type_sprimme *b, PRIMME_INT ldb, dummy_type_sprimme beta, dummy_type_hprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_ddh_hprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_sprimme alpha, dummy_type_hprimme *a, PRIMME_INT lda,
      dummy_type_hprimme *b, PRIMME_INT ldb, dummy_type_sprimme beta, dummy_type_sprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemv_ddh_hprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_sprimme alpha, dummy_type_hprimme *a, PRIMME_INT lda, dummy_type_hprimme *x, PRIMME_INT incx,
      dummy_type_sprimme beta, dummy_type_sprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_dhd_hprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_sprimme alpha, dummy_type_hprimme *a, PRIMME_INT lda, dummy_type_sprimme *x, PRIMME_INT incx,
      dummy_type_sprimme beta, dummy_type_hprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_axpy_hprimme(PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_hprimme *x, PRIMME_INT incx,
      dummy_type_hprimme *y, PRIMME_INT incy, primme_context ctx);
dummy_type_sprimme Num_dot_hprimme(PRIMME_INT n, dummy_type_hprimme *x, PRIMME_INT incx, dummy_type_hprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_larnv_hprimme(int idist, PRIMME_INT *iseed, PRIMME_INT length,
      dummy_type_hprimme *x, primme_context ctx);
int Num_scal_hprimme(PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_hprimme *x, PRIMME_INT incx,
      primme_context ctx);
int Num_trsm_hd_hprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *a,
      PRIMME_INT lda, dummy_type_hprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_compute_gramm_ddh_hprimme(dummy_type_hprimme *X, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldX, dummy_type_hprimme *Y, PRIMME_INT ldY, dummy_type_sprimme alpha, dummy_type_sprimme *H,
      PRIMME_INT ldH, int isherm, primme_context ctx);
int Num_check_pointer_kprimme(void *x);
int Num_malloc_kprimme(PRIMME_INT n, dummy_type_kprimme **x, primme_context ctx);
int Num_free_kprimme(dummy_type_kprimme *x, primme_context ctx);
int Num_copy_kprimme(PRIMME_INT n, dummy_type_kprimme *x, PRIMME_INT incx, dummy_type_kprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_copy_Tmatrix_kprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, dummy_type_kprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_copy_matrix_kprimme(dummy_type_kprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, dummy_type_kprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_zero_matrix_kprimme(dummy_type_kprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, primme_context ctx);
int Num_gemm_dhd_kprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_cprimme alpha, dummy_type_kprimme *a, PRIMME_INT lda,
      dummy_type_cprimme *b, PRIMME_INT ldb, dummy_type_cprimme beta, dummy_type_kprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_ddh_kprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_cprimme alpha, dummy_type_kprimme *a, PRIMME_INT lda,
      dummy_type_kprimme *b, PRIMME_INT ldb, dummy_type_cprimme beta, dummy_type_cprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemv_ddh_kprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_cprimme alpha, dummy_type_kprimme *a, PRIMME_INT lda, dummy_type_kprimme *x, PRIMME_INT incx,
      dummy_type_cprimme beta, dummy_type_cprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_dhd_kprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_cprimme alpha, dummy_type_kprimme *a, PRIMME_INT lda, dummy_type_cprimme *x, PRIMME_INT incx,
      dummy_type_cprimme beta, dummy_type_kprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_axpy_kprimme(PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_kprimme *x, PRIMME_INT incx,
      dummy_type_kprimme *y, PRIMME_INT incy, primme_context ctx);
dummy_type_cprimme Num_dot_kprimme(PRIMME_INT n, dummy_type_kprimme *x, PRIMME_INT incx, dummy_type_kprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_larnv_kprimme(int idist, PRIMME_INT *iseed, PRIMME_INT length,
      dummy_type_kprimme *x, primme_context ctx);
int Num_scal_kprimme(PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_kprimme *x, PRIMME_INT incx,
      primme_context ctx);
int Num_trsm_hd_kprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *a,
      PRIMME_INT lda, dummy_type_kprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_compute_gramm_ddh_kprimme(dummy_type_kprimme *X, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldX, dummy_type_kprimme *Y, PRIMME_INT ldY, dummy_type_cprimme alpha, dummy_type_cprimme *H,
      PRIMME_INT ldH, int isherm, primme_context ctx);
int Num_check_pointer_sprimme(void *x);
int Num_malloc_sprimme(PRIMME_INT n, dummy_type_sprimme **x, primme_context ctx);
int Num_free_sprimme(dummy_type_sprimme *x, primme_context ctx);
int Num_copy_sprimme(PRIMME_INT n, dummy_type_sprimme *x, PRIMME_INT incx, dummy_type_sprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_copy_Tmatrix_sprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, dummy_type_sprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_copy_matrix_sprimme(dummy_type_sprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, dummy_type_sprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_zero_matrix_sprimme(dummy_type_sprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, primme_context ctx);
int Num_gemm_sprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda,
      dummy_type_sprimme *b, PRIMME_INT ldb, dummy_type_sprimme beta, dummy_type_sprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_dhd_sprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda,
      dummy_type_sprimme *b, PRIMME_INT ldb, dummy_type_sprimme beta, dummy_type_sprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_ddh_sprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda,
      dummy_type_sprimme *b, PRIMME_INT ldb, dummy_type_sprimme beta, dummy_type_sprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_hemm_sprimme(const char *side, const char *uplo, PRIMME_INT m,
      PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *b,
      PRIMME_INT ldb, dummy_type_sprimme beta, dummy_type_sprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_trmm_sprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *a,
      PRIMME_INT lda, dummy_type_sprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_gemv_sprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *x, PRIMME_INT incx,
      dummy_type_sprimme beta, dummy_type_sprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_ddh_sprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *x, PRIMME_INT incx,
      dummy_type_sprimme beta, dummy_type_sprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_dhd_sprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_sprimme alpha, dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *x, PRIMME_INT incx,
      dummy_type_sprimme beta, dummy_type_sprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_axpy_sprimme(PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *x, PRIMME_INT incx,
      dummy_type_sprimme *y, PRIMME_INT incy, primme_context ctx);
dummy_type_sprimme Num_dot_sprimme(PRIMME_INT n, dummy_type_sprimme *x, PRIMME_INT incx, dummy_type_sprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_larnv_sprimme(int idist, PRIMME_INT *iseed, PRIMME_INT length,
      dummy_type_sprimme *x, primme_context ctx);
int Num_scal_sprimme(PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *x, PRIMME_INT incx,
      primme_context ctx);
int Num_heev_sprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *w, primme_context ctx);
int Num_hegv_sprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *b0, PRIMME_INT ldb0, dummy_type_sprimme *w,
      primme_context ctx);
int Num_gesvd_sprimme(const char *jobu, const char *jobvt, PRIMME_INT m,
      PRIMME_INT n, dummy_type_sprimme *a, PRIMME_INT lda, dummy_type_sprimme *s, dummy_type_sprimme *u,
      PRIMME_INT ldu, dummy_type_sprimme *vt, PRIMME_INT ldvt, primme_context ctx);
int Num_hetrf_sprimme(const char *uplo, PRIMME_INT n, dummy_type_sprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
int Num_hetrs_sprimme(const char *uplo, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_sprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_sprimme *b, PRIMME_INT ldb,
      primme_context ctx);
int Num_potrf_sprimme(const char *uplo, PRIMME_INT n, dummy_type_sprimme *a, PRIMME_INT lda,
      int *info, primme_context ctx);
int Num_trsm_sprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *a,
      PRIMME_INT lda, dummy_type_sprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_trsm_hd_sprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_sprimme alpha, dummy_type_sprimme *a,
      PRIMME_INT lda, dummy_type_sprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_getrf_sprimme(PRIMME_INT m, PRIMME_INT n, dummy_type_sprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
int Num_getrs_sprimme(const char *trans, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_sprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_sprimme *b, PRIMME_INT ldb,
      primme_context ctx);
int Num_compute_gramm_ddh_sprimme(dummy_type_sprimme *X, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldX, dummy_type_sprimme *Y, PRIMME_INT ldY, dummy_type_sprimme alpha, dummy_type_sprimme *H,
      PRIMME_INT ldH, int isherm, primme_context ctx);
int Num_check_pointer_cprimme(void *x);
int Num_malloc_cprimme(PRIMME_INT n, dummy_type_cprimme **x, primme_context ctx);
int Num_free_cprimme(dummy_type_cprimme *x, primme_context ctx);
int Num_copy_cprimme(PRIMME_INT n, dummy_type_cprimme *x, PRIMME_INT incx, dummy_type_cprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_copy_Tmatrix_cprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, dummy_type_cprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_copy_matrix_cprimme(dummy_type_cprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, dummy_type_cprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_zero_matrix_cprimme(dummy_type_cprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, primme_context ctx);
int Num_gemm_cprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda,
      dummy_type_cprimme *b, PRIMME_INT ldb, dummy_type_cprimme beta, dummy_type_cprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_dhd_cprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda,
      dummy_type_cprimme *b, PRIMME_INT ldb, dummy_type_cprimme beta, dummy_type_cprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_ddh_cprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda,
      dummy_type_cprimme *b, PRIMME_INT ldb, dummy_type_cprimme beta, dummy_type_cprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_hemm_cprimme(const char *side, const char *uplo, PRIMME_INT m,
      PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_cprimme *b,
      PRIMME_INT ldb, dummy_type_cprimme beta, dummy_type_cprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_trmm_cprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *a,
      PRIMME_INT lda, dummy_type_cprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_gemv_cprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_cprimme *x, PRIMME_INT incx,
      dummy_type_cprimme beta, dummy_type_cprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_ddh_cprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_cprimme *x, PRIMME_INT incx,
      dummy_type_cprimme beta, dummy_type_cprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_dhd_cprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_cprimme alpha, dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_cprimme *x, PRIMME_INT incx,
      dummy_type_cprimme beta, dummy_type_cprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_axpy_cprimme(PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *x, PRIMME_INT incx,
      dummy_type_cprimme *y, PRIMME_INT incy, primme_context ctx);
dummy_type_cprimme Num_dot_cprimme(PRIMME_INT n, dummy_type_cprimme *x, PRIMME_INT incx, dummy_type_cprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_larnv_cprimme(int idist, PRIMME_INT *iseed, PRIMME_INT length,
      dummy_type_cprimme *x, primme_context ctx);
int Num_scal_cprimme(PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *x, PRIMME_INT incx,
      primme_context ctx);
int Num_heev_cprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_sprimme *w, primme_context ctx);
int Num_hegv_cprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_cprimme *b0, PRIMME_INT ldb0, dummy_type_sprimme *w,
      primme_context ctx);
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Sprimme)
#  define Num_gees_Sprimme CONCAT(Num_gees_,SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Rprimme)
#  define Num_gees_Rprimme CONCAT(Num_gees_,REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SHprimme)
#  define Num_gees_SHprimme CONCAT(Num_gees_,HOST_SCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RHprimme)
#  define Num_gees_RHprimme CONCAT(Num_gees_,HOST_REAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SXprimme)
#  define Num_gees_SXprimme CONCAT(Num_gees_,XSCALAR_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RXprimme)
#  define Num_gees_RXprimme CONCAT(Num_gees_,XREAL_SUF)
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Shprimme)
#  define Num_gees_Shprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Rhprimme)
#  define Num_gees_Rhprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Ssprimme)
#  define Num_gees_Ssprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Rsprimme)
#  define Num_gees_Rsprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Sdprimme)
#  define Num_gees_Sdprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Rdprimme)
#  define Num_gees_Rdprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Sqprimme)
#  define Num_gees_Sqprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_Rqprimme)
#  define Num_gees_Rqprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(STEM_C,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SXhprimme)
#  define Num_gees_SXhprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(h,k)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RXhprimme)
#  define Num_gees_RXhprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,h),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SXsprimme)
#  define Num_gees_SXsprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RXsprimme)
#  define Num_gees_RXsprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SXdprimme)
#  define Num_gees_SXdprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RXdprimme)
#  define Num_gees_RXdprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SXqprimme)
#  define Num_gees_SXqprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RXqprimme)
#  define Num_gees_RXqprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SHhprimme)
#  define Num_gees_SHhprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RHhprimme)
#  define Num_gees_RHhprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SHsprimme)
#  define Num_gees_SHsprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(s,c)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RHsprimme)
#  define Num_gees_RHsprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,s),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SHdprimme)
#  define Num_gees_SHdprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(d,z)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RHdprimme)
#  define Num_gees_RHdprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,d),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_SHqprimme)
#  define Num_gees_SHqprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,USE_ARITH(q,w)),primme),))
#endif
#if !defined(CHECK_TEMPLATE) && !defined(Num_gees_RHqprimme)
#  define Num_gees_RHqprimme CONCAT(Num_gees_,CONCAT(CONCAT(CONCAT(,q),primme),))
#endif
int Num_gees_cprimme(const char *jobvs, PRIMME_INT n, dummy_type_cprimme *a, PRIMME_INT lda,
      dummy_type_cprimme *w, dummy_type_cprimme *vs, PRIMME_INT ldvs, primme_context ctx);
int Num_gesvd_cprimme(const char *jobu, const char *jobvt, PRIMME_INT m,
      PRIMME_INT n, dummy_type_cprimme *a, PRIMME_INT lda, dummy_type_sprimme *s, dummy_type_cprimme *u,
      PRIMME_INT ldu, dummy_type_cprimme *vt, PRIMME_INT ldvt, primme_context ctx);
int Num_hetrf_cprimme(const char *uplo, PRIMME_INT n, dummy_type_cprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
int Num_hetrs_cprimme(const char *uplo, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_cprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_cprimme *b, PRIMME_INT ldb,
      primme_context ctx);
int Num_potrf_cprimme(const char *uplo, PRIMME_INT n, dummy_type_cprimme *a, PRIMME_INT lda,
      int *info, primme_context ctx);
int Num_trsm_cprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *a,
      PRIMME_INT lda, dummy_type_cprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_trsm_hd_cprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_cprimme alpha, dummy_type_cprimme *a,
      PRIMME_INT lda, dummy_type_cprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_getrf_cprimme(PRIMME_INT m, PRIMME_INT n, dummy_type_cprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
int Num_getrs_cprimme(const char *trans, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_cprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_cprimme *b, PRIMME_INT ldb,
      primme_context ctx);
int Num_compute_gramm_ddh_cprimme(dummy_type_cprimme *X, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldX, dummy_type_cprimme *Y, PRIMME_INT ldY, dummy_type_cprimme alpha, dummy_type_cprimme *H,
      PRIMME_INT ldH, int isherm, primme_context ctx);
int Num_check_pointer_zprimme(void *x);
int Num_malloc_zprimme(PRIMME_INT n, dummy_type_zprimme **x, primme_context ctx);
int Num_free_zprimme(dummy_type_zprimme *x, primme_context ctx);
int Num_copy_zprimme(PRIMME_INT n, dummy_type_zprimme *x, PRIMME_INT incx, dummy_type_zprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_copy_Tmatrix_zprimme(void *x, primme_op_datatype xt, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT ldx, dummy_type_zprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_copy_matrix_zprimme(dummy_type_zprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, dummy_type_zprimme *y, PRIMME_INT ldy,
      primme_context ctx);
int Num_zero_matrix_zprimme(dummy_type_zprimme *x, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldx, primme_context ctx);
int Num_gemm_zprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda,
      dummy_type_zprimme *b, PRIMME_INT ldb, dummy_type_zprimme beta, dummy_type_zprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_dhd_zprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda,
      dummy_type_zprimme *b, PRIMME_INT ldb, dummy_type_zprimme beta, dummy_type_zprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_gemm_ddh_zprimme(const char *transa, const char *transb, PRIMME_INT m,
      PRIMME_INT n, PRIMME_INT k, dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda,
      dummy_type_zprimme *b, PRIMME_INT ldb, dummy_type_zprimme beta, dummy_type_zprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_hemm_zprimme(const char *side, const char *uplo, PRIMME_INT m,
      PRIMME_INT n, dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_zprimme *b,
      PRIMME_INT ldb, dummy_type_zprimme beta, dummy_type_zprimme *c, PRIMME_INT ldc,
      primme_context ctx);
int Num_trmm_zprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_zprimme alpha, dummy_type_zprimme *a,
      PRIMME_INT lda, dummy_type_zprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_gemv_zprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_zprimme *x, PRIMME_INT incx,
      dummy_type_zprimme beta, dummy_type_zprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_ddh_zprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_zprimme *x, PRIMME_INT incx,
      dummy_type_zprimme beta, dummy_type_zprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_gemv_dhd_zprimme(const char *transa, PRIMME_INT m, PRIMME_INT n,
      dummy_type_zprimme alpha, dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_zprimme *x, PRIMME_INT incx,
      dummy_type_zprimme beta, dummy_type_zprimme *y, PRIMME_INT incy, primme_context ctx);
int Num_axpy_zprimme(PRIMME_INT n, dummy_type_zprimme alpha, dummy_type_zprimme *x, PRIMME_INT incx,
      dummy_type_zprimme *y, PRIMME_INT incy, primme_context ctx);
dummy_type_zprimme Num_dot_zprimme(PRIMME_INT n, dummy_type_zprimme *x, PRIMME_INT incx, dummy_type_zprimme *y,
      PRIMME_INT incy, primme_context ctx);
int Num_larnv_zprimme(int idist, PRIMME_INT *iseed, PRIMME_INT length,
      dummy_type_zprimme *x, primme_context ctx);
int Num_scal_zprimme(PRIMME_INT n, dummy_type_zprimme alpha, dummy_type_zprimme *x, PRIMME_INT incx,
      primme_context ctx);
int Num_heev_zprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_dprimme *w, primme_context ctx);
int Num_hegv_zprimme(const char *jobz, const char *uplo, PRIMME_INT n,
      dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_zprimme *b0, PRIMME_INT ldb0, dummy_type_dprimme *w,
      primme_context ctx);
int Num_gees_zprimme(const char *jobvs, PRIMME_INT n, dummy_type_zprimme *a, PRIMME_INT lda,
      dummy_type_zprimme *w, dummy_type_zprimme *vs, PRIMME_INT ldvs, primme_context ctx);
int Num_gesvd_zprimme(const char *jobu, const char *jobvt, PRIMME_INT m,
      PRIMME_INT n, dummy_type_zprimme *a, PRIMME_INT lda, dummy_type_dprimme *s, dummy_type_zprimme *u,
      PRIMME_INT ldu, dummy_type_zprimme *vt, PRIMME_INT ldvt, primme_context ctx);
int Num_hetrf_zprimme(const char *uplo, PRIMME_INT n, dummy_type_zprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
int Num_hetrs_zprimme(const char *uplo, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_zprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_zprimme *b, PRIMME_INT ldb,
      primme_context ctx);
int Num_potrf_zprimme(const char *uplo, PRIMME_INT n, dummy_type_zprimme *a, PRIMME_INT lda,
      int *info, primme_context ctx);
int Num_trsm_zprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_zprimme alpha, dummy_type_zprimme *a,
      PRIMME_INT lda, dummy_type_zprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_trsm_hd_zprimme(const char *side, const char *uplo, const char *transa,
      const char *diag, PRIMME_INT m, PRIMME_INT n, dummy_type_zprimme alpha, dummy_type_zprimme *a,
      PRIMME_INT lda, dummy_type_zprimme *b, PRIMME_INT ldb, primme_context ctx);
int Num_getrf_zprimme(PRIMME_INT m, PRIMME_INT n, dummy_type_zprimme *a, PRIMME_INT lda,
      int *ipivot, primme_context ctx);
int Num_getrs_zprimme(const char *trans, PRIMME_INT n, PRIMME_INT nrhs,
      dummy_type_zprimme *a, PRIMME_INT lda, int *ipivot, dummy_type_zprimme *b, PRIMME_INT ldb,
      primme_context ctx);
int Num_compute_gramm_ddh_zprimme(dummy_type_zprimme *X, PRIMME_INT m, PRIMME_INT n,
      PRIMME_INT ldX, dummy_type_zprimme *Y, PRIMME_INT ldY, dummy_type_zprimme alpha, dummy_type_zprimme *H,
      PRIMME_INT ldH, int isherm, primme_context ctx);
#endif
