view libinterp/octave-value/module.mk @ 15696:2fac72a256ce

Add complex erf,erfc,erfcx,erfi,dawson routines from Faddeeva package. * libinterp/corefcn/mappers.cc: Add erfi and dawson mapper functions, and add complex-argument test cases for erf, erfc, erfcx, erfi, and dawson. * libinterp/octave-value/ov-base.cc, libinterp/octave-value/ov-base.h: Add erfi and dawson mapper functions. * libinterp/octave-value/ov-complex.cc, libinterp/octave-value/ov-cx-mat.cc, libinterp/octave-value/ov-cx-sparse.cc, libinterp/octave-value/ov-float.cc, libinterp/octave-value/ov-flt-complex.cc, libinterp/octave-value/ov-flt-cx-mat.cc, libinterp/octave-value/ov-flt-re-mat.cc, libinterp/octave-value/ov-re-mat.c, libinterp/octave-value/ov-re-sparse.cc, libinterp/octave-value/ov-scalar.cc, libinterp/octave-value/ov.h: Support erf, erfc, erfcx, erfi, and dawson mapper functions for real and complex matrices and scalars. * liboctave/cruft/Faddeeva/Faddeeva.cc, liboctave/cruft/Faddeeva/Faddeeva.hh: liboctave/cruft/Faddeeva/module.mk, liboctave/cruft/Makefile.am: Add Faddeeva package (from http://ab-initio.mit.edu/Faddeeva) to libcruft, to provide the various complex-argument error functions. * liboctave/numeric/lo-specfun.cc, liboctave/numeric/lo-specfun.h: Add complex-argument erf, erfc, erfcx, erfi, and dawson functions to liboctave API. Delete previous real-argument erfcx implementation in favor of Faddeeva::erfcx (which seems to be slightly faster in gcc/x86-64 benchmarks, with similar accuracy). * doc/interpreter/arith.txi: Include erfi and dawson documentation.
author Steven G. Johnson <stevenj@alum.mit.edu>
date Tue, 27 Nov 2012 23:39:54 -0500
parents 03ef3a183129
children 6ea536cb7360 f96faf028d90
line wrap: on
line source

EXTRA_DIST += \
  octave-value/module.mk

OV_INTTYPE_INC = \
  octave-value/ov-base-int.h \
  octave-value/ov-base-int.cc \
  octave-value/ov-int-traits.h \
  octave-value/ov-int16.h \
  octave-value/ov-int32.h \
  octave-value/ov-int64.h \
  octave-value/ov-int8.h \
  octave-value/ov-intx.h \
  octave-value/ov-uint16.h \
  octave-value/ov-uint32.h \
  octave-value/ov-uint64.h \
  octave-value/ov-uint8.h

OV_SPARSE_INC = \
  octave-value/ov-base-sparse.h \
  octave-value/ov-bool-sparse.h \
  octave-value/ov-cx-sparse.h \
  octave-value/ov-re-sparse.h

OCTAVE_VALUE_INC = \
  octave-value/ov-base-diag.h \
  octave-value/ov-base-diag.cc \
  octave-value/ov-base-mat.h \
  octave-value/ov-base-mat.cc \
  octave-value/ov-base-scalar.h \
  octave-value/ov-base-scalar.cc \
  octave-value/ov-base.h \
  octave-value/ov-bool-mat.h \
  octave-value/ov-bool-mat.cc \
  octave-value/ov-bool.h \
  octave-value/ov-builtin.h \
  octave-value/ov-cell.h \
  octave-value/ov-ch-mat.h \
  octave-value/ov-class.h \
  octave-value/ov-colon.h \
  octave-value/ov-complex.h \
  octave-value/ov-cs-list.h \
  octave-value/ov-cx-diag.h \
  octave-value/ov-cx-mat.h \
  octave-value/ov-dld-fcn.h \
  octave-value/ov-fcn-handle.h \
  octave-value/ov-fcn-inline.h \
  octave-value/ov-fcn.h \
  octave-value/ov-float.h \
  octave-value/ov-flt-complex.h \
  octave-value/ov-flt-cx-diag.h \
  octave-value/ov-flt-cx-mat.h \
  octave-value/ov-flt-re-diag.h \
  octave-value/ov-flt-re-mat.h \
  octave-value/ov-lazy-idx.h \
  octave-value/ov-mex-fcn.h \
  octave-value/ov-null-mat.h \
  octave-value/ov-oncleanup.h \
  octave-value/ov-perm.h \
  octave-value/ov-range.h \
  octave-value/ov-re-diag.h \
  octave-value/ov-re-mat.h \
  octave-value/ov-scalar.h \
  octave-value/ov-str-mat.h \
  octave-value/ov-struct.h \
  octave-value/ov-type-conv.h \
  octave-value/ov-typeinfo.h \
  octave-value/ov-usr-fcn.h \
  octave-value/ov.h \
  $(OV_INTTYPE_INC) \
  $(OV_SPARSE_INC)

OV_INTTYPE_SRC = \
  octave-value/ov-int16.cc \
  octave-value/ov-int32.cc \
  octave-value/ov-int64.cc \
  octave-value/ov-int8.cc \
  octave-value/ov-uint16.cc \
  octave-value/ov-uint32.cc \
  octave-value/ov-uint64.cc \
  octave-value/ov-uint8.cc

OV_SPARSE_SRC = \
  octave-value/ov-base-sparse.cc \
  octave-value/ov-bool-sparse.cc \
  octave-value/ov-cx-sparse.cc \
  octave-value/ov-re-sparse.cc

OCTAVE_VALUE_SRC = \
  octave-value/ov-base.cc \
  octave-value/ov-bool-mat.cc \
  octave-value/ov-bool.cc \
  octave-value/ov-builtin.cc \
  octave-value/ov-cell.cc \
  octave-value/ov-ch-mat.cc \
  octave-value/ov-class.cc \
  octave-value/ov-colon.cc \
  octave-value/ov-complex.cc \
  octave-value/ov-cs-list.cc \
  octave-value/ov-cx-diag.cc \
  octave-value/ov-cx-mat.cc \
  octave-value/ov-dld-fcn.cc \
  octave-value/ov-fcn-handle.cc \
  octave-value/ov-fcn-inline.cc \
  octave-value/ov-fcn.cc \
  octave-value/ov-float.cc \
  octave-value/ov-flt-complex.cc \
  octave-value/ov-flt-cx-diag.cc \
  octave-value/ov-flt-cx-mat.cc \
  octave-value/ov-flt-re-diag.cc \
  octave-value/ov-flt-re-mat.cc \
  octave-value/ov-lazy-idx.cc \
  octave-value/ov-mex-fcn.cc \
  octave-value/ov-null-mat.cc \
  octave-value/ov-oncleanup.cc \
  octave-value/ov-perm.cc \
  octave-value/ov-range.cc \
  octave-value/ov-re-diag.cc \
  octave-value/ov-re-mat.cc \
  octave-value/ov-scalar.cc \
  octave-value/ov-str-mat.cc \
  octave-value/ov-struct.cc \
  octave-value/ov-typeinfo.cc \
  octave-value/ov-usr-fcn.cc \
  octave-value/ov.cc \
  $(OV_INTTYPE_SRC) \
  $(OV_SPARSE_SRC)

noinst_LTLIBRARIES += octave-value/liboctave-value.la

octave_value_liboctave_value_la_SOURCES = $(OCTAVE_VALUE_SRC)
octave_value_liboctave_value_la_CPPFLAGS = $(liboctinterp_la_CPPFLAGS)