* Bug #12221 fixed - fspec was not documented and there was an error message "undefin... 64/10364/4
Charlotte HECQUET [Thu, 31 Jan 2013 12:20:59 +0000 (13:20 +0100)]
Change-Id: I444ec1fc7425e59853af1f24ce2fc759c83842c5

scilab/CHANGES_5.4.X
scilab/modules/cacsd/help/en_US/fspec.xml [new file with mode: 0644]
scilab/modules/cacsd/macros/fspec.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_12221.dia.ref [new file with mode: 0644]
scilab/modules/cacsd/tests/nonreg_tests/bug_12221.tst [new file with mode: 0644]

index 6f91788..ddc6fba 100644 (file)
@@ -308,6 +308,8 @@ Bug fixes
 
 * Bug #12219 fixed - delete("all") does not recreate a basic axe within cleaned figure.
 
+* Bug #12221 fixed - fspec was not documented and there was an error message "undefined variable: Sl".
+
 * Bug #12232 fixed - There were several memleaks in various fillers.
 
 * Bug #12235 fixed - Matplot did not update on color_map change.
diff --git a/scilab/modules/cacsd/help/en_US/fspec.xml b/scilab/modules/cacsd/help/en_US/fspec.xml
new file mode 100644 (file)
index 0000000..f6c1b09
--- /dev/null
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) Scilab Enterprises - 2013 - Charlotte HECQUET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="fspec">
+    <refnamediv>
+        <refname>fspec</refname>
+        <refpurpose>spectral factorization of continuous time dynamical systems</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Calling Sequence</title>
+        <synopsis>gm=fspec(g)</synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>g</term>
+                <listitem>
+                    <para> a continuous time linear dynamical system.</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>gm</term>
+                <listitem>
+                    <para> a continuous time linear dynamical system.</para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection>
+        <title>Description</title>
+        <para>
+            returns <literal>gm</literal> with <literal>gm</literal> and <literal>gm^-1</literal> stable such that:
+        </para>
+        <programlisting role="no-scilab-exec"><![CDATA[
+g = gtild(gm)*gm
+ ]]></programlisting>
+        <para>
+            gtild(gm) returns a state-space representation of gm(-s)'.
+        </para> 
+        <para>
+            <literal>g</literal> is inversible.
+        </para>
+        <para>
+            Imaginary-axis poles are forbidden.
+        </para>
+        <para>
+            gtild(g)=g (poles and zeros of g are symetric wrt imaginary axis).
+        </para>
+        <para>
+            g(inf) is positive definite.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="example"><![CDATA[
+a=-1000;
+b=5;
+c=5;
+d=5;
+sl=syslin('c',a,b,c,d);
+fspec(sl)
+ ]]></programlisting>
+    </refsection>
+</refentry>
index 152e7fd..54b0f79 100644 (file)
@@ -29,7 +29,7 @@ function [gm]=fspec(g)
     error(msprintf(gettext("%s: Wrong type for argument #%d: In continuous time expected.\n"),"fspec",1))
   end
   flag=0;
-  if typeof(Sl)=='rational' then Sl=tf2ss(Sl),flag=1;end
+  if typeof(g)=='rational' then g=tf2ss(g),flag=1;end
   [r1,r,d]=dtsi(g),[a,b,c]=r(2:4),
   ari=a-b*inv(d)*c,
   rri=b*inv(d)*b',qri=-c'*inv(d)*c,
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_12221.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_12221.dia.ref
new file mode 100644 (file)
index 0000000..9c0d457
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12221 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12221
+//
+// <-- Short Description -->
+// fspec is not documented and there was an error message "undefined variable: Sl".
+a=-1000;
+b=5;
+c=5;
+d=5;
+sl=syslin('c',a,b,c,d);
+res=fspec(sl);
+ref=[-1000 5 2.2305056 2.236068 0];
+for i=1:5
+assert_checkalmostequal(ref(i),res(i+1));
+end
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_12221.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_12221.tst
new file mode 100644 (file)
index 0000000..264b685
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12221 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12221
+//
+// <-- Short Description -->
+// fspec is not documented and there was an error message "undefined variable: Sl".
+
+a=-1000;
+b=5;
+c=5;
+d=5;
+sl=syslin('c',a,b,c,d);
+res=fspec(sl);
+ref=[-1000 5 2.2305056 2.236068 0];
+for i=1:5
+assert_checkalmostequal(ref(i),res(i+1));
+end