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

Add "sisd" to NearestNeighbor_unseq #739

Merged
merged 366 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
366 commits
Select commit Hold shift + click to select a range
d38f822
use std::as_bytes()
Sep 5, 2023
6d903d4
more use of AMP8I_PHS8I_t rather than std::pair<uint8_t, uint8_t>
Sep 5, 2023
74be8b8
use fromComplex overload returning a std::vector
Sep 5, 2023
b0fcad4
cx_float -> zfloat
Sep 5, 2023
ec07103
getPhase() utility routine
Sep 5, 2023
b1bc7e9
separate nearest_neighbors() member function not needed
Sep 5, 2023
a35af9e
std::complex<long double> -> six::zfloat
Sep 6, 2023
37e8dc0
Merge branch 'main' into feature/8AMPI_PHSI
Sep 8, 2023
08893ba
Merge branch 'main' into cpp17
Sep 12, 2023
d8c65b2
Merge commit '485a1e7f539759f8f44fecce51ac96fe219ce73f' into cpp17
Sep 12, 2023
485a1e7
Squashed 'externals/coda-oss/' changes from a8c5a3b2b..14f0b1545
Sep 12, 2023
542c149
Squashed 'externals/nitro/' changes from 331deafa2..732538e80
Sep 12, 2023
9359689
Merge commit '542c149f342f0ecc93adeb57a461ab718ed8a688' into cpp17
Sep 12, 2023
0d4cbfc
Merge branch 'main' into cpp17
Oct 2, 2023
c0198c1
Merge commit '8f4f58cb2b7bb9224f0e8612dc72b75650fccca5' into cpp17
Oct 2, 2023
8f4f58c
Squashed 'externals/coda-oss/' changes from 14f0b1545..70a006d8a
Oct 2, 2023
34a50a6
Squashed 'externals/nitro/' changes from 732538e80..ff335eeaf
Oct 2, 2023
7c13e74
Merge commit '34a50a6daa874de462a5b0717d313687a298c70d' into cpp17
Oct 2, 2023
b20a342
Merge branch 'main' into cpp17
Oct 2, 2023
7ebf906
Merge branch 'main' into cpp17
Oct 9, 2023
d470acb
latest from CODA-OSS
Oct 9, 2023
06f7264
Merge commit '4c192d86c56bc9eec85d09fa5bbcc79eef95f08e' into cpp17
Oct 9, 2023
4c192d8
Squashed 'externals/coda-oss/' changes from 70a006d8a..b6ead418c
Oct 9, 2023
1c7e9c4
sync_externals
Oct 9, 2023
e6d04c2
Merge branch 'main' into cpp17
Oct 9, 2023
9bfa8ff
Merge branch 'main' into cpp17
Oct 10, 2023
a1e1e4f
Merge commit 'f70cd404cac37e8e033062f07d3a6c6b7a68cddc' into cpp17
Oct 10, 2023
f70cd40
Squashed 'externals/coda-oss/' changes from b6ead418c..434b85fe5
Oct 10, 2023
a6083af
Squashed 'externals/nitro/' changes from ff335eeaf..cca11bf4c
Oct 10, 2023
e3cd46a
Merge commit 'a6083afc6cc8a8686a1ced16dad8bb8159835488' into cpp17
Oct 10, 2023
527fa59
sync_externals
Oct 10, 2023
760572b
Merge commit '1cf34e04989f885727aa9db84b9463c4c5ab081c' into cpp17
Oct 10, 2023
1cf34e0
Squashed 'externals/coda-oss/' changes from 434b85fe5..dee001e71
Oct 10, 2023
0afe9b2
Merge branch 'main' into cpp17
Oct 23, 2023
ef20017
latest from CODA-OSS
Oct 23, 2023
f656bb8
Merge commit '19a83ddefcb686a4e69c6eeb51e284a747318d1d' into cpp17
Oct 23, 2023
19a83dd
Squashed 'externals/coda-oss/' changes from dee001e71..eb60210ff
Oct 23, 2023
ec67bc9
latest from CODA-OSS
Nov 3, 2023
3be18c4
add config.h files
Nov 3, 2023
0afc692
Merge commit '6c126a1d41d67556cd8ed7ffea2944fca5da1ab0' into cpp17
Nov 3, 2023
6c126a1
Squashed 'externals/coda-oss/' changes from eb60210ff..e573adb32
Nov 3, 2023
69b472a
Squashed 'externals/nitro/' changes from cca11bf4c..80a517fcb
Nov 3, 2023
57f38c3
Merge commit '69b472af597dcf8ef2357ed29dfa46cc293d0bea' into cpp17
Nov 3, 2023
2dffebb
Merge branch 'main' into cpp17
Nov 6, 2023
fdba8f7
sync_externals
Nov 6, 2023
c8737b8
latest from CODA-OSS
Nov 6, 2023
da19f02
Merge commit 'c23e4a3c37137817b18fcf62f6e1902275cddf5f' into cpp17
Nov 6, 2023
c23e4a3
Squashed 'externals/coda-oss/' changes from e573adb32..8b21c3828
Nov 6, 2023
8420775
Squashed 'externals/nitro/' changes from 80a517fcb..9618cb382
Nov 6, 2023
e5c393e
Merge commit '84207751120a9a606bbccc4bc759634b0a01377c' into cpp17
Nov 6, 2023
43f9d1e
Merge branch 'main' into cpp17
Nov 6, 2023
cec9030
Merge branch 'main' into cpp17
Nov 13, 2023
20ec838
latest from CODA-OSS and NITRO
Nov 13, 2023
6fed8e8
Merge commit '318c01cb41469846e4ab2da167a3f43d67192295' into cpp17
Nov 13, 2023
318c01c
Squashed 'externals/coda-oss/' changes from 8b21c3828..5015192ab
Nov 13, 2023
b60fb0a
Squashed 'externals/nitro/' changes from 9618cb382..c899f14ad
Nov 13, 2023
af9387c
Merge commit 'b60fb0abcbc5c9e0e6b5d82eaab219a8d7ad02a6' into cpp17
Nov 13, 2023
2442483
Merge branch 'main' into cpp17
Nov 14, 2023
366e836
latest from CODA-OSS
Nov 14, 2023
d663fba
Merge commit 'b7fd174f9329afaedac03618cd9e95074dca5f19' into cpp17
Nov 14, 2023
b7fd174
Squashed 'externals/coda-oss/' changes from 5015192ab..77cc841ae
Nov 14, 2023
fc2c2c5
Merge branch 'main' into cpp17
Nov 14, 2023
e20bce4
Merge branch 'main' into cpp17
Nov 15, 2023
13fa42e
Squashed commit of the following:
Nov 15, 2023
eda269a
latest from CODA-OSS and NITRO
Nov 15, 2023
5245473
Merge commit '6f8d6ae30e2484e55e9877564eccacb1b12830e9' into cpp17
Nov 15, 2023
6f8d6ae
Squashed 'externals/coda-oss/' changes from 77cc841ae..cf6c4249a
Nov 15, 2023
9188104
Squashed 'externals/nitro/' changes from c899f14ad..b5612a7df
Nov 15, 2023
9fff7d8
Merge commit '9188104b0bee4911db76d9030dca5d78580374cf' into cpp17
Nov 15, 2023
bad33e8
enable "Warnings as Errors"
Nov 15, 2023
99845f0
/guard:cf
Nov 15, 2023
f0fc238
Merge branch 'main' into cpp17
Nov 29, 2023
43dc528
latest from CODA-OSS and NITRO
Nov 29, 2023
511aeaf
Merge commit '5ce3b6e4f57858205b377f2f5b59b1c24aa1ad9d' into cpp17
Nov 29, 2023
5ce3b6e
Squashed 'externals/coda-oss/' changes from cf6c4249a..aba8366d8
Nov 29, 2023
190bd5f
Merge branch 'main' into cpp17
Dec 1, 2023
daf41b5
develop/sync_externals
Dec 1, 2023
f0285d2
latest from CODA-OSS and NITRO
Dec 1, 2023
75ded0b
Merge commit '6ab0ac13bb87c21585a865f436b1ab688b6d794c' into cpp17
Dec 1, 2023
6ab0ac1
Squashed 'externals/coda-oss/' changes from aba8366d8..0ed92d85a
Dec 1, 2023
1c6328b
Squashed 'externals/nitro/' changes from b5612a7df..f6179b4e1
Dec 1, 2023
3f6869e
Merge commit '1c6328b4ea28f44694e46081e859945802ee89ca' into cpp17
Dec 1, 2023
79ca30a
Merge branch 'main' into cpp17
Dec 11, 2023
29c530d
Merge commit '538783fe25fece6e9dd0102516ab1cc26843fe93' into cpp17
Dec 11, 2023
538783f
Squashed 'externals/coda-oss/' changes from 0ed92d85a..3770d0758
Dec 11, 2023
9a2fc45
Squashed 'externals/nitro/' changes from f6179b4e1..c5a06b5ae
Dec 11, 2023
96f19c1
Merge commit '9a2fc45f4d0201b2a2ee2f50192f9ad52d6d9758' into cpp17
Dec 11, 2023
11485f8
Squashed 'externals/coda-oss/' changes from 3770d0758..86ec09d4e
Dec 11, 2023
18c60e4
Merge commit '11485f89e7e31c2a01c080b8df1c361930c958e0' into cpp17
Dec 11, 2023
5912d13
Squashed 'externals/nitro/' changes from c5a06b5ae..497333fa9
Dec 11, 2023
5c51083
Merge commit '5912d13050576438a4acc9ec3d8c4c4c33422da4' into cpp17
Dec 11, 2023
14a25ac
Merge branch 'main' into cpp17
Dec 19, 2023
f334d7d
Squashed commit of the following:
Dec 19, 2023
b2c0ead
Merge commit '95deadab107adbafbcd253ec2eff3b149149425e' into cpp17
Dec 19, 2023
95deada
Squashed 'externals/nitro/' changes from 497333fa9..b4eda9fe9
Dec 19, 2023
553e326
Merge branch 'main' into cpp17
Dec 19, 2023
283ec7a
Merge branch 'main' into feature/8AMPI_PHSI
Dec 20, 2023
3d139d5
use std::mdspan to simplify the lookup table
Dec 20, 2023
bfdb9d3
new 8AMPI_PHSI project
Dec 20, 2023
595213e
remove testing_fromComplex_() routine
Dec 20, 2023
4db2141
add a nearest_neighbors_unrolled() routine
Dec 20, 2023
70de541
remove cache
Dec 21, 2023
cab85fb
use some maps to cache values
Dec 21, 2023
a5bae7d
map.lower_bound()
Dec 21, 2023
8d3c876
remove _cached()
Dec 21, 2023
6e898ef
lower_bound utility
Dec 21, 2023
55107fc
get ready to try AVX2
Dec 21, 2023
29e68b7
add vectorclass
Dec 21, 2023
ed7e612
Merge branch 'cpp17' into develop/8AMPI_PHSI
Dec 21, 2023
ec3ef27
build w/C++17
Dec 21, 2023
4a65e1a
first pass at using vcl
Dec 21, 2023
5b480e3
more use of VCL
JDanielSmith Dec 22, 2023
2b25e10
remove "map" as the speedup isn't worth the complexity to multi-thread
Dec 26, 2023
13c7021
nearest_neighbors_seq() and nearest_neighbors_par()
Dec 26, 2023
13bbeba
different implementation of find_nearest_2()
Dec 26, 2023
6b37fc5
get_phase_vcl()
Dec 26, 2023
43fa40b
find_nearest_vcl()
Dec 26, 2023
5306d29
nearest_neighbors_unseq_4()
Dec 26, 2023
0926d9a
nearest_neighbors_unseq_n()
Dec 26, 2023
0216591
nearest_neighbors_unseq_8()
Dec 26, 2023
d36e83e
nearest_neighbors_par_unseq()
Dec 26, 2023
7e4c256
transform_async() utility
Dec 26, 2023
82aba88
find values for par_unseq
JDanielSmith Dec 27, 2023
cb7ba02
make nearest_neighbors_unseq_n() so we don't have to pass as many par…
Dec 27, 2023
0583890
if_add() instead of select()
Dec 27, 2023
cfd3e10
lookup()
Dec 27, 2023
910eb80
use _unseq for testing
Dec 27, 2023
104e20d
nearest_()
Dec 27, 2023
cc0afff
lower_bound()
Dec 27, 2023
3120e85
interleave() utility
Dec 27, 2023
33878ec
move VCL and nearest_neighbors_unseq() into a separate file
JDanielSmith Dec 28, 2023
4e6c259
get store_partial() working
JDanielSmith Dec 28, 2023
88c2a49
arg() utility
Dec 28, 2023
83703eb
find_nearest() utility
Dec 28, 2023
1108e10
reduce use of templates
Dec 28, 2023
47ec6ef
interleave() and store() is slower than an explicit loop.
Dec 28, 2023
f6f01fc
find_nearest() as member-function so it can be called from multiple m…
Dec 28, 2023
12714b2
trying to find the fastest use of SIMD
Dec 28, 2023
42c536a
this seems to be the fastest so far ...
Dec 28, 2023
7cc5f4c
six::AmplitudeTableSize instead of hard-coded values
Dec 28, 2023
0fdf29d
store magnitudes in a fixed size array
Dec 28, 2023
60661d1
store real and imginary phase_direction components separately
Dec 28, 2023
9f53a59
build VCL on Linux
Dec 28, 2023
27a43ca
account for moved sample file
Dec 28, 2023
f5dacfe
tweak thresholds
Dec 28, 2023
f9ae33c
build on Windows w/CMake
Dec 28, 2023
75fb81b
macros to turn off VCL and/or std::experimental::simd
Dec 28, 2023
4404570
std::experimental::simd needs C++20
Dec 28, 2023
6a8c1b9
remove vectorclass, it needs C++17
Dec 28, 2023
9eccf0c
restore externals to 'main'
Dec 28, 2023
6bf0ad3
restore more changes from 'main'
Dec 28, 2023
beb9e6b
restore more changes from 'main'
Dec 28, 2023
d5db84a
restore more changes from 'main'
Dec 28, 2023
9be22fb
restore more changes from 'main'
Dec 28, 2023
2664770
build new 8AMPI_PHSI project
Dec 28, 2023
d17da76
Merge branch 'main' into feature/8AMPI_PHSI
Dec 28, 2023
b60179d
SIMD changes from other branches
Jan 3, 2024
31e1843
first pass at "poor man's" SIMD
Jan 3, 2024
6dad24e
new Ximd from CODA-OSS
Jan 4, 2024
b9acc16
update Ximd.h from CODA-OSS
Jan 5, 2024
43c4b11
fix compiler error
Jan 5, 2024
e73b3c3
Merge branch 'develop/simd' into feature/8AMPI_PHSI
Jan 5, 2024
4e4929e
Merge branch 'feature/8AMPI_PHSI' of github.com:ngageoint/six-library…
Jan 5, 2024
b19977a
fix compiler error
Jan 5, 2024
953e669
Merge branch 'main' into feature/8AMPI_PHSI
Jan 9, 2024
9eb2cb2
latest from CODA-OSS and NITRO
Jan 9, 2024
4a0f4de
Squashed 'externals/coda-oss/' changes from 86ec09d4e..63659eede
Jan 9, 2024
7239114
Merge commit '4a0f4dec0023495feb8ad18b0b3ffed153ef22e9' into feature/…
Jan 9, 2024
939e5cc
Squashed 'externals/nitro/' changes from b4eda9fe9..3118941cc
Jan 9, 2024
eff367f
Merge commit '939e5cc9dff37c734c896c1703bf8e2cded86b7f' into feature/…
Jan 9, 2024
bd059b1
use same code for VCL and XIMD "unseq" implementations (#732)
Jan 9, 2024
856b062
get build working after merge
Jan 9, 2024
fc8ffa4
_unseq reoutines are curr4ently only available in debug
Jan 9, 2024
3abcfb9
mt::Transform_par() from CODA-OSS
Jan 16, 2024
3c27317
_vcl.cpp and _ximd.cpp no longer part of project
Jan 16, 2024
9c91f15
changes from 4.0/simd
Jan 16, 2024
c0a73ff
use mt::Transform_par()
Jan 16, 2024
c99d1ce
prefer std::experimental::simd over VCL
Jan 16, 2024
5dea759
Merge branch 'main' into feature/8AMPI_PHSI
Jan 16, 2024
fa3fade
Merge branch 'main' into feature/8AMPI_PHSI
Jan 16, 2024
2d4dc49
common ximd and simd code from 4.0/simd
Jan 16, 2024
1aef868
explicitly specify the execution policy
Jan 16, 2024
0a35646
allow different SIMD implementations to be unit-tested
Jan 16, 2024
f972742
six_sicd_set_nearest_neighbors_unseq() is only available for SIX_sic…
Jan 17, 2024
c6249fa
the compiler likes fixed-sized structures
Jan 17, 2024
eeaf85a
return a SIMD type to caller to avoid copying
Jan 17, 2024
b2ba3a0
return the SIMD types from nearest_neighbors_unseq_T() to reduce copying
Jan 17, 2024
511a175
hook up nearest_neighbors_par_unseq()
Jan 17, 2024
e4c3031
more "unseq" code to **_unseq.cpp**
Jan 17, 2024
dfc7c21
test various execution policies
Jan 17, 2024
b076f76
VCL is faster with a size of 8 rather than 4
Jan 17, 2024
e315e86
use templates to "name" functions
Jan 17, 2024
e87c7a2
WIP: start hooking up a std::valarray implementation
Jan 17, 2024
0331334
get rid of `_t` suffix
Jan 17, 2024
e3dc901
get rid of `_t` suffix
Jan 17, 2024
b30235c
reduce duplicated code
Jan 18, 2024
afd9f39
Merge branch 'feature/8AMPI_PHSI' of github.com:ngageoint/six-library…
Jan 18, 2024
76266ef
C++14 in this branch
Jan 18, 2024
f7c2719
get rid of do_nothing()
Jan 18, 2024
c4f528a
remove templates from the .h file; can do everything in the CPP
JDanielSmith Jan 19, 2024
f2b51b6
get rid of nested Impl class, all done in CPP file
Jan 19, 2024
09c19d4
get rid of nested Impl class, all done in CPP file
Jan 19, 2024
cc1ddc8
get rid of nested Impl class, all done in CPP file
Jan 19, 2024
0340750
Merge branch 'feature/8AMPI_PHSI' of github.com:ngageoint/six-library…
Jan 19, 2024
c049a2c
remove compiler warning
Jan 19, 2024
a2d638b
Update ComplexToAMP8IPHS8I_unseq.cpp
Jan 19, 2024
738638e
separate data creation from processing
JDanielSmith Jan 20, 2024
c598e1b
fix VCL code
Jan 22, 2024
de6b403
There is a bug in VCL or MSVC that causes a compiler error w/C++20
Jan 22, 2024
ba5b48a
wasn't checking execution_policy::par_unseq
Jan 22, 2024
11927ba
latest from CODA-OSS
Jan 22, 2024
1c15ae6
Merge commit 'af438f9dde883feffe8f09de35ae94f119c87ca0' into feature/…
Jan 22, 2024
af438f9
Squashed 'externals/coda-oss/' changes from 54033e70e..d723792a2
Jan 22, 2024
dd1e6e5
Squashed 'externals/nitro/' changes from 54033e70e..3118941cc
Jan 22, 2024
56bb4d5
Merge commit 'dd1e6e50577f6f09c1493529a95215ad2c1e23a0' into feature/…
Jan 22, 2024
e10e9ef
latest from CODA-OSS
Jan 22, 2024
4d1b599
iterate over a mdspan
JDanielSmith Jan 23, 2024
abd5cc7
fix 'reorder' warning
Jan 23, 2024
a0265d5
fix 'reorder' warning
Jan 23, 2024
1a4d80b
remove debug code
Jan 23, 2024
6f70253
reduce duplicate code
Jan 23, 2024
e1822d6
Merge branch 'main' into feature/8AMPI_PHSI
Jan 23, 2024
69db578
Merge branch 'main' into feature/8AMPI_PHSI
Jan 25, 2024
ff675ea
remove valarray ... it's just noise right now
Jan 25, 2024
7630ae2
removing Ximd from CODA-OSS
Jan 25, 2024
e043312
rename Ximd.h
Jan 25, 2024
5e9a634
use vec:::Vec<> template
Jan 25, 2024
b24ae1c
get rid of duplicate arg() code
Jan 25, 2024
3352a3a
remove more duplicated code
Jan 25, 2024
4fc4ade
use template to avoid typos
Jan 25, 2024
c0f9caa
Enable SIMD processing
Jan 25, 2024
6a599ce
std::execution::par is slow with GCC ...
Jan 25, 2024
4511745
Merge branch 'main' into feature/8AMPI_PHSI
Feb 1, 2024
957ac86
latest from CODA-OSS
Feb 1, 2024
6f0a76d
Squashed 'externals/coda-oss/' changes from d723792a2..a6f8cc400
Feb 1, 2024
fc8b4cf
Merge commit '6f0a76d3b46007d9fe8bca76ee749807ea5189c0' into feature/…
Feb 1, 2024
4e59417
hookup "xisd" which is just `int` and `float` using generic routines
Feb 1, 2024
12ea859
select(floatv) isn't needed
Feb 1, 2024
608ffa4
test xisd
Feb 1, 2024
c70cb07
unseq_nearest_neighbors() to always get a UNSEQ code
Feb 1, 2024
8134fd9
unseq_nearest_neighbors() to always get a UNSEQ code
Feb 1, 2024
cd69ddb
Merge branch 'feature/8AMPI_PHSI' of github.com:ngageoint/six-library…
Feb 1, 2024
ff9833b
XISD -> SISD "Single Instruction, Single Data"
Feb 5, 2024
fcd850b
remove generate(), use overloaded constructor
Feb 5, 2024
c36d513
lround() and simd_select()
Feb 5, 2024
808f54a
if_add() -> simd_select()
Feb 6, 2024
ac0c81f
fix lower_bound()
Feb 7, 2024
06a3d61
build with VCL
Feb 7, 2024
a85ec1b
avoid bogus indicies
Feb 8, 2024
39ab325
avoid bogus indicies
Feb 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions externals/coda-oss/UnitTest/UnitTest.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -325,10 +325,6 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\modules\c++\sys\unittests\test_ximd.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\modules\c++\types\unittests\test_complex.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
Expand Down
3 changes: 0 additions & 3 deletions externals/coda-oss/UnitTest/UnitTest.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -258,9 +258,6 @@
<ClCompile Include="..\modules\drivers\highfive\unittests\tests_high_five_base.cpp">
<Filter>hdf5.lite</Filter>
</ClCompile>
<ClCompile Include="..\modules\c++\sys\unittests\test_ximd.cpp">
<Filter>sys</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
Expand Down
5 changes: 0 additions & 5 deletions externals/coda-oss/UnitTest/sys.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
#include <sys/DateTime.h>
#include <sys/Conf.h>
#include <sys/Path.h>
#include <sys/Ximd.h>

namespace sys
{
Expand Down Expand Up @@ -59,8 +58,4 @@ TEST_CLASS(test_path){ public:
#include "sys/unittests/test_path.cpp"
};

TEST_CLASS(test_ximd){ public:
#include "sys/unittests/test_ximd.cpp"
};

}
10 changes: 5 additions & 5 deletions externals/coda-oss/modules/c++/coda-oss.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -361,13 +361,13 @@
<Filter>math.poly</Filter>
</ClInclude>
<ClInclude Include="polygon\include\polygon\DrawPolygon.h">
<Filter>str\polygon</Filter>
<Filter>polygon</Filter>
</ClInclude>
<ClInclude Include="polygon\include\polygon\Intersections.h">
<Filter>str\polygon</Filter>
<Filter>polygon</Filter>
</ClInclude>
<ClInclude Include="polygon\include\polygon\PolygonMask.h">
<Filter>str\polygon</Filter>
<Filter>polygon</Filter>
</ClInclude>
<ClInclude Include="config\include\config\Exports.h">
<Filter>config</Filter>
Expand Down Expand Up @@ -1117,7 +1117,7 @@
<Filter>math.linear</Filter>
</ClCompile>
<ClCompile Include="polygon\source\PolygonMask.cpp">
<Filter>str\polygon</Filter>
<Filter>polygon</Filter>
</ClCompile>
<ClCompile Include="cli\source\Argument.cpp">
<Filter>cli</Filter>
Expand Down Expand Up @@ -1496,7 +1496,7 @@
<Filter Include="coda_oss">
<UniqueIdentifier>{59f3d9a1-06d3-4779-aef2-cc55223c3017}</UniqueIdentifier>
</Filter>
<Filter Include="str\polygon">
<Filter Include="polygon">
<UniqueIdentifier>{f2544ccb-0933-44c7-af39-cd986982af3d}</UniqueIdentifier>
</Filter>
</ItemGroup>
Expand Down
18 changes: 7 additions & 11 deletions externals/coda-oss/modules/c++/logging/source/Setup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
std::unique_ptr<logging::Logger>
logging::setupLogger(const path& program_,
const std::string& logLevel,
const path& logFile_,
const path& logFile,
const std::string& logFormat,
size_t logCount,
size_t logBytes)
Expand All @@ -44,29 +44,25 @@ logging::setupLogger(const path& program_,
std::unique_ptr<logging::Logger> log(new logging::Logger(program));

// setup logging level
std::string lev = logLevel;
str::upper(lev);
auto lev = str::upper(logLevel);
str::trim(lev);
logging::LogLevel level = (lev.empty()) ? logging::LogLevel::LOG_WARNING :
logging::LogLevel(lev);
const auto level = lev.empty() ? logging::LogLevel::LOG_WARNING : logging::LogLevel(lev);

// setup logging formatter
std::unique_ptr <logging::Formatter> formatter;
const auto logFile = logFile_.string();
const auto file = str::lower(logFile);
const auto file = str::lower(logFile.string());
if (str::endsWith(file, ".xml"))
{
formatter.reset(
new logging::XMLFormatter("", "<Log image=\"" + program + "\">"));
formatter = std::make_unique<logging::XMLFormatter>("", "<Log image=\"" + program + "\">");
}
else
{
formatter.reset(new logging::StandardFormatter(logFormat));
formatter = std::make_unique<logging::StandardFormatter>(logFormat);
}

// setup logging handler
std::unique_ptr<logging::Handler> logHandler;
if (file.empty() || file == "console")
if (file.empty() || (file == "console") || (file == "-"))
logHandler.reset(new logging::StreamHandler());
else
{
Expand Down
16 changes: 12 additions & 4 deletions externals/coda-oss/modules/c++/str/include/str/Manip.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,26 +211,30 @@ inline std::string upper(const std::string& s)

// At this point, you might want to `lower()` and `upper()` for UTF-8 and/or
// Windows-1252. That can be done, but ... our needs are mostly English (99.9%)
// with a very occassional smattering of French (Canada). We've gotten by this
// with a very occassional smattering of (Canadian-) French. We've gotten by this
// long without being able to upper/lower 'ä' and 'Ä' and there's no current
// requirement to do so.
//
// Furthermore, while Windows-1252 is easy as it's a single-byte encoding and
// covers many european languages, the standard is UTF-8.
// Upper/lower-casing in Unicode is quite a bit more complicated as there can be
// covers many european languages, the standard is UTF-8. Changing case
// with Unicode is quite a bit more complicated as there can be
// numerous rules for various languages. For example, in German, the "old
// rules" where that 'ß' was uppercased to "SS"; however, there is now a 'ẞ'.
// And then there are semantics: in German, no word can begin with 'ß' (or 'ẞ')
// making "ßanything" rather non-sensical.
//
// So for now (until there is a real use case), just "define these problems
// away" by not implementing `w1252_lower()`, `utf8_upper()`, etc.
// away" by not exposing `w1252_lower()`, `utf8_upper()`, etc.
/*
// With Windows-1252 encoding, we can convert between 'ä' and 'Ä'.
CODA_OSS_API void w1252_lower(std::string& s);
CODA_OSS_API void w1252_upper(std::string& s);
CODA_OSS_API void lower(str::W1252string& s);
CODA_OSS_API void upper(str::W1252string& s);

// Hooking up UTF-8 for completeness and unit-testing.
// ** THESE ROUTINES ARE SLOW **
// Performance improvements can be made, but nobody needs such right now.
CODA_OSS_API void utf8_lower(std::string& s);
CODA_OSS_API void utf8_upper(std::string& s);
CODA_OSS_API void lower(coda_oss::u8string& s);
Expand All @@ -244,6 +248,10 @@ CODA_OSS_API str::Windows1252_T to_w1252_lower(str::Windows1252_T);

/***********************************************************************************/

// Using std::transform() with ::toupper() is considerably slower than a lookup-table
CODA_OSS_API void ascii_lower(std::string& s);
CODA_OSS_API void ascii_upper(std::string& s);

/*!
* Replaces any characters that are invalid in XML (&, <, >, ', ") with their
* escaped counterparts
Expand Down
Loading
Loading