Version | Date | Description |
---|---|---|
3.00.03 | 2018-01-28 | toArray() function added to Vector and FloatVector |
3.00.02 | 2018-01-28 | Iterator added to Vector and FloatVector |
3.00.01 | 2017-04-29 | Several absolute base units added |
3.00.00 | 2017-04-27 | Absolute units separate from relative units |
2.02.00 | 2017-04-17 | Units added to create consistency |
2.01.03 | 2017-01-30 | createSI() method added to scalars; scalar constants added |
2.01.02 | 2017-01-24 | Small changes to AbstractDoubleScalar and AbstractFloatScalar |
2.01.01 | 2016-11-14 | neg() function added; cleaned up code |
2.01.00 | 2016-11-01 | Increased speed of instantiation |
2.00.00 | 2016-10-16 | Major upgrade of type hierarchy |
1.03.01 | 2016-05-28 | Min and max functions added for scalars |
1.03.00 | 2016-04-23 | Abs and Rel for detailed versions removed |
1.02.06 | 2015-12-23 | Dependency on reflections package removed |
1.02.05 | 2015-12-22 | ZERO constants for scalars |
Type | Changes | By |
---|---|---|
Typed Scalar[] toArray() function added for all vectors. | averbraeck | |
VectorToArrayExample added to djunits-demo. | averbraeck |
Type | Changes | By |
---|---|---|
Iterator added to Vector and FloatVector, so statements like "for (Speed s : speedVector)" are possible. | averbraeck | |
Bug for instantiateMD() and instantiate() on the basis of a sparse Map in FloatVector solved:
IntStream.range(0, values.size()).parallel().forEach(index -> valuesSI[index] = values.get(indices[index]).getSI()); instead of values.keySet().parallelStream().forEach(index -> valuesSI[index] = values.get(index).getSI()); |
averbraeck | |
VectorIteratorExample added to djunits-demo. | averbraeck | |
Copyright statement extended to 2018. | averbraeck |
Type | Changes | By |
---|---|---|
For DirectionUnit, EAST_RADIAN and EAST_DEGREE have been added. | averbraeck | |
For TimeUnit, several BASE units with e.g., SECOND, MINUTE, HOUR, DAY, WEEK have been added. | averbraeck | |
In the TimeUnit, Time, and FloatTime classes a warning has been placed that indicates that precision is limited. For floatTime it states: Note that when the offset of a stored absolute Time becomes large, precision of a float might not be enough for the required resolution of a Time. A float has around 7 significant digits (23 bit mantissa). This means that when we need to have a float time that is precise to microseconds, the Time value should not go above 2^22 = 4.0E6. This is not enough to store Epoch values that are in the order of magnitude of 2E12 ms! So feeding System.TimeInMillis() to a FloatTime with TimeUnit.BASE as its unit is not having the required precision. At best, a FloatTime can store TimeUnit.BASE or TimeUnit.EPOCH values with real calendar values with a precision of several minutes. | averbraeck | |
The GenerateUNITs has a replacement option that can insert the above precision warnings in the automatically generated Time and FloatTime (and other) classes. | averbraeck |
Type | Changes | By |
---|---|---|
Abolute units and relative units have been separated. They are truly different. In DJUNITS version 2, absolute and separate variables use the same unit. E.g., a Time and a Duration both use a TimeUnit. In classes that have to enforce that all components are of unit TimeUnit, Duration as well as Time can be used. This is not desirable. Therefore we need to split the TimeUnit, AngleUnit, LengthUnit and TemperatureUnit into an absolute and a relative version. | averbraeck | |
UNITS.java has been made consistent with the absolute/relative unit changes. | averbraeck | |
Unit tests have been made consistent with the absolute/relative unit changes. | averbraeck | |
Documentation has been made consistent with the absolute/relative unit changes. | averbraeck | |
OffsetLinearScale now extends LinearScale. | averbraeck | |
MoneyPerTimeUnit renamed to MoneyPerDurationUnit; same for all other types refering to MoneyPerTime. | averbraeck | |
Removed the methods to multiply and divide absolute values with absolute values. How can I multiply a position on this planet with another position on the planet? Or a time with another time? Just doesn't make sense, so removed the methods and the corresponding tests. | averbraeck | |
the toAbs() and toRel() methods are removed. I don't understand how to translate 1-4-2017 at 12:00 to a relative value. The only thing that makes sense is to subtract a value (some kind of offset) from the absolute value to get a relative value. | averbraeck |
Type | Changes | By |
---|---|---|
For many Unit classes, standard units have been added to make the unit list more internally consistent. | averbraeck | |
UNITS.java has been made consistent with the added units. | averbraeck | |
The UNITS.java content can be generate with the GenerateStaticUNITS program in djunits-generator. | averbraeck |
Type | Changes | By |
---|---|---|
Scalars with the exception of Money scalars can now be created with e.g., Length len = Length.createSI(5.0). OTS-297. | averbraeck | |
Constants NaN, POSITIVI_INFINITY, NEGATIVE_INFINITY, POS_MAXVALUE and NEG_MAXVALUE have been added to scalars, with the exception of Money scalars. OTS-298. | averbraeck |
Type | Changes | By |
---|---|---|
hashCode of Units are cached, as these are calculated in every compare of scalars. OTS-289. | averbraeck | |
AbstractDoubleScalar.compareTo and AbstractFloatScalar.compareTo should use static compare method. OTS-290. | averbraeck | |
Add eq0, ne0, gt0, lt0, ge0, and le0 methods to DoubleScalars and FloatScalars. OTS-293. | averbraeck |
Type | Changes | By |
---|---|---|
A neg() function has been added to the Scalar, MutableVector and MutableMatrix classes. The neg functions changes the value(s) to minus the value(s). OTS-216. | averbraeck | |
Code has been cleaned for @Override and open warnings for formatting of comments. | averbraeck |
Type | Changes | By |
---|---|---|
Several changes have been made to increase the speed of instantiation of scalars. Especially the need to use espessAsUnit(...) when the unit is the SI-unit has been decreased. This leads to a major speed improvement of the use of scalars. | averbraeck | |
A start has been made to increase the speed of instantiation of vectors. Further speed improvements will be made in the next version. | averbraeck | |
The Unit has a new method 'boolean isBaseSIUnit()' to help determine the need for conversion of a value into a standard (usually SI) unit. | averbraeck | |
The Scale has a new method 'boolean isBaseSIScale()' to help determine the need for conversion of a value into a standard (usually SI) unit. | averbraeck |
Type | Changes | By |
---|---|---|
A major upgrade has been made to the type hierarchy. Instead of the TypedXXX template functions, abstract classes and interfaces have been introduced that are more natural to implement and have faster execution than the typed templates. | averbraeck | |
The DoubleScalar, DoubleVector, DoubleMatrix classes are not at the root of
the typed classes
anymore. Rather, they are an implementation of the Abstract classes, next to the typed classes
in the type hierarchy. So a Length does not extend a DoubleScalar.Rel |
averbraeck |
Type | Changes | By |
---|---|---|
min and max functions have been added for scalars, for combinations of abs, rel, dimensionless, money, and float. | averbraeck | |
Copyright notice has been extended to 2016. | averbraeck |
Type | Changes | By |
---|---|---|
The following changes have been made: Time.Abs, Time.Rel --) Time, Duration (TimeUnit) Length.Abs, Length.Rel --) Position, Length (LengthUnit) Temperature.Abs, Temperature.Rel --) AbsoluteTemperature, Temperature (TemperatureUnit) Angle.Abs, Angle.Rel --) Direction, Angle (AngleUnit) | averbraeck |
Type | Changes | By |
---|---|---|
DJUNITS is no longer dependent on 'reflections'. Instead, the 'Unit' class now defines an array of standard units that exist in the package. This list is also used in the unit tests (it is public static final). | averbraeck |
Type | Changes | By |
---|---|---|
Added ZERO constants for double and float scalars, with the exception of Money scalars. | averbraeck |