User:KaKiLa: Difference between revisions

From Octave
Jump to navigation Jump to search
 
(64 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Personal Data =
[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 =
== test syntax highlight ==
{{Code|Loading the file as polygon compatible with geometry package|<syntaxhighlight lang="octave" style="font-size:13px">
function y = deserializeInt (data)
  y = bitpack (
        cell2mat(
              arrayfun(
                        @(x)bitget(x,1:8), data,
                        "UniformOutput", false
                      )
                )', "uint16");
  y = double (y);
endfunction
</syntaxhighlight>}}
= TODO list =
= TODO list =
* Write description of packages [[Geometry package]],[[Mechanics package]],[[Robotics package]].
== Geometry package ==
* Extend tutorial [[Geometry package]]
 
== 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.
 
== GPML ==
* 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>
* Create [https://bitbucket.org/KaKiLa/gpml repository] to keep scripts to package it for OF. <span style="color: green;">✔</span>
 
== make output format a valid input format ==
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 ==
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).
So, the first modification to the C++ code will be
# Check if any of the argument is a str.
# Check what kind of triangular matrix (up or low).
# 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 ==
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 ==
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].
* Start the API for [https://code.cor-lab.de/projects/rsb RSB].
* Build packages for [https://launchpad.net/~ubuntu-octave PPA].
== Octave - Forge ==
* quaternion_oo mpower.m
* Invite biomechanicist to put their code in biomechanics package.


=== Quaternion package ===
* quaternion mpower.m
=== Biomechanics ===
* <del> Ask [https://sites.google.com/site/systemsneurosciencegroup/people/stewart-heitmann Stewart Heitmann] to release under GPLv3.</del>
* Ask Andrea d'Avella to release under GPLv3 or equivalent. Waiting for answer. [[User:KaKiLa|KaKiLa]] 03:54, 9 March 2012 (PST)
==== Contents ====
* Muscle models
** Hill model.
** Voight model.
* Locomotion
** SLIP model, multiple generalized variables.
* Reaching
** Tendulum, tendon driven pendulum.


=== Robotics Toolbox ===
=== Robotics Toolbox ===
* Port [http://petercorke.com/Robotics_Toolbox.html Robotics Toolbox]. Started: [http://groups.google.com/group/robotics-tool-box/browse_thread/thread/3bc9c718a8d41f3f Google group].
[[Robotics_package]]
 
* Port [http://petercorke.com/Robotics_Toolbox.html Robotics Toolbox]. Started: [http://groups.google.com/group/robotics-tool-box/browse_thread/thread/3bc9c718a8d41f3f Google group]. Peter released an old version for Octave under GPLv3.
* Complete quaternion_oo wrapper.
* Complete quaternion_oo wrapper.
 
* Ask [http://www.cs.washington.edu/homes/todorov/software.html Emanuel Todorov] to release under GPLv3 or equivalent.
=== Matgeom ===
* [http://ai.stanford.edu/~mitul/mpk/ MPK] apparently is non-Free. Discussing.
Finish the port:
* polygons2d
* meshes
* polygons3d
 
=== Mechanics ===
* clean up structure.
* DMOC code generation.
* Improve verlet integrator. A odepkg compatible version?

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