Mercurial > hg > what-is-octave
annotate FEMTEC2013/examples/dld.cc @ 8:50abddcc3409 default tip
Presentation delivered by cdf at OctConf 2013.
author | Carlo de Falco <cdf@users.sourceforge.net> |
---|---|
date | Mon, 22 Jul 2013 21:54:27 +0200 |
parents | 60233b0075a9 |
children |
rev | line source |
---|---|
4
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
1 #include <octave/oct.h> |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
2 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
3 DEFUN_DLD(dld,args,nargout,"dld (array) \nreturn the elements of the array in reverse order\n") |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
4 { |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
5 octave_value_list retval; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
6 int nargin = args.length (); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
7 |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
8 if (nargin != 1) |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
9 print_usage (); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
10 else |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
11 { |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
12 Array<double> a = args(0).array_value (); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
13 if (! error_state) |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
14 { |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
15 Array<double> b (a); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
16 double* ap = a.fortran_vec (); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
17 double* bp = b.fortran_vec (); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
18 for (octave_idx_type i = a.numel () - 1, j = 0; i >= 0; i--, j++) |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
19 bp[i] = ap[j]; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
20 retval = octave_value (b); |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
21 } |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
22 } |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
23 return retval; |
0a1567794b40
[mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff
changeset
|
24 } |