REEFS (#3) - source code (#13) - Message List

source code

Looks like a great work. Have you considered on publishing the changes you have made on vpm algorithm source code - like your implementation of multilevel

  • Message #11


    Do you mean publish the source code itself, or just describe how the multi-level is implemented ?

    I'm not likely to publish the source code at this time - some day I might publish the core algorithm implementation, but not at this time.

    As for describing how the multi-level is done, yes, I should do that - after all, it's one of the trickier parts of vpm/b that isn't shown in the original fortran implementation or really described anywhere as far as I've seen, and could be open for improvements/corrections.

    In short, there's two parts to it, normal ascending profiles and reverse/sawtooth;

    When dealing with ascending profiles, the time at a deco stop is simply extended to the next level's time. That part is pretty straight forward.

    In case of a reverse/sawtooth profile, once a descent to a deeper level is needed, an intermediate profile is computed (including CVA loop) as if the last processed level is the last level of the dive. This intermediate profile is then shown up to and including the last encountered level, after which a new descent is done to ensure all the vpm/b variables are accounted for, and then the algorithm is 'restarted' with the new loadings, max crushing pressure etc. This is then used to show the remaining part of the profile.

    Hope that made sense - I shouldn't be explaining this at 1:30am...


    • Message #12

      I have my own implementation of the first part (it is exactly what you described) - I do believe you have seen it - it is a part of VPMOpen 1.4. program. As for the second part I also have own implementation (the programming part is quite simple - it is just another loop within the repetitive dive loop - the tricky part is to figure ALL the parameters that needs to be restarted). I did not have the nerves to publish the second part since I was not sure of doing EVERYTHING right as I am for the first part.

      Why not publishing the sources?

      • Message #13

        I have actually not seen vpmopen before now - wonder how I could've missed that when I was searching around on vpm, seems like it must've been out back in 07/08. It seems like a likely candidate to become the first Android vpm planner :-)

        As for publishing sources ; well, after many years in open source development, I appreciate and understand the benefits of having code peer reviewed like only open source can do. But on the other hand, I'm trying to make a bit of income on Baltic, so giving it away isn't going to help there.

        I could give out just the vpm algorithm part and not all the UI/scaffolding code, that would essentially leave it uncompilable and useless, but at least it would open the algorithm implementation to examination. But as I said, not something I'm likely to do just yet.

        Now as for multilevel - yes, it's unfortunately not very well described anywhere. Actually some of the best description for the reverse profile I found were the comments in Erik Bakers fortran implementation. From that and from trying to wrap my brain around the algorithm, I ended up with just recomputing the max crushing pressure on a descent and resetting the allowable gradients to the initial allowable gradients.

        Do you feel that I missed something there ?


No attachments created.