Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Horner and helmert #456

Merged
merged 27 commits into from
Dec 15, 2016
Merged

Horner and helmert #456

merged 27 commits into from
Dec 15, 2016

Commits on Nov 20, 2016

  1. Merge remote-tracking branch 'refs/remotes/OSGeo/master'

    Thomas Knudsen authored and Thomas Knudsen committed Nov 20, 2016
    Configuration menu
    Copy the full SHA
    ab89ac0 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'refs/remotes/OSGeo/master'

    Thomas Knudsen authored and Thomas Knudsen committed Nov 20, 2016
    Configuration menu
    Copy the full SHA
    beb97c9 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2016

  1. First steps

    Introducing the Horner polynomial evaluator also introduces the need for
    very long +init:tag arguments (a n'th order 2D polynomium has
    (n+1)(n+2)/2 coefficients, and n is typically in the range 5-10, i.e. up
    to around 60 coefficients for each polynomium, and there are 4 polynomia
    in a complete back/forward transformation set).
    
    Hence, in this commit, along with the first part of the Horner code, the
    code for reading +init files has been modified in a (for all practical
    purposes) backwards compatible way, by making it possible to introduce
    line continuations by escaping line breaks, i.e. preceding them with a
    backslash.
    
    An escaped line break works (as it would in TeX), by skipping all
    following whitespace, including interspersed #-comments. This simple
    extension makes it possible to create very long initialization elements
    without losing track of the structure (cf. s45b.pol and pj_init_test.c
    in the examples-directory for a demo).
    
    The s45b.pol file was created by hand-editing the output of the software
    doing the original constrained adjustment for the polynomial
    coefficients. The simple adding of the “skip following whitespace and
    comments” feature has made it possible to retain almost all metadata
    from the source material.
    
    This is considered very important, since 1) For the lack of a prior
    common file format for geodetic polynomial coefficients, there is a good
    chance that this will become THE standard, at least for the time being,
    and 2) Without the metadata represented, it will be very hard for a
    human to debug code involving a slightly misrepresented polynomium.
    
    Due to the current architecture of the pj_init.c code (mostly around the
    fill_buffer() function), it is next to impossible to implement the line
    continuation functionality in full generality. Hence, it has been
    necessary to limit this format extension to files smaller than 64 kB.
    Thomas Knudsen authored and Thomas Knudsen committed Nov 21, 2016
    Configuration menu
    Copy the full SHA
    34043e8 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2016

  1. Horner framework in place. Numeric bugs remain

    Getting ready for some consultancy with Karsten Engsager, who has
    maintained the original code for more than 2 decades.
    Thomas Knudsen authored and Thomas Knudsen committed Nov 22, 2016
    Configuration menu
    Copy the full SHA
    b7925ab View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2016

  1. Pipelining - lots of cleanup

    Thomas Knudsen authored and Thomas Knudsen committed Nov 25, 2016
    Configuration menu
    Copy the full SHA
    aab1f99 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2016

  1. Now works for roundtrip s45b->utm/etrs

    Thomas Knudsen authored and Thomas Knudsen committed Nov 27, 2016
    Configuration menu
    Copy the full SHA
    f92f364 View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2016

  1. Clean up of pj_fwd/inv/fwd3d/inv3d

    Thomas Knudsen authored and Thomas Knudsen committed Nov 29, 2016
    Configuration menu
    Copy the full SHA
    360dc00 View commit details
    Browse the repository at this point in the history
  2. Remove accidentally added file "pap"

    Thomas Knudsen authored and Thomas Knudsen committed Nov 29, 2016
    Configuration menu
    Copy the full SHA
    63ab6d4 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2016

  1. Remove accidentally added copy of PJ_cart.c

    Thomas Knudsen authored and Thomas Knudsen committed Nov 30, 2016
    Configuration menu
    Copy the full SHA
    9d8a944 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2016

  1. Workaround MSVC HUGE_VAL bug + eliminate nasty init:nnnn bug

    The line continuation format extension was misimplemented: The comment
    skipping logic was placed on the wrong side of a while loop
    Thomas Knudsen authored and Thomas Knudsen committed Dec 2, 2016
    Configuration menu
    Copy the full SHA
    24485a7 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2016

  1. Correction of spherical HEALpix test case

    The first HEALpix test case in nad/testvarious is clearly intended to
    invoke the spherical form of HEALpix.
    
    It does, however, specify the spheroid using the +a=1 size parameter,
    without specifying any shape parameter.
    
    But since +no_defs is not specified either, a shape parameter is picked
    up from the nad/proj_def.dat file (where ellps=WGS84 is given in the
    <general> section).
    
    For reasons that I fail to comprehend, it appears that this has not
    happened before I updated the pj_init code to support projection
    pipelines.
    
    I do, however, believe that the present behaviour is the correct one,
    and rather than retrohacking the pj_init code, to (incorrectly, I
    believe) reproduce the prior behaviour, I have corrected the test case
    invocation in nad/testvarious to specify the spheroid using the +R=1
    size parameter (which was already used in the following test case).
    Thomas Knudsen authored and Thomas Knudsen committed Dec 4, 2016
    Configuration menu
    Copy the full SHA
    53fce4b View commit details
    Browse the repository at this point in the history
  2. include syntax for horner.h in PJ_horner.c

    <horner.h> appears to work with  cmake build, but not with autotools
    Thomas Knudsen authored and Thomas Knudsen committed Dec 4, 2016
    Configuration menu
    Copy the full SHA
    372e3ac View commit details
    Browse the repository at this point in the history
  3. improve include guard for horner.h

    Thomas Knudsen authored and Thomas Knudsen committed Dec 4, 2016
    Configuration menu
    Copy the full SHA
    7aa148d View commit details
    Browse the repository at this point in the history
  4. Minor updates to Makefile.am and makefile.vc

    Thomas Knudsen authored and Thomas Knudsen committed Dec 4, 2016
    Configuration menu
    Copy the full SHA
    3093b70 View commit details
    Browse the repository at this point in the history
  5. no_defs added to the selftests of krovak+calcofi

    Thomas Knudsen authored and Thomas Knudsen committed Dec 4, 2016
    Configuration menu
    Copy the full SHA
    e6eb232 View commit details
    Browse the repository at this point in the history
  6. Force +R in calcofi selftest

    Thomas Knudsen authored and Thomas Knudsen committed Dec 4, 2016
    Configuration menu
    Copy the full SHA
    7b5a7a2 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2016

  1. Repair scaling of projections stomping on value of semimajor axis

    Thomas Knudsen authored and Thomas Knudsen committed Dec 6, 2016
    Configuration menu
    Copy the full SHA
    775f83e View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2016

  1. Workaround MSVC HUGE_VAL bug. Add horner reg.test

    Thomas Knudsen authored and Thomas Knudsen committed Dec 8, 2016
    Configuration menu
    Copy the full SHA
    c6bb011 View commit details
    Browse the repository at this point in the history
  2. Make paths in Horner selftest compatible with autotestsuite

    (Appveyor executes from proj.4 main directory, not from proj.4/src)
    Thomas Knudsen authored and Thomas Knudsen committed Dec 8, 2016
    Configuration menu
    Copy the full SHA
    ca6159f View commit details
    Browse the repository at this point in the history
  3. Another auto test system workaround

    (Windows builds use a different execution directory
    Thomas Knudsen authored and Thomas Knudsen committed Dec 8, 2016
    Configuration menu
    Copy the full SHA
    ca2031d View commit details
    Browse the repository at this point in the history
  4. Yeat another attempt at working around auto test trips

    Thomas Knudsen authored and Thomas Knudsen committed Dec 8, 2016
    Configuration menu
    Copy the full SHA
    aa4053c View commit details
    Browse the repository at this point in the history
  5. PJ_horner selftest now self-contained

    Thomas Knudsen authored and Thomas Knudsen committed Dec 8, 2016
    Configuration menu
    Copy the full SHA
    dfe9b19 View commit details
    Browse the repository at this point in the history
  6. Added mandatory whitespace in horner init string

    Thomas Knudsen authored and Thomas Knudsen committed Dec 8, 2016
    Configuration menu
    Copy the full SHA
    d2b5cd5 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2016

  1. pj_inv/inv3d error reporting+MSVC HUGE_VAL repair.

    The "return const err object" idiom (i.e.  const <type> err =
    {HUGE_VAL,...}; ...  if (bad) return err) is problematic to implement
    due to MSVC's misimplementation of HUGE_VAL as a non-const.
    
    Hence, we need to run-time initialize these. In the pj_inv functions,
    this was mistakenly done to the wrong object.
    
    For pj_fwdobs/invobs and the remaining part of the obs-based API, this
    is now worked around by providing functions returning a run time
    HUGE_VAL initialized PJ_OBS or PJ_COO resp.
    
    Obnoxious, but given MSVC's market penetration there is really not much
    else we can do.
    Thomas Knudsen authored and Thomas Knudsen committed Dec 13, 2016
    Configuration menu
    Copy the full SHA
    15bfdd4 View commit details
    Browse the repository at this point in the history
  2. Move contents of horner.h to PJ_horner.c

    As per a review comment by Kristian Evers, @kbevers
    Thomas Knudsen authored and Thomas Knudsen committed Dec 13, 2016
    Configuration menu
    Copy the full SHA
    4dceeda View commit details
    Browse the repository at this point in the history
  3. Minor corrections of major blunders

    Initializing after use in pj_fwd/pj_fwd3d. Forgotten #include horner.h
    in PJ_horner.c
    Thomas Knudsen authored and Thomas Knudsen committed Dec 13, 2016
    Configuration menu
    Copy the full SHA
    b4e5933 View commit details
    Browse the repository at this point in the history
  4. Remove horner.h from Makefile.am

    Thomas Knudsen authored and Thomas Knudsen committed Dec 13, 2016
    Configuration menu
    Copy the full SHA
    a25ea54 View commit details
    Browse the repository at this point in the history