On 5 Aug 2014, at 23:01, Jeremy Whitton
> Firstly, I've never contributed to a free software project before.
> I've recently been working with Matlab, and the code I'm using has dependencies on the integral2 function. Sadly, this function is unimplemented in octave, meaning I can't run it on my home computer, etc.. So on a whim, I've decided to try my hand at implementing it, as well as integral and integral3, since they are related.
> I think that the most reasonable way of implementing integral2 and integral3 is probably to use this code:
> It's licensed under the GPLv3, so no problems there.
> My reasoning for this is that integral2 and integral3 both support a "tiled" method, which seems to correspond to what this cubature code does.
> Things I will probably have trouble with:
> - Interfacing between the cubature code and the octave code. I've noticed that there is an octave_function class, which apparently represents octave function handles, used by quadcc. However, since the cubature code is written in C as opposed to C++, I'm not really sure how to go about using it. Should I make a C++ file as an intermediate? Should I attempt to convert the cubature code to C++ code?
> - Compiling. The makefile is massive and rather poorly commented, so I have no idea where I would put rules to ensure that the cubature code gets built correctly, and further how to build it in such a
way that its function is accessible to be called from the octave code.
> - General newbishness. My suggestions have probably broken a hundred rules already.
> I will say that I at least read the contributing guidelines in the documentation, so I have that going for me.
> Any help, advice, etc. is greatly appreciated.
> Jeremy Whitton
This topic has been already discussed here:https://savannah.gnu.org/bugs/?func=detailitem&item_id=42037
the functions "integral integral2 and integral3"
are not adding new functionality to Matlab, they're
just a change of name for
the previous funcions
named "quad", "dblquad", etc. ...
so there is not much programming involved in
implementing these functions in Octave, one should
just implement wrappers with the new names.
still this seems a good way to start for a first-time contributor.