JCrawfy
9d9d5de511
add missing include
2020-04-26 15:27:51 +12:00
JCrawfy
556d3358e9
fix bad commit
2020-04-26 14:53:15 +12:00
JCrawfy
d30e705f83
fix most (all?) the places where string<->double conversions are performed
...
strod / stod / to_string and all related friends are dependant on current locale for how they format a number
2020-04-25 14:00:58 +12:00
JCrawfy
dfb8f1518e
Revert "redo serialisation by using a sorted vector instead of a lookup for each possible row/column combination"
...
This reverts commit 63484f8b8f
.
2020-04-25 11:15:23 +12:00
JCrawfy
63484f8b8f
redo serialisation by using a sorted vector instead of a lookup for each possible row/column combination
...
Not tested, definitely not as correct as previous implementation
2020-04-25 11:00:39 +12:00
JCrawfy
9136d21845
move the simplified cell_reference and cell structs out to a header
...
the standard xlnt::cell and xlnt::cell_reference have plenty of extra functionality that just slows things down during (de)serialisation
These intermediate structs can be used to minimise overhead before transforming to the final type
2020-04-25 11:00:39 +12:00
JCrawfy
1069c17fbe
fixup comment in parser
2020-04-25 11:00:39 +12:00
JCrawfy
e8e29e9c18
resolve some warnings (unintialised variables), remove warning suppression
2020-04-25 11:00:39 +12:00
Thomas Fussell
d1d9553d4e
Merge pull request #454 from Tectu/master
...
Remove superfluous semicolon
2020-03-25 14:16:20 -04:00
Joel Bodenmann
4e0333ac91
Remove superfluous semicolon
2020-03-25 13:16:02 +01:00
Thomas Fussell
568ac85346
release v1.5.0
2020-03-21 15:19:37 -04:00
Thomas Fussell
05fb0ceaf6
revert version bump
2020-03-21 15:18:59 -04:00
Thomas Fussell
80b94549a7
edit version bump path
2020-03-21 15:16:20 -04:00
Thomas Fussell
7c0d64248c
move release files to root for now
2020-03-21 15:15:32 -04:00
Thomas Fussell
b118d8f1f2
bump version to 1.5.0
2020-03-21 15:13:22 -04:00
Thomas Fussell
7e1e8cb1a1
release v1.5.0
2020-03-21 14:58:12 -04:00
Thomas Fussell
c3a1f1da95
fix release name
2020-03-21 14:57:06 -04:00
Thomas Fussell
0f178e46c8
fix release title
2020-03-21 14:52:26 -04:00
Thomas Fussell
138fb967bc
improve consistency with previous releases
2020-03-21 14:49:58 -04:00
Thomas Fussell
0a2a618663
Merge pull request #452 from tfussell/automate-releases
...
Automate releases
2020-03-21 14:40:49 -04:00
Thomas Fussell
a07c8c0c10
flesh out package.json [ci skip]
2020-03-21 14:39:22 -04:00
Thomas Fussell
8e451f24e3
empty commit [ci skip]
2020-03-21 14:36:57 -04:00
Thomas Fussell
92577d6cac
update github deploy token
2020-03-21 14:36:45 -04:00
Thomas Fussell
5602edbd2d
add packaging and release deployment workflow
2020-03-21 14:25:39 -04:00
Thomas Fussell
9a18cd9fcd
disable npm
2020-03-21 11:02:03 -04:00
Thomas Fussell
252dd76616
initial implementation
2020-03-21 10:59:00 -04:00
Thomas Fussell
2f5934f60e
Merge pull request #447 from Crzyrndm/feature/benchmark
...
microbenchmarks for double<->string conversion, serialisation improvements
2020-03-20 18:02:37 -04:00
Thomas Fussell
6c52e52487
Merge pull request #451 from amiremohamadi/fix-cell-reference-parsing
...
fix cell reference parsing
2020-03-20 16:16:40 -04:00
amiremohamadi
3af9567946
fix-bug: set absolute flags correctly
2020-03-20 23:08:27 +03:30
amiremohamadi
33a56b3a04
add more tests for absolute and relative column, row forms
2020-03-20 23:06:58 +03:30
JCrawfy
f4d00acb9f
resolve warnings
2020-03-02 13:32:39 +13:00
JCrawfy
e8cb8d9bc6
fix compiler error
2020-03-01 23:23:20 +13:00
JCrawfy
0ea054026f
speedup worksheet::calculate dimension by only looping the cell map once
2020-03-01 23:20:44 +13:00
JCrawfy
c418c13010
remove a double lookup in the cell map during serialisation
2020-03-01 23:18:13 +13:00
JCrawfy
932fc4596f
remove declarations of copy/assignment operators that only do default work
...
user defined copy operators suppress compiler creation of move operations, and not having all of copy/move/dtor
defined (rule of 0/5) is suspicious. Also happens to be very slightly slower
2020-03-01 23:16:57 +13:00
JCrawfy
39f498f401
use the new faster serialisation everywhere in xlsx_producer
2020-03-01 22:01:53 +13:00
JCrawfy
ee593c2673
bug fixes, move the faster serialisation into the numeric header
...
serialisation ends up roughly 2x improvement going from sstream to snprintf
Run on (4 X 3500 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 6291K (x1)
-------------------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------------------------------
RandFloatStrs/double_from_string_sstream 968 ns 977 ns 640000
RandFloatStrs/double_from_string_strtod 272 ns 270 ns 2488889
RandFloatStrs/double_from_string_strtod_fixed 272 ns 270 ns 2488889
RandFloatStrs/double_from_string_strtod_fixed_const_ref 273 ns 270 ns 2488889
RandFloatStrs/double_from_string_std_from_chars 193 ns 195 ns 3446154
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_ref 272 ns 273 ns 2635294
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_const_ref 276 ns 273 ns 2635294
RandFloats/string_from_double_sstream 1311 ns 1318 ns 497778
RandFloats/string_from_double_sstream_cached 1076 ns 1050 ns 640000
RandFloats/string_from_double_snprintf 601 ns 600 ns 1120000
RandFloats/string_from_double_snprintf_fixed 600 ns 600 ns 1120000
RandFloats/string_from_double_std_to_chars 117 ns 117 ns 5600000
RandFloatsComma/string_from_double_snprintf_fixed_comma 600 ns 600 ns 1120000
2020-03-01 22:01:14 +13:00
JCrawfy
fbbf7ae767
fix git revert error
2020-03-01 20:46:19 +13:00
JCrawfy
0915fde090
add saving to the spreadsheet-load test, fix a bug in the serialiser
2020-03-01 20:43:56 +13:00
JCrawfy
d135f35bd4
minor cleanup
2020-03-01 20:24:22 +13:00
JCrawfy
a5aca5c212
add the fixed snprintf serialiser
...
Run on (4 X 3500 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 6291K (x1)
-------------------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------------------------------
RandFloatStrs/double_from_string_sstream 969 ns 977 ns 640000
RandFloatStrs/double_from_string_strtod 274 ns 270 ns 2488889
RandFloatStrs/double_from_string_strtod_fixed 273 ns 273 ns 2635294
RandFloatStrs/double_from_string_strtod_fixed_const_ref 274 ns 276 ns 2488889
RandFloatStrs/double_from_string_std_from_chars 193 ns 193 ns 3733333
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_ref 273 ns 267 ns 2635294
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_const_ref 273 ns 273 ns 2635294
RandFloats/string_from_double_sstream 1323 ns 1311 ns 560000
RandFloats/string_from_double_sstream_cached 1074 ns 1074 ns 640000
RandFloats/string_from_double_snprintf 519 ns 516 ns 1000000
RandFloats/string_from_double_snprintf_fixed 517 ns 516 ns 1000000
RandFloats/string_from_double_std_to_chars 118 ns 117 ns 5600000
RandFloatsComma/string_from_double_snprintf_fixed_comma 520 ns 516 ns 1120000
2020-02-29 23:10:38 +13:00
JCrawfy
7ba36b5e73
fix dumb bug in input randomiser, add basic double->string benchmarks
...
* input randomiser was feeding a constant value previously, now actually randomising
* start to_string with the current method (sstream), an faster more correct version (sstream_cached), snprintf, and std::to_chars
** NOTE: only std::to_chars and sstream_cached are correct in the face of locales
Run on (4 X 3500 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 6291K (x1)
-------------------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------------------------------
RandFloatStrs/double_from_string_sstream 1012 ns 1001 ns 640000
RandFloatStrs/double_from_string_strtod 276 ns 276 ns 2488889
RandFloatStrs/double_from_string_strtod_fixed 312 ns 308 ns 2133333
RandFloatStrs/double_from_string_strtod_fixed_const_ref 307 ns 300 ns 2240000
RandFloatStrs/double_from_string_std_from_chars 194 ns 188 ns 3733333
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_ref 315 ns 314 ns 2240000
RandFloatCommaStrs/double_from_string_strtod_fixed_comma_const_ref 306 ns 305 ns 2357895
RandFloats/string_from_double_sstream 1372 ns 1381 ns 497778
RandFloats/string_from_double_sstream_cached 1136 ns 1123 ns 640000
RandFloats/string_from_double_snprintf 536 ns 516 ns 1000000
RandFloats/string_from_double_std_to_chars 116 ns 115 ns 6400000
2020-02-29 22:59:25 +13:00
JCrawfy
0adb8a69b1
add micro benchmarking project, setup number parsing benchmark
...
relating to previous work https://github.com/tfussell/xlnt/issues/422
Results are matching what was observed at the time ^^ was being worked on
std::from_chars is included as the target to beat, but since only MSVC has it for floating point it's not
hugely useful yet
uniform real distribution is probably a horrible choice, and it might be good to randomise the number
of sf in each string also (currently the y all end up at max length)
Run on (4 X 3500 MHz CPU s)
CPU Caches:
L1 Data 32K (x4)
L1 Instruction 32K (x4)
L2 Unified 262K (x4)
L3 Unified 6291K (x1)
----------------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------------------------------------
RandFloats/double_from_string_sstream 804 ns 820 ns 896000
RandFloats/double_from_string_strtod 163 ns 162 ns 5973333
RandFloats/double_from_string_strtod_fixed 175 ns 172 ns 5352107
RandFloats/double_from_string_strtod_fixed_const_ref 150 ns 152 ns 5352107
RandFloats/double_from_string_std_from_chars 87.1 ns 88.3 ns 9557333
RandFloatsComma/double_from_string_strtod_fixed_comma_ref 172 ns 173 ns 5146257
RandFloatsComma/double_from_string_strtod_fixed_comma_const_ref 180 ns 175 ns 5352107
2020-02-29 22:11:31 +13:00
Thomas Fussell
ae6f9d2324
Merge pull request #446 from adamhooper/issue-445
...
Parse inlineStr values
2020-02-26 13:28:46 -05:00
Adam Hooper
ac18fc6dde
Parse inlineStr values
...
inlineStr XML structure is <c><is><t>. This was being parsed incorrectly
when streaming (because has_value wasn't being set to true) and when
reading the whole file (because the <t> was ignored).
[closes #445 ]
2020-02-25 14:32:14 -05:00
Thomas Fussell
0d1d85f181
Merge pull request #432 from tfussell/format
...
Format, update dependencies, fix warnings
2020-02-08 13:36:26 -05:00
Thomas Fussell
e8ee585897
bump copyright year to 2020
2020-02-08 12:12:59 -05:00
Thomas Fussell
5a2498c229
fix windows build
2020-02-08 12:09:22 -05:00
Thomas Fussell
53b2853ae3
Merge branch 'master' into format
2020-02-08 12:03:40 -05:00
Thomas Fussell
85e6878cc4
bump version to 1.4 to match latest release, for #334
2020-02-08 11:48:50 -05:00