mirror of https://github.com/ecmwf/eccodes.git
Optimisation: faster decode for constant field
This commit is contained in:
parent
559a25dd39
commit
cc09ad375d
|
@ -214,7 +214,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
|
||||||
grib_handle* hand = grib_handle_of_accessor(a);
|
grib_handle* hand = grib_handle_of_accessor(a);
|
||||||
|
|
||||||
int err = GRIB_SUCCESS, i = 0;
|
int err = GRIB_SUCCESS, i = 0;
|
||||||
size_t buflen = grib_byte_count(a);
|
size_t buflen = 0;
|
||||||
struct aec_stream strm;
|
struct aec_stream strm;
|
||||||
double bscale = 0;
|
double bscale = 0;
|
||||||
double dscale = 0;
|
double dscale = 0;
|
||||||
|
@ -260,9 +260,6 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
|
||||||
if ((err = grib_get_long_internal(hand, self->ccsds_rsi, &ccsds_rsi)) != GRIB_SUCCESS)
|
if ((err = grib_get_long_internal(hand, self->ccsds_rsi, &ccsds_rsi)) != GRIB_SUCCESS)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
bscale = grib_power(binary_scale_factor, 2);
|
|
||||||
dscale = grib_power(-decimal_scale_factor, 10);
|
|
||||||
|
|
||||||
/* TODO: This should be called upstream */
|
/* TODO: This should be called upstream */
|
||||||
if (*len < n_vals)
|
if (*len < n_vals)
|
||||||
return GRIB_ARRAY_TOO_SMALL;
|
return GRIB_ARRAY_TOO_SMALL;
|
||||||
|
@ -275,6 +272,10 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
|
||||||
return GRIB_SUCCESS;
|
return GRIB_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bscale = grib_power(binary_scale_factor, 2);
|
||||||
|
dscale = grib_power(-decimal_scale_factor, 10);
|
||||||
|
|
||||||
|
buflen = grib_byte_count(a);
|
||||||
buf = (unsigned char*)hand->buffer->data;
|
buf = (unsigned char*)hand->buffer->data;
|
||||||
buf += grib_byte_offset(a);
|
buf += grib_byte_offset(a);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,24 @@
|
||||||
set -ea
|
set -ea
|
||||||
# For CMake
|
# For CMake
|
||||||
|
|
||||||
|
# Unset any environment variable that could interfere with tests
|
||||||
|
unset ECCODES_EXTRA_DEFINITION_PATH
|
||||||
|
unset ECCODES_LOG_STREAM
|
||||||
|
unset ECCODES_FAIL_IF_LOG_MESSAGE
|
||||||
|
unset ECCODES_DEBUG
|
||||||
|
unset ECCODES_GRIB_WRITE_ON_FAIL
|
||||||
|
unset ECCODES_GRIB_DATA_QUALITY_CHECKS
|
||||||
|
unset ECCODES_GRIB_KEEP_MATRIX
|
||||||
|
unset ECCODES_GRIB_NO_SPD
|
||||||
|
unset ECCODES_GRIB_NO_BIG_GROUP_SPLIT
|
||||||
|
unset ECCODES_GRIB_IEEE_PACKING
|
||||||
|
unset ECCODES_GRIBEX_MODE_ON
|
||||||
|
unset ECCODES_BUFRDC_MODE_ON
|
||||||
|
unset ECCODES_BUFR_SET_TO_MISSING_IF_OUT_OF_RANGE
|
||||||
|
unset ECCODES_BUFR_MULTI_ELEMENT_CONSTANT_ARRAYS
|
||||||
|
unset ECCODES_FILE_POOL_MAX_OPENED_FILES
|
||||||
|
unset ECCODES_IO_BUFFER_SIZE
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
echo "Script: $0"
|
echo "Script: $0"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue