annotate examples/standalonebuiltin.cc @ 17949:3341d2f1e5db

Document calling DEFUN functions in C++. * examples/standalonebuiltin.cc: new file. * doc/interpreter/external.txi: add a paragraph about calling DEFUN functions in C++.
author Carlo de Falco <cdf@users.sourceforge.net>
date Mon, 18 Nov 2013 09:23:15 +0100
parents
children adb7c7e6a4a1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17949
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
1 #include <iostream>
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
2 #include <octave/oct.h>
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
3 #include <octave/builtin-defun-decls.h>
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
4
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
5 int
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
6 main (void)
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
7 {
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
8
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
9 int n = 2;
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
10 Matrix a_matrix = Matrix (n, n);
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
11
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
12 for (octave_idx_type i = 0; i < n; i++)
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
13 for (octave_idx_type j = 0; j < n; j++)
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
14 a_matrix(i,j) = (i + 1) * 10 + (j + 1);
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
15
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
16 std::cout << "This is a matrix:"
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
17 << std::endl
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
18 << a_matrix
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
19 << std::endl;
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
20
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
21 octave_value_list in;
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
22 in(0) = a_matrix;
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
23
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
24 octave_value_list out = Fnorm (in, 1);
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
25 double norm_of_the_matrix = out(0).double_value ();
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
26
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
27 std::cout << "This is the norm of the matrix:"
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
28 << std::endl
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
29 << norm_of_the_matrix
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
30 << std::endl;
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
31
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
32 return 0;
3341d2f1e5db Document calling DEFUN functions in C++.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
33 }