User:KaKiLa: Difference between revisions

From Octave
Jump to navigation Jump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Personal Data =
= Personal Data =
[http://ailab.ifi.uzh.ch/carbajal/ Juan Pablo Carbajal]
[https://sites.google.com/site/juanpicarbajal/ Juan Pablo Carbajal]
 
= Tips and Tricks=
== Get file info when generate_html fails or warns==
Since generate_html gives errors about the random files generated, it is useless when debugging help text. The following command shows the first few lines of the files created by generate_html.
 
<pre> f_old=/tmp/$(ls -1 -t /tmp | head -1);while true; do f=/tmp/$(ls -1 -t /tmp | head -1); if [ "$f" != "$f_old" ]; then echo $f; grep '@def' --include="*octave-help*" $f; f_old=$f; fi; done</pre>
 
run this in a different terminal before using generate_html
is not ideal,but it does the trick
 
== Make options ==
Some options to pass to make when compiling from source
 
# <pre> DOC_TARGETS= </pre> avoids building the PDF but still builds function helps.
# <pre> --disable-atomic-refcount</pre> improves performance when building CLI only.
 
== Getting help from CLI==
# know the function --> <code>help function_name</code> or <code>help function_name</code>.
# Know what to do but not the function name --> <code>lookfor what_to_do</code>.
# Can't remember the fullname of a function (or have a guess) --> partial_name_of_function then press <TAB-key> twice
# Did it once but can't remeber --> <Ctrl>+<R> to search the history.


= Sketchpad =
= Sketchpad =
Line 21: Line 42:
</syntaxhighlight>}}
</syntaxhighlight>}}


== getting help ==
= TODO list =
# know the function --> <code>help function_name</code> or <code>help function_name</code>.  
== Geometry package ==
# Know what to do but not the function name --> <code>lookfor what_to_do</code>.
* Extend tutorial [[Geometry package]]
# Can't remember the fullname of a function (or have a guess) --> partial_name_of_function then press <TAB-key> twice
 
# Did it once but can't remeber --> <Ctrl>+<R> to search the history.
== Non-negative matrix factorization ==
* Add nmf_bpas and nmf-pg  to linear-algebra <span style="color: green;"></span>  
 
* Get [http://cogsys.imm.dtu.dk/toolbox/nmf/index.html nmf_toolbox] from DTU under free license. <span style="color: green;"></span>
** Add it to linear-algebra and create nnmf.m compatible with MATLAB calling all the methods.


= TODO list =
== GPML ==
* Write description of packages [[Geometry package]],[[Mechanics package]],[[Robotics package]].
* Asked for a GPLv3 version of [http://www.gaussianprocess.org/gpml/code/matlab/doc/index.html GPML]. They answer but license is FreeBSD. A new version is comming out in June 2012, so I will wait to start the port.<span style="color: green;">✔</span>
* Start the API for [https://code.cor-lab.de/projects/rsb RSB].
* Create [https://bitbucket.org/KaKiLa/gpml repository] to keep scripts to package it for OF. <span style="color: green;">✔</span>
=== Add remove option to autoload ===
[http://octave.1599824.n4.nabble.com/reverse-of-autoload-td4644524.html#a4644539 reverse autoload]


=== make output format a valid input format ===
== make output format a valid input format ==
An output format that prints valid input commands, so one can copy and re-execute the code.
An output format that prints valid input commands, so one can copy and re-execute the code.
From IRC
From IRC
Line 41: Line 64:
(04:57:31 PM) jwe: pr-output.cc and pr_as_read_syntax
(04:57:31 PM) jwe: pr-output.cc and pr_as_read_syntax


=== extend sub2ind and ind2sub ===
== extend sub2ind and ind2sub ==
We are extending sub2ind and ind2sub to work with triangular matrices. Currently private functions of {{Forge|mechanics}}.
We are extending sub2ind and ind2sub to work with triangular matrices. Currently private functions of {{Forge|mechanics}}.
A string argument triggers the behavior. The string argument can be "triu" or "tril". After this str argument we accept an extra scalar value indicating that the triangular matrix is off diagonal (as in tril and triu).
A string argument triggers the behavior. The string argument can be "triu" or "tril". After this str argument we accept an extra scalar value indicating that the triangular matrix is off diagonal (as in tril and triu).
Line 49: Line 72:
# If the argument after the str argument is a scalar, it indicates off diagonal triangular matrix (we do not have algo for that yet, though).
# If the argument after the str argument is a scalar, it indicates off diagonal triangular matrix (we do not have algo for that yet, though).


=== updating pkg.m ===
== updating pkg.m ==
Commands used with pkg
Commands used with pkg


     pkg install image-*
     pkg install image-*
-
     pkg load image
     pkg load image
-
     pkg unload image
     pkg unload image
-
     pkg uninstall image
     pkg uninstall image
-
     pkg install -forge image
     pkg install -forge image
-
     pkg install -verbose -forge -nodeps signal
     pkg install -verbose -forge -nodeps signal
     pkg install struct-old.tar.gz
     pkg install struct-old.tar.gz
-
     pkg update struct
     pkg update struct
-
     pkg update
     pkg update
-
     pkg load all
     pkg load all
-
     pkg unload all
     pkg unload all
-
     pkg list
     pkg list
     installed_packages = pkg ("list")
     installed_packages = pkg ("list")
-
     [user_packages, system_packages] = pkg ("list")
     [user_packages, system_packages] = pkg ("list")
-   
     oct_forge_pkgs = pkg ("list", "-forge")
     oct_forge_pkgs = pkg ("list", "-forge")
-   
     pkg describe image
     pkg describe image
-
     pkg describe -verbose image  
     pkg describe -verbose image  
-
     pkg describe -verbose all  
     pkg describe -verbose all  
-   
     desc = pkg ("describe", "signal", "image")
     desc = pkg ("describe", "signal", "image")
-   
     [desc, flag] = pkg ("describe", "signal", "image")
     [desc, flag] = pkg ("describe", "signal", "image")
-   
     pkg prefix
     pkg prefix
-   
     pkg prefix /tmp
     pkg prefix /tmp
-
     pfx = pkg ("prefix")
     pfx = pkg ("prefix")
-
     pkg prefix /tmp /tmp
     pkg prefix /tmp /tmp
-
     pfx = pkg ("prefix")
     pfx = pkg ("prefix")
-
     pkg build -verbose /tmp image-*
     pkg build -verbose /tmp image-*
-
     pkg rebuild signal
     pkg rebuild signal
-
     pkg local_db /tmp/.octave_packages.db
     pkg local_db /tmp/.octave_packages.db
-
     pkg local_db
     pkg local_db
-
     pkg global_db /tmp/.octave_packages.db
     pkg global_db /tmp/.octave_packages.db
-
     pkg global_db
     pkg global_db
-
     pkg whereis rgbplot
     pkg whereis rgbplot
-
     pkg whereis -forge rgbplot
     pkg whereis -forge rgbplot
-
     pkg install -url "http://users.elis.ugent.be/~jcarbaja/DRD/DRD_files/" drd-1.1.0.tar.gz
     pkg install -url "http://users.elis.ugent.be/~jcarbaja/DRD/DRD_files/" drd-1.1.0.tar.gz
-


== Octave - Forge ==
 
== real2rgb ==
Porting the package.
May be good to port [http://www.mathworks.com/matlabcentral/fileexchange/16233-sc-powerful-image-rendering SC] as well
 
== EPA software suite ==
Create native interfaces to the EPA software suites
[[See this group https://github.com/OpenWaterAnalytics]]
 
=== SWMM ===
* [https://www.epa.gov/water-research/storm-water-management-model-swmm Official page]
* Check work done in [https://github.com/water-systems/MatSWMM MatSWMM] [http://digital.csic.es/bitstream/10261/132982/1/MatSWMM.pdf article]
 
=== EPANET ===
* [https://www.epa.gov/water-research/epanet Official page]
 
== Old projects ==
* Write description of packages [[Mechanics package]],[[Robotics package]].
* Start the API for [https://code.cor-lab.de/projects/rsb RSB].
 
=== Quaternion package ===
* quaternion mpower.m
* quaternion mpower.m


=== Non-negative matrix factorization ===
* Add nmf_bpas and nmf-pg  to linear-algebra <span style="color: green;">✔</span>
* Get [http://cogsys.imm.dtu.dk/toolbox/nmf/index.html nmf_toolbox] from DTU under free license. <span style="color: green;">✔</span>
** Add it to linear-algebra and create nnmf.m compatible with MATLAB calling all the methods.
=== Biomechanics ===
=== Biomechanics ===
* <del> Ask [https://sites.google.com/site/systemsneurosciencegroup/people/stewart-heitmann Stewart Heitmann] to release under GPLv3.</del>
* <del> Ask [https://sites.google.com/site/systemsneurosciencegroup/people/stewart-heitmann Stewart Heitmann] to release under GPLv3.</del>
Line 151: Line 155:
* Ask [http://www.cs.washington.edu/homes/todorov/software.html Emanuel Todorov] to release under GPLv3 or equivalent.
* Ask [http://www.cs.washington.edu/homes/todorov/software.html Emanuel Todorov] to release under GPLv3 or equivalent.
* [http://ai.stanford.edu/~mitul/mpk/ MPK] apparently is non-Free. Discussing.
* [http://ai.stanford.edu/~mitul/mpk/ MPK] apparently is non-Free. Discussing.
=== Matgeom ===
[[Geometry_package]]
Working on '''graphs''':
* Porting. <span style="color: green;">✔</span>
* Write demos.
Finish the port:
* polygons2d
* meshes
* polygons3d
Development:
* iscw and isccw
* cw2ccw and ccw2cw
=== Mechanics ===
[[Mechanics_package]]
* Consider multiple makefiles. Look how it was done in [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/instrument-control/src/ instrument-control]
* DMOC code generation.
* Improve verlet integrator. A odepkg compatible version?
=== TISEAN ===
* Start port of [http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/index.html TISEAN].
=== Gaussian Processes ===
* Asked for a GPLv3 version of [http://www.gaussianprocess.org/gpml/code/matlab/doc/index.html GPML]. They answer but license is FreeBSD. A new version is comming out in June 2012, so I will wait to start the port.
=== real2rgb ===
Porting the package.
May be good to port [http://www.mathworks.com/matlabcentral/fileexchange/16233-sc-powerful-image-rendering SC] as well

Latest revision as of 01:02, 14 August 2017

Personal Data[edit]

Juan Pablo Carbajal

Tips and Tricks[edit]

Get file info when generate_html fails or warns[edit]

Since generate_html gives errors about the random files generated, it is useless when debugging help text. The following command shows the first few lines of the files created by generate_html.

 f_old=/tmp/$(ls -1 -t /tmp | head -1);while true; do f=/tmp/$(ls -1 -t /tmp | head -1); if [ "$f" != "$f_old" ]; then echo $f; grep '@def' --include="*octave-help*" $f; f_old=$f; fi; done

run this in a different terminal before using generate_html is not ideal,but it does the trick

Make options[edit]

Some options to pass to make when compiling from source

  1.  DOC_TARGETS= 
    avoids building the PDF but still builds function helps.
  2.  --disable-atomic-refcount
    improves performance when building CLI only.

Getting help from CLI[edit]

  1. know the function --> help function_name or help function_name.
  2. Know what to do but not the function name --> lookfor what_to_do.
  3. Can't remember the fullname of a function (or have a guess) --> partial_name_of_function then press <TAB-key> twice
  4. Did it once but can't remeber --> <Ctrl>+<R> to search the history.

Sketchpad[edit]

test syntax highlight[edit]

Code: Loading the file as polygon compatible with geometry package
function y = deserializeInt (data)

  y = bitpack (
        cell2mat(
               arrayfun(
                        @(x)bitget(x,1:8), data,
                        "UniformOutput", false
                       )
                )', "uint16");

  y = double (y);

endfunction

TODO list[edit]

Geometry package[edit]

Non-negative matrix factorization[edit]

  • Add nmf_bpas and nmf-pg to linear-algebra
  • Get nmf_toolbox from DTU under free license.
    • Add it to linear-algebra and create nnmf.m compatible with MATLAB calling all the methods.

GPML[edit]

  • Asked for a GPLv3 version of GPML. They answer but license is FreeBSD. A new version is comming out in June 2012, so I will wait to start the port.
  • Create repository to keep scripts to package it for OF.

make output format a valid input format[edit]

An output format that prints valid input commands, so one can copy and re-execute the code. From IRC

(04:57:05 PM) jwe: It might not be too hard to implement what you want. There is a flag in the pr-output functions for pr_as_read_format and many (but probably not all) of the types that are printed there do something with that. And it is not hooked in to the format function, so you can't enable it.

(04:57:31 PM) jwe: pr-output.cc and pr_as_read_syntax

extend sub2ind and ind2sub[edit]

We are extending sub2ind and ind2sub to work with triangular matrices. Currently private functions of mechanics. A string argument triggers the behavior. The string argument can be "triu" or "tril". After this str argument we accept an extra scalar value indicating that the triangular matrix is off diagonal (as in tril and triu). So, the first modification to the C++ code will be

  1. Check if any of the argument is a str.
  2. Check what kind of triangular matrix (up or low).
  3. If the argument after the str argument is a scalar, it indicates off diagonal triangular matrix (we do not have algo for that yet, though).

updating pkg.m[edit]

Commands used with pkg

   pkg install image-*
   pkg load image
   pkg unload image
   pkg uninstall image
   pkg install -forge image
   pkg install -verbose -forge -nodeps signal
   pkg install struct-old.tar.gz
   pkg update struct
   pkg update
   pkg load all
   pkg unload all
   pkg list
   installed_packages = pkg ("list")
   [user_packages, system_packages] = pkg ("list")
   oct_forge_pkgs = pkg ("list", "-forge")
   pkg describe image
   pkg describe -verbose image 
   pkg describe -verbose all 
   desc = pkg ("describe", "signal", "image")
   [desc, flag] = pkg ("describe", "signal", "image")
   pkg prefix
   pkg prefix /tmp
   pfx = pkg ("prefix")
   pkg prefix /tmp /tmp
   pfx = pkg ("prefix")
   pkg build -verbose /tmp image-*
   pkg rebuild signal
   pkg local_db /tmp/.octave_packages.db
   pkg local_db
   pkg global_db /tmp/.octave_packages.db
   pkg global_db
   pkg whereis rgbplot
   pkg whereis -forge rgbplot
   pkg install -url "http://users.elis.ugent.be/~jcarbaja/DRD/DRD_files/" drd-1.1.0.tar.gz


real2rgb[edit]

Porting the package. May be good to port SC as well

EPA software suite[edit]

Create native interfaces to the EPA software suites See this group https://github.com/OpenWaterAnalytics

SWMM[edit]

EPANET[edit]

Old projects[edit]

Quaternion package[edit]

  • quaternion mpower.m

Biomechanics[edit]

  • Ask Stewart Heitmann to release under GPLv3.
  • Ask Andrea d'Avella to release under GPLv3 or equivalent. Waiting for answer. KaKiLa 03:54, 9 March 2012 (PST)

Contents[edit]

  • Muscle models
    • Hill model.
    • Voight model.
  • Locomotion
    • SLIP model, multiple generalized variables.
  • Reaching
    • Tendulum, tendon driven pendulum.

Robotics Toolbox[edit]

Robotics_package