error: '__sl_mb05nd__' undefined near line 30 column 20

Bug #1410542 reported by Aidan Macdonald
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
octave-control (Ubuntu)
New
Undecided
Unassigned

Bug Description

Below is information about my system and the commands leading to the bug. I don't know how to solve this one.

######### SYSTEM INFO #############

aidan@aidan-machine:~$ uname -a
Linux aidan-machine 3.16.0-28-generic #38-Ubuntu SMP Fri Dec 12 17:37:40 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
aidan@aidan-machine:~$ dpkg -l | grep octave
rc liboctave1:amd64 3.6.4-3 amd64 Shared libraries of the GNU Octave language
ii liboctave2:amd64 3.8.1-1ubuntu1 amd64 Shared libraries of the GNU Octave language
ii octave 3.8.1-1ubuntu1 amd64 GNU Octave language for numerical computations
ii octave-audio 1.1.4-4build1 amd64 functions to work with audio files in Octave
ii octave-common 3.8.1-1ubuntu1 all architecture-independent files for octave
ii octave-control 2.6.5-1 amd64 control functions for Octave from Octave-Forge
ii octave-general 1.3.4-1 amd64 provide extra general functions for Octave
ii octave-image 2.2.1-1 amd64 image manipulation for Octave
ii octave-io 2.0.2-1ubuntu1 amd64 input/output data functions for Octave
ii octave-signal 1.3.0-1 amd64 signal processing functions for Octave
ii octave-statistics 1.2.3-1 all additional statistical functions for Octave
ii octave-symbolic 1.1.0-2build1 amd64 symbolic package for Octave
aidan@aidan-machine:~$ dpkg -l | grep slicot
ii libslicot-dev:amd64 5.0+20101122-2 amd64 numerical algorithms from systems and control theory (static library)
ii libslicot0:amd64 5.0+20101122-2 amd64 numerical algorithms from systems and control theory (shared library)
aidan@aidan-machine:~$ lsb_release -a
LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:cxx-3.0-amd64:cxx-3.0-noarch:cxx-3.1-amd64:cxx-3.1-noarch:cxx-3.2-amd64:cxx-3.2-noarch:cxx-4.0-amd64:cxx-4.0-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-3.1-amd64:desktop-3.1-noarch:desktop-3.2-amd64:desktop-3.2-noarch:desktop-4.0-amd64:desktop-4.0-noarch:desktop-4.1-amd64:desktop-4.1-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.0-amd64:graphics-3.0-noarch:graphics-3.1-amd64:graphics-3.1-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch:graphics-4.1-amd64:graphics-4.1-noarch:languages-3.2-amd64:languages-3.2-noarch:languages-4.0-amd64:languages-4.0-noarch:languages-4.1-amd64:languages-4.1-noarch:multimedia-3.2-amd64:multimedia-3.2-noarch:multimedia-4.0-amd64:multimedia-4.0-noarch:multimedia-4.1-amd64:multimedia-4.1-noarch:printing-3.2-amd64:printing-3.2-noarch:printing-4.0-amd64:printing-4.0-noarch:printing-4.1-amd64:printing-4.1-noarch:qt4-3.1-amd64:qt4-3.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 14.10
Release: 14.10
Codename: utopic

## ######## REPEATABLE STEPS TO BUG ###############

aidan@aidan-machine:~$ octave
GNU Octave, version 3.8.1
Copyright (C) 2014 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. For details, type 'warranty'.

Octave was configured for "x86_64-pc-linux-gnu".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/get-involved.html

Read http://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> s = tf('s')

Transfer function 's' from input 'u1' to output ...

 y1: s

Continuous-time model.
octave:2> h = 1/((s-1)*(s-10))

Transfer function 'h' from input 'u1' to output ...

             1
 y1: ---------------
      s^2 - 11 s + 10

Continuous-time model.
octave:3> step(h)
error: '__sl_mb05nd__' undefined near line 30 column 20
error: called from:
error: /usr/share/octave/packages/control-2.6.5/@ss/__c2d__.m at line 30, column 18
error: /usr/share/octave/packages/control-2.6.5/@lti/c2d.m at line 82, column 7
error: /usr/share/octave/packages/control-2.6.5/__time_response__.m at line 111, column 7
error: /usr/share/octave/packages/control-2.6.5/step.m at line 89, column 10
octave:3>

Revision history for this message
Aidan Macdonald (aidan-plenert-macdonald) wrote :

I fixed it. The step function worked on my server which runs Trusty. I looked at the difference in files, and found that using a file from an older version of octave-control worked.

Specifically, my server had the following

aidan@aidan-server:~$ dpkg -l | grep octave-control
ii octave-control 2.6.2-1build1 amd64 control functions for Octave from Octave-Forge

Comparing the /usr/share/octave/packages/control-2.6.2/@ss/__c2d__.m file from my server (attached) with the /usr/share/octave/packages/control-2.6.5/@ss/__c2d__.m file from my machine

$ diff <files>
23c23
< ## Version: 0.5
---
> ## Version: 0.4
30,31c30,34
< [sys.a, tmp] = __sl_mb05nd__ (sys.a, tsam, eps);
< sys.b = tmp * sys.b; # G
---
> [n, m] = size (sys.b); # n: states, m: inputs
> ## TODO: use SLICOT MB05OD
> tmp = expm ([sys.a*tsam, sys.b*tsam; zeros(m, n+m)]);
> sys.a = tmp (1:n, 1:n); # F
> sys.b = tmp (1:n, n+(1:m)); # G

Noticing that the older version did not have the offending line, I simply copied the old version over into my system

sudo cp ./__c2d__.m.old /usr/share/octave/packages/control-2.6.5/@ss/__c2d__.m

And voila! It worked. Enjoy

Revision history for this message
Mike Miller (mtmiller) wrote :

Thanks for your bug report. This is actually a duplicate of bug #1403184 that you reported earlier. The missing function in question, __sl_mb05nd__, should be in the compiled oct-file __control_slicot_functions__.oct. When that file is properly compiled, the function will be found and there is no need to revert to an older function m-file.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.