User:Andy1978: Difference between revisions

From Octave
Jump to navigation Jump to search
No edit summary
No edit summary
Line 34: Line 34:
  mtimes(num2cell(m,[1,2]){:})
  mtimes(num2cell(m,[1,2]){:})
  mtimes(s{:})
  mtimes(s{:})
== Tracking octave bugs with hg bisect==
I had a strange problem when loading gzip compressed ascii files in octave. It failed dependent on the integer values. After some stripping I made a minimalistic test script (min_testcase_fails.m) which always fails in a current dev (88616c872933):
fn="file2.txt"
fid = fopen (fn,"w");
fprintf(fid, "%i %i %i %i\n",639, 25, 160, 978160);
fprintf(fid, "%i %i %i %i\n",687, 25, 171, 978160);
fprintf(fid, "%i %i %i %i\n",663, 31, 173, 978161);
fprintf(fid, "%i %i %i %i\n",663, 15, 154, 978161);
fprintf(fid, "%i %i %i %i\n",655, 21, 151, 978161);
fclose(fid);
## gzip it!
fn_gz=strcat(fn, ".gz");
cmd=cstrcat("gzip ",fn," -c > ",fn_gz)
system(cmd);
c=load("file2.txt.gz")  #this fails in newer versions
If line 4 with "663, 15, 154, 978161" is changed to ""663, 16, 154, 978161", load works as expected. '''Strange, isn't it?'''
I also had an old build (dev ab1c6e6d1be6 from Sun Oct 28 21:48:02 2012) and "load" worked in this version.
=== Running bisect ===
I decided to make a fresh clone in a separate directory:
cd ~/src
hg clone http://www.octave.org/hg/octave octave-src
cd octave-src
hg bisect -b 88616c872933
hg bisect -g ab1c6e6d1be6
After this hg bisect uses a binary search strategy to test revisions:
Teste Änderungssatz 16428:f016a5342e19 (1380 Änderungssätze verbleiben, ~10 Tests)
So after checkout I had to compile the source tree (used ccache in the hope of faster checkout-compile cycles).
./bootstrap
cd .. && mkdir octave-build
export CXX="ccache g++"
export CC="ccache gcc"
../octave/configure
make -j 7
After compilation I tried my testscript min_testcase_fails.m:
./run-octave -q ../min_testcase_fails.m
cd ..
cd octave
hg bisect -g
I used [http://jordi.platinum.linux.pl/tmp/bisect-32818.sh Jordis bisect script for bug 32818] and modified it to my needs:

Revision as of 06:28, 2 August 2013


ToDo

Core

Forge

image

  • implement SURF, integralImage is cumsum(cumsum(a,1),2)
corner/cornermetric, harris

First post on mailing list in 12.01.2013 http://octave.1599824.n4.nabble.com/corner-cornermetric-equivalent-in-octave-td4648802.html

brainstorming

Snippets

chain matrix multiplication

a=[1 2; 3 4];
b=[4 2; 8 1];
c=[2 3; 1 -1];
m=cat(3,a,b,c);
s=cell(3,1);
s{1}=a;s{2}=b; s{3}=c;
a*b*c
s{1}*s{2}*s{3}
mtimes(num2cell(m,[1,2]){:})
mtimes(s{:})

Tracking octave bugs with hg bisect

I had a strange problem when loading gzip compressed ascii files in octave. It failed dependent on the integer values. After some stripping I made a minimalistic test script (min_testcase_fails.m) which always fails in a current dev (88616c872933):
fn="file2.txt"
fid = fopen (fn,"w");
fprintf(fid, "%i %i %i %i\n",639, 25, 160, 978160);
fprintf(fid, "%i %i %i %i\n",687, 25, 171, 978160);
fprintf(fid, "%i %i %i %i\n",663, 31, 173, 978161);
fprintf(fid, "%i %i %i %i\n",663, 15, 154, 978161);
fprintf(fid, "%i %i %i %i\n",655, 21, 151, 978161);
fclose(fid);
## gzip it!
fn_gz=strcat(fn, ".gz");
cmd=cstrcat("gzip ",fn," -c > ",fn_gz)
system(cmd);
c=load("file2.txt.gz")  #this fails in newer versions

If line 4 with "663, 15, 154, 978161" is changed to ""663, 16, 154, 978161", load works as expected. Strange, isn't it? I also had an old build (dev ab1c6e6d1be6 from Sun Oct 28 21:48:02 2012) and "load" worked in this version.

Running bisect

I decided to make a fresh clone in a separate directory:

cd ~/src
hg clone http://www.octave.org/hg/octave octave-src
cd octave-src
hg bisect -b 88616c872933
hg bisect -g ab1c6e6d1be6

After this hg bisect uses a binary search strategy to test revisions:

Teste Änderungssatz 16428:f016a5342e19 (1380 Änderungssätze verbleiben, ~10 Tests)

So after checkout I had to compile the source tree (used ccache in the hope of faster checkout-compile cycles).

./bootstrap
cd .. && mkdir octave-build
export CXX="ccache g++"
export CC="ccache gcc"
../octave/configure
make -j 7

After compilation I tried my testscript min_testcase_fails.m:

./run-octave -q ../min_testcase_fails.m

cd .. cd octave hg bisect -g


I used Jordis bisect script for bug 32818 and modified it to my needs: