Changeset 1953 for trunk/psLib/src/dataManip/psFunctions.c
- Timestamp:
- Oct 4, 2004, 3:43:58 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/dataManip/psFunctions.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psFunctions.c
r1947 r1953 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.4 5$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-10-0 4 00:40:23$9 * @version $Revision: 1.46 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-10-05 01:43:58 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 1988 1988 1989 1989 XXX: nobody asked for us to generate this routine. 1990 1991 XXX: add another psScalar argument for the result. 1992 1993 XXX: The VectorCopy routines seg fault when I declare range32 as static. 1990 1994 *****************************************************************************/ 1991 1995 psScalar *p_psVectorInterpolate(psVector *domain, … … 1994 1998 psScalar *x) 1995 1999 { 2000 psVector *range32 = NULL; 2001 psVector *domain32 = NULL; 1996 2002 psTrace(".psLib.dataManip.psFunctions.p_psVectorInterpolate", 4, 1997 2003 "---- p_psVectorInterpolate() begin ----\n"); … … 2000 2006 (domain->type.type != x->type.type)) { 2001 2007 // XXX psError 2002 printf(" domain->type.type != range->type.type != x->type.type\n");2008 printf("p_psVectorInterpolate(): domain->type.type != range->type.type != x->type.type\n"); 2003 2009 printf("%d %d %d\n", domain->type.type, range->type.type, x->type.type); 2010 exit(1); 2004 2011 } 2005 2012 if (domain->n != range->n) { 2006 2013 // XXX psError 2007 2014 printf("domain->n != range->n\n"); 2015 exit(1); 2008 2016 } 2009 2017 if (order > (domain->n - 1)) { 2010 2018 // XXX psError: not enough data points for order-order interpolation. 2011 2019 printf("not enough data points for order-order interpolation.\n"); 2020 exit(1); 2012 2021 } 2013 2022 … … 2020 2029 order, 2021 2030 x->data.F32), PS_TYPE_F32)); 2031 } else if (x->type.type == PS_TYPE_F64) { 2032 // XXX: use recycled vectors here. 2033 range32 = psVectorCopy(range32, range, PS_TYPE_F32); 2034 domain32 = psVectorCopy(domain32, domain, PS_TYPE_F32); 2035 2036 psScalar *tmpScalar = psScalarAlloc((double) 2037 p_ps1DInterpolateF32(domain32->data.F32, 2038 range32->data.F32, 2039 domain32->n, 2040 order, 2041 (float) x->data.F64), PS_TYPE_F64); 2042 psFree(range32); 2043 psFree(domain32); 2044 2045 psTrace(".psLib.dataManip.psFunctions.p_psVectorInterpolate", 4, 2046 "---- p_psVectorInterpolate() end ----\n"); 2047 // XXX: Convert data type to F64? 2048 return(tmpScalar); 2049 2022 2050 } else { 2023 2051 // XXX psError: type not supported
Note:
See TracChangeset
for help on using the changeset viewer.
