changeset 16481:27a6bb1a2f74 stable

Backport working embedded.cc example for documentation. * doc/interpreter/dynamic.txi: Change documented output of embedded.cc to match new output. * examples/embedded.cc: Backported from 3.7.2+. Does not call gcd() with a matrix input which is unsupported.
author Rik <rik@octave.org>
date Tue, 09 Apr 2013 16:06:29 -0700
parents 40e34895a987
children 84873dc19757 f441dc7d1afd
files doc/interpreter/dynamic.txi examples/embedded.cc
diffstat 2 files changed, 13 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/doc/interpreter/dynamic.txi
+++ b/doc/interpreter/dynamic.txi
@@ -1719,7 +1719,7 @@
 @group
 $ mkoctfile --link-stand-alone embedded.cc -o embedded
 $ ./embedded
-GCD of [10, 15] is 5
+GCD of [5, 10] is 5
 $
 @end group
 @end example
--- a/examples/embedded.cc
+++ b/examples/embedded.cc
@@ -10,33 +10,24 @@
   argv(0) = "embedded";
   argv(1) = "-q";
 
-  octave_main (2, argv.c_str_vec(), 1);
+  octave_main (2, argv.c_str_vec (), 1);
 
   octave_idx_type n = 2;
-  Matrix a_matrix = Matrix (1, 2);
+  octave_value_list in;
 
-  std::cout << "GCD of [";
-  for (octave_idx_type i = 0; i < n; i++)
-    {
-      a_matrix (i) = 5 * (i + 1);
-      if (i != 0)
-        std::cout << ", " << 5 * (i + 2);
-      else
-        std::cout << 5 * (i + 2);
-    }
-  std::cout << "] is ";
-
-  octave_value_list in = octave_value (a_matrix);
+  for (octave_idx_type i = 0; i < n; i++)  
+    in(i) = octave_value (5 * (i + 1));
+  
   octave_value_list out = feval ("gcd", in, 1);
 
+  
   if (!error_state && out.length () > 0)
-    {
-      a_matrix = out(0).matrix_value ();
-      if (a_matrix.numel () == 1)
-        std::cout << a_matrix(0) << "\n";
-      else
-        std::cout << "invalid\n";
-    }
+    std::cout << "GCD of [" 
+              << in(0).int_value () 
+              << ", " 
+              << in(1).int_value ()
+              << "] is " << out(0).int_value () 
+              << std::endl;
   else
     std::cout << "invalid\n";