The purpose of the patch is just to demonstrate that you can set up
a build environment and use the necessary tools such as svn, diff
etc.. The patch doesn't have to be elaborate, anything that shows
an ability to understand the relevant part of the code will do.
You could fix a compiler warning, or tackle one of the bugs in the
tracker e.g:
A simple division by zero error in libpano13:
http://sourceforge.net/tracker/?func=detail&aid=2002617&group_id=96188&atid=613954
A problem with lots of images in PTtiff2psd
http://sourceforge.net/tracker/?func=detail&aid=1923451&group_id=96188&atid=613954
PTmender has very bad handling of temporary files
http://sourceforge.net/tracker/?func=detail&aid=1897838&group_id=96188&atid=613954
A hugin gui layout bug:
http://sourceforge.net/tracker/?func=detail&aid=2686486&group_id=77506&atid=550441
nona opens unused files for no apparent reason:
http://sourceforge.net/tracker/?func=detail&aid=2166837&group_id=77506&atid=550441
Keyboard shortcuts don't work anymore in the Control Points tab:
http://sourceforge.net/tracker/?func=detail&aid=2125481&group_id=77506&atid=550441
--
Bruno
Joe Templeman wrote:
> How big/complex does the patch have to be to be considered
> seriously?
Bruno has given you some suggestion. What we will consider seriously,
and why:
<http://panospace.wordpress.com/2009/03/25/a-patch-the-first-milestone/>
good luck, and watch the clock.
Yuv
I'm currently working on a fix. Maybe it's not wise to do the same.
Guido
do you mean it is too difficult for a student, or are you worried about
duplicate effort?
no worries about duplicate efforts.
for you it is a bug hunt, for the students it is about showing us that
they can hack the code base. There is no requirement for the student
patch to be useful or to be applied to the code base when considering
them for GSoC.
Yuv
I also agree with Yuv, since we don't know who will solve it until it
is solved, it is not a bad idea to
have more than one person looking after it.
-dmg
On Wed, Mar 25, 2009 at 9:43 AM, Yuval Levy <goo...@levy.ch> wrote:
>
> for you it is a bug hunt, for the students it is about showing us that
> they can hack the code base. There is no requirement for the student
> patch to be useful or to be applied to the code base when considering
> them for GSoC.
--
--dmg
---
Daniel M. German
http://turingmachine.org
(This discussion should go into libpano, but there is also an issue
with hugin).
Hi Guido,
I am looking at your patch right now, and I see you changed some of
the computations. The biggest one I don't quite follow is:
replacing:
- C = cos(phi1) * cos(phi1) + 2.0 * n * sin(phi1);
with
+ C = 1.0 + Aux_sin_phi1 * Aux_sin_phi2;
I can try to follow the math but it is easier to ask you ;)
Also, with respect to making it rho0 a huge number instead of letting
the computation proceed with an INF value:
rho0 = ( (n != 0) ? (Aux_1 / n) : (1.7E+308) );
I would prefer we use INF and deal with that where appropriate, which
is the result of the calculation of the projection. Is hugin handling
INF properly? It might be a problem in hugin, not in libpano.
- twiceN = sin(phi1) + sin(phi2);
- n = twiceN /2.0;
- rho0 = sqrt(C - 2.0 * n * sin(phi0)) / n;
+ // precompute sinus functions
+ Aux_sin_phi0 = sin(phi0);
+ Aux_sin_phi1 = sin(phi1);
+ Aux_sin_phi2 = sin(phi2);
+ Aux_2N = Aux_sin_phi1 + Aux_sin_phi2;
+ n = Aux_2N / 2.0;
+
+ // C = cos(phi1) * cos(phi1) + 2.0 * n * sin(phi1);
+ // rho0 = sqrt(C - 2.0 * n * sin(phi0)) / n;
+ Aux_1 = (C - (Aux_2N * Aux_sin_phi0));
+ Aux_1 = ( (Aux_1 > 0) ? (sqrt(Aux_1)) : (0.0) );
+ rho0 = ( (n != 0) ? (Aux_1 / n) : (1.7E+308) );
+
--
--
Daniel M. German
http://turingmachine.org/
http://silvernegative.com/
dmg (at) uvic (dot) ca
replace (at) with @ and (dot) with .
--
Daniel M. German "Sooner or later all the peoples of the world,
without regard to the political system
under which they live,
will have to discover a way
Martin Luther King, jr. -> to live together in peace."
http://turingmachine.org/
http://silvernegative.com/
dmg (at) uvic (dot) ca
replace (at) with @ and (dot) with .
According to this:
http://en.wikipedia.org/wiki/Division_by_zero
It's well defined, and works as you would hope:
IEEE floating-point standard, supported by almost all modern processors, specifies that every floating point arithmetic operation, including division by zero, has a well-defined result. In IEEE 754 arithmetic, a ÷ 0 is positive infinity when a is positive, negative infinity when a is negative, and NaN (not a number) when a = 0. The infinity signs change when dividing by -0 instead. This is possible because in IEEE 754 there are two zero values, plus zero and minus zero, and thus no ambiguity.
BugBear
The isfinite() macro shall determine whether its argument has a finite
value (zero, subnormal, or normal, and not infinite or NaN). First, an
argument represented in a format wider than its semantic type is con‐
verted to its semantic type. Then determination is based on the type of
the argument.
-dmg