<feed xmlns='http://www.w3.org/2005/Atom'>
<title>PROJ/src/conversions, branch 7.1.1</title>
<subtitle>Forked from https://github.com/OSGeo/PROJ</subtitle>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/'/>
<entry>
<title>Merge pull request #2144 from kbevers/proj_degree_inoutput</title>
<updated>2020-04-13T08:32:05+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2020-04-13T08:32:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=031b6ab95e4bedbf2f8f5d55407562b2b69ce98f'/>
<id>031b6ab95e4bedbf2f8f5d55407562b2b69ce98f</id>
<content type='text'>
Add proj_degree_input() and proj_degree_output()</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add proj_degree_input() and proj_degree_output()</pre>
</div>
</content>
</entry>
<entry>
<title>Add proj_degree_input() and proj_degree_output()</title>
<updated>2020-04-12T10:20:44+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2020-04-11T10:13:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=925ae56c40b0cfa7d861f55e4332cb5603168a2c'/>
<id>925ae56c40b0cfa7d861f55e4332cb5603168a2c</id>
<content type='text'>
Equivalent to proj_angular_input() and proj_angular_output() but
checking for degree units instead. proj_create_crs_to_crs() rarely, if
ever, returns pipelines that has radians as input or output so using
proj_angular_*() is not a useful check for io units of pipelines.

These two new functions should make life a bit easier for users that
generally store there angular coordinates in radians.

Closes #2027
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Equivalent to proj_angular_input() and proj_angular_output() but
checking for degree units instead. proj_create_crs_to_crs() rarely, if
ever, returns pipelines that has radians as input or output so using
proj_angular_*() is not a useful check for io units of pipelines.

These two new functions should make life a bit easier for users that
generally store there angular coordinates in radians.

Closes #2027
</pre>
</div>
</content>
</entry>
<entry>
<title>Inverse cart: speed-up computation by 33%</title>
<updated>2020-04-11T17:37:55+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-04-11T17:32:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=78c1df51e0621a4e0b2314f3af9478627e018db3'/>
<id>78c1df51e0621a4e0b2314f3af9478627e018db3</id>
<content type='text'>
Saves 2 sincos() and 1 atan2() calls.

With the following bench
```
 #include "proj.h"
 #include &lt;stdlib.h&gt;
 #include &lt;stdio.h&gt;
 #include &lt;string.h&gt;

int main(int argc, char* argv[])
{
    if( argc != 2 ) {
        fprintf(stderr, "Usage: bench_inv_cart fwd/inv\n");
        exit(1);
    }
    PJ* p = proj_create(0, "+proj=cart");
    const int dir = strcmp(argv[1], "inv") == 0 ? PJ_INV : PJ_FWD;
    PJ_COORD coord;
    if( dir == PJ_FWD )
    {
        coord.xyz.x = 3.14159/2;
        coord.xyz.y = 3.14159/2;
        coord.xyz.z = 100;
    }
    else
    {
        coord.xyz.x = 3e6;
        coord.xyz.y = 3e6;
        coord.xyz.z = 3e6;
    }
    for(int i = 0; i &lt; 10* 1024 * 1024; i++ )
    {
        proj_trans(p, dir, coord);
    }

    proj_destroy(p);
    return 0;
}
```

On Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Time before: 2.37s
Time after:  1.57s
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Saves 2 sincos() and 1 atan2() calls.

With the following bench
```
 #include "proj.h"
 #include &lt;stdlib.h&gt;
 #include &lt;stdio.h&gt;
 #include &lt;string.h&gt;

int main(int argc, char* argv[])
{
    if( argc != 2 ) {
        fprintf(stderr, "Usage: bench_inv_cart fwd/inv\n");
        exit(1);
    }
    PJ* p = proj_create(0, "+proj=cart");
    const int dir = strcmp(argv[1], "inv") == 0 ? PJ_INV : PJ_FWD;
    PJ_COORD coord;
    if( dir == PJ_FWD )
    {
        coord.xyz.x = 3.14159/2;
        coord.xyz.y = 3.14159/2;
        coord.xyz.z = 100;
    }
    else
    {
        coord.xyz.x = 3e6;
        coord.xyz.y = 3e6;
        coord.xyz.z = 3e6;
    }
    for(int i = 0; i &lt; 10* 1024 * 1024; i++ )
    {
        proj_trans(p, dir, coord);
    }

    proj_destroy(p);
    return 0;
}
```

On Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Time before: 2.37s
Time after:  1.57s
</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate proj_list_angular_units(). Follow-up of https://github.com/OSGeo/PROJ/pull/2065</title>
<updated>2020-03-17T11:03:09+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-03-17T11:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=ac37a9127a96175b38d0a2a693f1a6219d4180af'/>
<id>ac37a9127a96175b38d0a2a693f1a6219d4180af</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tag proj_list_units() as deprecated</title>
<updated>2020-03-13T10:45:47+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-03-13T10:24:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=2247841879faebe007ccade45d04027361d5d26c'/>
<id>2247841879faebe007ccade45d04027361d5d26c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>cart: Avoid discontinuity at poles in the inverse case</title>
<updated>2020-02-06T16:53:11+00:00</updated>
<author>
<name>Kristian Evers</name>
<email>kristianevers@gmail.com</email>
</author>
<published>2020-02-05T06:32:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=55112033a4131cc9e5a0f6b2a40cec555d87955a'/>
<id>55112033a4131cc9e5a0f6b2a40cec555d87955a</id>
<content type='text'>
This should avoid issues with numerical stability as uncovered in
https://github.com/OSGeo/PROJ/issues/1906.

Practically speaking this change isn't going to affect real life
scenarios since the position of the center of the Earth is rarely
expressed in geodetic coordinates.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should avoid issues with numerical stability as uncovered in
https://github.com/OSGeo/PROJ/issues/1906.

Practically speaking this change isn't going to affect real life
scenarios since the position of the center of the Earth is rarely
expressed in geodetic coordinates.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add +proj=set operation to set component(s) of a coordinate to a fixed value</title>
<updated>2020-01-28T20:46:47+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-01-28T20:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=4b7ec1a1822b808491fd4b675404a8259e9dc28f'/>
<id>4b7ec1a1822b808491fd4b675404a8259e9dc28f</id>
<content type='text'>
Fixes #1846
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #1846
</pre>
</div>
</content>
</entry>
<entry>
<title>unitconvert with mjd time format: avoid potential integer overflow</title>
<updated>2020-01-13T17:09:38+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2020-01-13T17:09:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=3f3af95e0a7f421c84617ce21a2bae1c01368397'/>
<id>3f3af95e0a7f421c84617ce21a2bae1c01368397</id>
<content type='text'>
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20072
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20072
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify verbosity level of some debug/trace messages</title>
<updated>2019-12-25T09:45:20+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2019-12-25T09:45:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=90875d7616facf04a1836be833fb810142f3d8e1'/>
<id>90875d7616facf04a1836be833fb810142f3d8e1</id>
<content type='text'>
- unitconvert, ell_set and helmert were using debug level, which is
  too verbose. Using trace instead
- proj_trans() was using trace to indicate the operation it selects.
  Changing it to debug
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- unitconvert, ell_set and helmert were using debug level, which is
  too verbose. Using trace instead
- proj_trans() was using trace to indicate the operation it selects.
  Changing it to debug
</pre>
</div>
</content>
</entry>
<entry>
<title>Various fixes/workarounds to make cppcheck 1.72 (Ubuntu 16.04) and HEAD/1.90dev happy (fixes #1648)</title>
<updated>2019-10-28T08:03:10+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2019-10-28T08:03:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=4330f9fa4391b4d39c52c972c75327ed2ba6ce33'/>
<id>4330f9fa4391b4d39c52c972c75327ed2ba6ce33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
