annotate libinterp/corefcn/__pchip_deriv__.cc @ 33617:ec2635a02328 bytecode-interpreter tip

maint: Merge default to bytecode-interpreter.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 21 May 2024 18:29:03 +0200
parents 7d5a531a058a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
32632
2e484f9f1f18 maint: update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 32513
diff changeset
3 // Copyright (C) 2002-2024 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
25
21724
aba2e6293dd8 use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents: 21301
diff changeset
26 #if defined (HAVE_CONFIG_H)
21301
40de9f8f23a6 Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents: 21200
diff changeset
27 # include "config.h"
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
28 #endif
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
29
22322
93b3cdd36854 move most f77 function decls to separate header files
John W. Eaton <jwe@octave.org>
parents: 22133
diff changeset
30 #include "lo-slatec-proto.h"
93b3cdd36854 move most f77 function decls to separate header files
John W. Eaton <jwe@octave.org>
parents: 22133
diff changeset
31
15039
e753177cde93 maint: Move non-dynamically linked functions from DLD-FUNCTIONS/ to corefcn/ directory
Rik <rik@octave.org>
parents: 14846
diff changeset
32 #include "defun.h"
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
33 #include "error.h"
21100
e39e05d90788 Switch gripe_XXX to either err_XXX or warn_XXX naming scheme.
Rik <rik@octave.org>
parents: 21078
diff changeset
34 #include "errwarn.h"
20940
48b2ad5ee801 maint: Rename oct-obj.[cc|h] to ovl.[cc|h] for clarity.
Rik <rik@octave.org>
parents: 20853
diff changeset
35 #include "ovl.h"
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
36 #include "utils.h"
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
37 #include "f77-fcn.h"
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
38
31605
e88a07dec498 maint: Use macros to begin/end C++ namespaces.
Rik <rik@octave.org>
parents: 30888
diff changeset
39 OCTAVE_BEGIN_NAMESPACE(octave)
29958
32c3a5805893 move DEFUN and DEFMETHOD functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 29417
diff changeset
40
6945
6bbf56a9718a [project @ 2007-10-02 20:47:22 by jwe]
jwe
parents: 6549
diff changeset
41 // Wrapper for SLATEC/PCHIP function DPCHIM to calculate the derivates
6bbf56a9718a [project @ 2007-10-02 20:47:22 by jwe]
jwe
parents: 6549
diff changeset
42 // for piecewise polynomials.
6bbf56a9718a [project @ 2007-10-02 20:47:22 by jwe]
jwe
parents: 6549
diff changeset
43
15039
e753177cde93 maint: Move non-dynamically linked functions from DLD-FUNCTIONS/ to corefcn/ directory
Rik <rik@octave.org>
parents: 14846
diff changeset
44 DEFUN (__pchip_deriv__, args, ,
21966
112b20240c87 move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents: 21724
diff changeset
45 doc: /* -*- texinfo -*-
30888
32d2b6604a9f doc: Ensure documentation lists output argument when it exists for functions in libinterp/
Rik <rik@octave.org>
parents: 30689
diff changeset
46 @deftypefn {} {@var{d} =} __pchip_deriv__ (@var{x}, @var{y}, @var{dim})
21966
112b20240c87 move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents: 21724
diff changeset
47 Undocumented internal function.
112b20240c87 move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents: 21724
diff changeset
48 @end deftypefn */)
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
49 {
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
50 octave_value retval;
21078
49852ff04747 maint: Remove unnecessary declarations of retval.
Rik <rik@octave.org>
parents: 20940
diff changeset
51 int nargin = args.length ();
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
52
18112
b560bac0fca2 maint: Don't use space between 'args' and '(' when doing indexing.
Rik <rik@octave.org>
parents: 17787
diff changeset
53 bool rows = (nargin == 3 && args(2).uint_value () == 2);
8712
010e15c7be9a support pchip method in interp2
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
54
010e15c7be9a support pchip method in interp2
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
55 if (nargin >= 2)
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
56 {
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
57 if (args(0).is_single_type () || args(1).is_single_type ())
10154
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
58 {
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
59 FloatColumnVector xvec (args(0).float_vector_value ());
29961
7d6709900da7 eliminate octave:: namespace tags in DEFUN and DEFMETHOD and more
John W. Eaton <jwe@octave.org>
parents: 29958
diff changeset
60 F77_INT nx = to_f77_int (xvec.numel ());
14462
af552038cc52 Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14138
diff changeset
61 if (nx < 2)
20831
35241c4b696c eliminate return statements after calls to error
John W. Eaton <jwe@octave.org>
parents: 20232
diff changeset
62 error ("__pchip_deriv__: X must be at least of length 2");
14462
af552038cc52 Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14138
diff changeset
63
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
64 if (args(1).iscomplex ())
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
65 {
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
66 FloatComplexMatrix ymat (args(1).float_complex_matrix_value ());
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
67
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
68 octave_idx_type nyr = ymat.rows ();
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
69 octave_idx_type nyc = ymat.columns ();
5838
376e02b2ce70 [project @ 2006-06-01 20:23:53 by jwe]
jwe
parents: 5837
diff changeset
70
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
71 if (nx != (rows ? nyc : nyr))
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
72 error ("__pchip_deriv__: X and Y dimension mismatch");
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
73
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
74 FloatComplexMatrix dmat (nyr, nyc);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
75
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
76 F77_INT ierr;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
77 const F77_INT incfd = (rows ? to_f77_int (2*nyr) : 2);
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
78 const octave_idx_type inc = (rows ? 2 : 2*nyr);
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
79 octave_idx_type k = 0;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
80
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
81 for (octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
82 {
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
83 F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
32513
1de97b475564 maint: Add space " " between C++ cast and argument.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31706
diff changeset
84 reinterpret_cast<float const *> (ymat.data ()) + k * inc,
32660
f53ac65ffba6 maint: New method rwdata() as clearer alternative to fortran_vec().
Rik <rik@octave.org>
parents: 32632
diff changeset
85 reinterpret_cast<float *> (dmat.rwdata ()) + k * inc,
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
86 incfd, ierr));
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
87
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
88 if (ierr < 0)
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
89 error ("__pchip_deriv__: PCHIM failed for real part with ierr = %"
31607
aac27ad79be6 maint: Re-indent code after switch to using namespace macros.
Rik <rik@octave.org>
parents: 31605
diff changeset
90 OCTAVE_F77_INT_TYPE_FORMAT, ierr);
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
91
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
92 F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
32513
1de97b475564 maint: Add space " " between C++ cast and argument.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31706
diff changeset
93 reinterpret_cast<float const *> (ymat.data ()) + 1 + k * inc,
32660
f53ac65ffba6 maint: New method rwdata() as clearer alternative to fortran_vec().
Rik <rik@octave.org>
parents: 32632
diff changeset
94 reinterpret_cast<float *> (dmat.rwdata ()) + 1 + k * inc,
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
95 incfd, ierr));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
96
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
97 if (ierr < 0)
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
98 error ("__pchip_deriv__: PCHIM failed for imaginary part with ierr = %"
31607
aac27ad79be6 maint: Re-indent code after switch to using namespace macros.
Rik <rik@octave.org>
parents: 31605
diff changeset
99 OCTAVE_F77_INT_TYPE_FORMAT, ierr);
8712
010e15c7be9a support pchip method in interp2
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
100
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
101 k++;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
102 }
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
103
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
104 retval = dmat;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
105 }
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
106 else
10154
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
107 {
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
108 FloatMatrix ymat (args(1).float_matrix_value ());
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
109
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
110 octave_idx_type nyr = ymat.rows ();
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
111 octave_idx_type nyc = ymat.columns ();
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
112
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
113 if (nx != (rows ? nyc : nyr))
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
114 error ("__pchip_deriv__: X and Y dimension mismatch");
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
115
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
116 FloatMatrix dmat (nyr, nyc);
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
117
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
118 F77_INT ierr;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
119 const F77_INT incfd = (rows ? to_f77_int (nyr) : 1);
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
120 const octave_idx_type inc = (rows ? 1 : nyr);
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
121 octave_idx_type k = 0;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
122
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
123 for (octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
124 {
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
125 F77_XFCN (pchim, PCHIM, (nx, xvec.data (),
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
126 ymat.data () + k * inc,
32660
f53ac65ffba6 maint: New method rwdata() as clearer alternative to fortran_vec().
Rik <rik@octave.org>
parents: 32632
diff changeset
127 dmat.rwdata () + k * inc,
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
128 incfd, ierr));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
129
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
130 k++;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
131
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
132 if (ierr < 0)
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
133 error ("__pchip_deriv__: PCHIM failed with ierr = %"
31607
aac27ad79be6 maint: Re-indent code after switch to using namespace macros.
Rik <rik@octave.org>
parents: 31605
diff changeset
134 OCTAVE_F77_INT_TYPE_FORMAT, ierr);
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
135 }
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
136
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
137 retval = dmat;
10154
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
138 }
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
139 }
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
140 else
10154
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
141 {
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
142 ColumnVector xvec (args(0).vector_value ());
29961
7d6709900da7 eliminate octave:: namespace tags in DEFUN and DEFMETHOD and more
John W. Eaton <jwe@octave.org>
parents: 29958
diff changeset
143 F77_INT nx = to_f77_int (xvec.numel ());
14462
af552038cc52 Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14138
diff changeset
144 if (nx < 2)
20831
35241c4b696c eliminate return statements after calls to error
John W. Eaton <jwe@octave.org>
parents: 20232
diff changeset
145 error ("__pchip_deriv__: X must be at least of length 2");
14462
af552038cc52 Fix segfault in pchip when input array is too small (bug #35835).
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14138
diff changeset
146
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
147 if (args(1).iscomplex ())
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
148 {
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
149 ComplexMatrix ymat (args(1).complex_matrix_value ());
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
150
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
151 octave_idx_type nyr = ymat.rows ();
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
152 octave_idx_type nyc = ymat.columns ();
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
153
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
154 if (nx != (rows ? nyc : nyr))
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
155 error ("__pchip_deriv__: X and Y dimension mismatch");
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
156
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
157 ComplexMatrix dmat (nyr, nyc);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
158
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
159 F77_INT ierr;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
160 const F77_INT incfd = (rows ? to_f77_int (2*nyr) : 2);
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
161 const octave_idx_type inc = (rows ? 2 : 2*nyr);
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
162 octave_idx_type k = 0;
7789
82be108cc558 First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents: 7017
diff changeset
163
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
164 for (octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
165 {
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
166 F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
32513
1de97b475564 maint: Add space " " between C++ cast and argument.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31706
diff changeset
167 reinterpret_cast<double const *> (ymat.data ()) + k * inc,
32660
f53ac65ffba6 maint: New method rwdata() as clearer alternative to fortran_vec().
Rik <rik@octave.org>
parents: 32632
diff changeset
168 reinterpret_cast<double *> (dmat.rwdata ()) + k * inc,
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
169 incfd, ierr));
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
170
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
171 if (ierr < 0)
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
172 error ("__pchip_deriv__: DPCHIM failed for real part with ierr = %"
31607
aac27ad79be6 maint: Re-indent code after switch to using namespace macros.
Rik <rik@octave.org>
parents: 31605
diff changeset
173 OCTAVE_F77_INT_TYPE_FORMAT, ierr);
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
174
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
175 F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
32513
1de97b475564 maint: Add space " " between C++ cast and argument.
Markus Mützel <markus.muetzel@gmx.de>
parents: 31706
diff changeset
176 reinterpret_cast<double const *> (ymat.data ()) + 1 + k * inc,
32660
f53ac65ffba6 maint: New method rwdata() as clearer alternative to fortran_vec().
Rik <rik@octave.org>
parents: 32632
diff changeset
177 reinterpret_cast<double *> (dmat.rwdata ()) + 1 + k * inc,
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
178 incfd, ierr));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
179
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
180 if (ierr < 0)
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
181 error ("__pchip_deriv__: DPCHIM failed for imaginary part with ierr = %"
31607
aac27ad79be6 maint: Re-indent code after switch to using namespace macros.
Rik <rik@octave.org>
parents: 31605
diff changeset
182 OCTAVE_F77_INT_TYPE_FORMAT, ierr);
8712
010e15c7be9a support pchip method in interp2
Jaroslav Hajek <highegg@gmail.com>
parents: 7789
diff changeset
183
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
184 k++;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
185 }
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
186
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
187 retval = dmat;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
188 }
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
189 else
10154
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
190 {
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
191 Matrix ymat (args(1).matrix_value ());
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
192
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
193 octave_idx_type nyr = ymat.rows ();
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
194 octave_idx_type nyc = ymat.columns ();
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
195
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
196 if (nx != (rows ? nyc : nyr))
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
197 error ("__pchip_deriv__: X and Y dimension mismatch");
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
198
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
199 Matrix dmat (nyr, nyc);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
200
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
201 F77_INT ierr;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
202 const F77_INT incfd = (rows ? to_f77_int (nyr) : 1);
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
203 const octave_idx_type inc = (rows ? 1 : nyr);
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
204 octave_idx_type k = 0;
5838
376e02b2ce70 [project @ 2006-06-01 20:23:53 by jwe]
jwe
parents: 5837
diff changeset
205
33037
7d5a531a058a eliminate obsolete volatile declarations on integer variables (bug #65321)
John W. Eaton <jwe@octave.org>
parents: 32660
diff changeset
206 for (octave_idx_type i = (rows ? nyr : nyc); i > 0; i--)
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
207 {
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
208 F77_XFCN (dpchim, DPCHIM, (nx, xvec.data (),
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
209 ymat.data () + k * inc,
32660
f53ac65ffba6 maint: New method rwdata() as clearer alternative to fortran_vec().
Rik <rik@octave.org>
parents: 32632
diff changeset
210 dmat.rwdata () + k * inc,
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
211 incfd, ierr));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
212 k++;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
213
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
214 if (ierr < 0)
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
215 error ("__pchip_deriv__: DPCHIM failed with ierr = %"
31607
aac27ad79be6 maint: Re-indent code after switch to using namespace macros.
Rik <rik@octave.org>
parents: 31605
diff changeset
216 OCTAVE_F77_INT_TYPE_FORMAT, ierr);
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
217 }
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
218
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
219 retval = dmat;
10154
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
220 }
40dfc0c99116 DLD-FUNCTIONS/*.cc: untabify
John W. Eaton <jwe@octave.org>
parents: 8713
diff changeset
221 }
5837
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
222 }
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
223
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
224 return retval;
55404f3b0da1 [project @ 2006-06-01 19:05:31 by jwe]
jwe
parents:
diff changeset
225 }
12805
3641167e5b75 codesprint: *.cc helper functions do not need tests
Rik <octave@nomad.inbox5.com>
parents: 11586
diff changeset
226
3641167e5b75 codesprint: *.cc helper functions do not need tests
Rik <octave@nomad.inbox5.com>
parents: 11586
diff changeset
227 /*
30689
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
228 %!shared x, y
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
229 %! x = 0:3;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
230 %! y = x.^2 + 1i * x.^3;
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
231
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
232 %!test
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
233 %! d_complex = __pchip_deriv__ (x, y, 2);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
234 %! d_real = __pchip_deriv__ (x, real (y), 2);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
235 %! d_imag = __pchip_deriv__ (x, imag (y), 2);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
236 %! assert (real (d_complex), d_real);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
237 %! assert (imag (d_complex), d_imag);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
238
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
239 %!test
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
240 %! d_complex = __pchip_deriv__ (x.', y.');
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
241 %! d_real = __pchip_deriv__ (x.', real (y.'));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
242 %! d_imag = __pchip_deriv__ (x.', imag (y.'));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
243 %! assert (real (d_complex), d_real);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
244 %! assert (imag (d_complex), d_imag);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
245
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
246 %!test
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
247 %! d_complex = __pchip_deriv__ (single (x), single (y), 2);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
248 %! d_real = __pchip_deriv__ (single (x), real (single (y)), 2);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
249 %! d_imag = __pchip_deriv__ (single (x), imag (single (y)), 2);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
250 %! assert (real (d_complex), d_real);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
251 %! assert (imag (d_complex), d_imag);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
252
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
253 %!test
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
254 %! d_complex = __pchip_deriv__ (single (x'), single (y'));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
255 %! d_real = __pchip_deriv__ (single (x'), real (single (y')));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
256 %! d_imag = __pchip_deriv__ (single (x'), imag (single (y')));
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
257 %! assert (real (d_complex), d_real);
4b367bf5eb16 Fix __pchip_deriv__ for complex matrix (bug #61863, bug #61903)
Christof Kaufmann <christofkaufmann.dev@gmail.com>
parents: 30564
diff changeset
258 %! assert (imag (d_complex), d_imag);
12805
3641167e5b75 codesprint: *.cc helper functions do not need tests
Rik <octave@nomad.inbox5.com>
parents: 11586
diff changeset
259 */
29958
32c3a5805893 move DEFUN and DEFMETHOD functions inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 29417
diff changeset
260
31605
e88a07dec498 maint: Use macros to begin/end C++ namespaces.
Rik <rik@octave.org>
parents: 30888
diff changeset
261 OCTAVE_END_NAMESPACE(octave)