/*********************************************************************//* Copyright 2009, 2010 The University of Texas at Austin. *//* All rights reserved. *//* *//* Redistribution and use in source and binary forms, with or *//* without modification, are permitted provided that the following *//* conditions are met: *//* *//* 1. Redistributions of source code must retain the above *//* copyright notice, this list of conditions and the following *//* disclaimer. *//* *//* 2. Redistributions in binary form must reproduce the above *//* copyright notice, this list of conditions and the following *//* disclaimer in the documentation and/or other materials *//* provided with the distribution. *//* *//* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT *//* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, *//* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *//* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE *//* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT *//* AUSTIN OR CONTRIBUTORS 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. *//* *//* The views and conclusions contained in the software and *//* documentation are those of the authors and should not be *//* interpreted as representing official policies, either expressed *//* or implied, of The University of Texas at Austin. *//*********************************************************************/#include <stdio.h>#include "common.h"#ifdef FUNCTION_PROFILE#include "functable.h"#endif#undef MAX_K#ifdef USE_ABS#if defined(DOUBLE)#define ABS fabs#else#define ABS fabsf#endif#ifndef USE_MIN/* ABS & MAX */#ifndef COMPLEX#ifdef XDOUBLE#define MAX_K QAMAX_K#elif defined(DOUBLE)#define MAX_K DAMAX_K#else#define MAX_K SAMAX_K#endif#else#ifdef XDOUBLE#define MAX_K XAMAX_K#elif defined(DOUBLE)#define MAX_K ZAMAX_K#else#define MAX_K CAMAX_K#endif#endif#else/* ABS & MIN */#ifndef COMPLEX#ifdef XDOUBLE#define MAX_K QAMIN_K#elif defined(DOUBLE)#define MAX_K DAMIN_K#else#define MAX_K SAMIN_K#endif#else#ifdef XDOUBLE#define MAX_K XAMIN_K#elif defined(DOUBLE)#define MAX_K ZAMIN_K#else#define MAX_K CAMIN_K#endif#endif#endif#else#define ABS#ifndef USE_MIN/* MAX */#ifdef XDOUBLE#define MAX_K QMAX_K#elif defined(DOUBLE)#define MAX_K DMAX_K#else#define MAX_K SMAX_K#endif#else/* MIN */#ifdef XDOUBLE#define MAX_K QMIN_K#elif defined(DOUBLE)#define MAX_K DMIN_K#else#define MAX_K SMIN_K#endif#endif#endif#ifndef CBLASFLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){BLASLONG n = *N;BLASLONG incx = *INCX;FLOATRET ret;PRINT_DEBUG_NAME;if (n <= 0) return 0;#ifndef COMPLEXif (incx == 0) return (ABS(*x));#elseif (incx == 0) return (ABS(*x) + ABS(*(x+1)));#endifIDEBUG_START;FUNCTION_PROFILE_START();ret = (FLOATRET)MAX_K(n, x, incx);FUNCTION_PROFILE_END(COMPSIZE, n, 0);IDEBUG_END;return ret;}#else#ifdef COMPLEXFLOAT CNAME(blasint n, void *vx, blasint incx){FLOAT *x = (FLOAT*) vx;#elseFLOAT CNAME(blasint n, FLOAT *x, blasint incx){#endifFLOAT ret;PRINT_DEBUG_CNAME;if (n <= 0) return 0;#ifndef COMPLEXif (incx == 0) return (ABS(*x));#elseif (incx == 0) return (ABS(*x) + ABS(*(x+1)));#endifIDEBUG_START;FUNCTION_PROFILE_START();ret = MAX_K(n, x, incx);FUNCTION_PROFILE_END(COMPSIZE, n, 0);IDEBUG_END;return ret;}#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。