Skip to content

Commit 5f53d09

Browse files
committed
Release version 2.0.0.
1 parent b76ee62 commit 5f53d09

9,004 files changed

Lines changed: 274838 additions & 133617 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## files generated by popular Visual Studio add-ons.
33

44
# macOS files
5-
/.DS_Store
5+
.DS_Store
66

77
# Novacta.Analytics.CodeExamples
88
**/Novacta.Analytics.CodeExamples/*.txt

README.md

Lines changed: 95 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,175 +1,192 @@
11
# Novacta.Analytics
22

33
The **Novacta.Analytics** library
4-
provides functionality for data analysis.
4+
provides functionality for data analysis.
55

6-
The project targets all platforms implementing
7-
the [.NET Standard](https://github.com/dotnet/standard),
8-
version 2.0, and supports the
9-
[x86 architecture](https://en.wikipedia.org/wiki/X86):
10-
64 bit is supported on all platforms, 32 bit on Windows only.
6+
The project targets
7+
[.NET 6](https://github.com/dotnet/core/blob/main/release-notes/6.0/README.md),
8+
and supports the
9+
[x86-64 architecture](https://en.wikipedia.org/wiki/X86-64)
10+
on Windows, Linux, and macOS platforms.
1111

1212
Installation can be performed via [NuGet](https://www.nuget.org/packages/Novacta.Analytics).
1313

14-
# Features
14+
## Features
1515

16-
## Matrix algebra operations
16+
### Matrix algebra operations
1717

18-
* [Read only](http://novacta.github.io/analytics/html/T_Novacta_Analytics_ReadOnlyDoubleMatrix.htm)
18+
* Matrices of
19+
[Double](https://docs.microsoft.com/dotnet/api/system.double)
1920
or
20-
[writable](http://novacta.github.io/analytics/html/T_Novacta_Analytics_DoubleMatrix.htm)
21-
matrices, supporting
22-
[Sparse](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_Sparse.htm)
23-
and
24-
[Dense](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_Dense_1.htm)
25-
storage schemes.
26-
* [Overloaded operators](http://novacta.github.io/analytics/html/Operators_T_Novacta_Analytics_DoubleMatrix.htm)
21+
[Complex](https://docs.microsoft.com/dotnet/api/system.numerics.complex)
22+
numbers, represented through types
23+
[DoubleMatrix](https://novacta.github.io/analytics/html/1DED9EB1.htm) and
24+
[ComplexMatrix](https://novacta.github.io/analytics/html/AFDA21E4.htm),
25+
respectively.
26+
* Support for both dense
27+
and
28+
[Compressed sparse row](https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_(CSR,_CRS_or_Yale_format))
29+
storage
30+
[schemes](https://novacta.github.io/analytics/html/6274B7FA.htm).
31+
* Matrices exposed as read-only objects, see types
32+
[ReadOnlyDoubleMatrix](https://novacta.github.io/analytics/html/9FFC4131.htm)
33+
and
34+
[ReadOnlyComplexMatrix](https://novacta.github.io/analytics/html/E2E3D527.htm).
35+
* Overloaded operators
2736
supporting sums, subtractions, multiplications, and divisions whose operands
28-
are matrices or scalars.
37+
are (writable or read-only) matrices or scalars, eventually mixing Complex or
38+
Double based operands.
2939
* Matrix slicing where rows or columns are referred to
3040
using integers, strings, or
31-
[collections of indexes](http://novacta.github.io/analytics/html/T_Novacta_Analytics_IndexCollection.htm),
32-
possibly avoiding dense allocations via specialized
33-
[indexers](http://novacta.github.io/analytics/html/P_Novacta_Analytics_DoubleMatrix_Item_1.htm).
34-
* [Out-](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_Apply.htm)
41+
[collections of indexes](https://novacta.github.io/analytics/html/9B3BDFD7.htm).
42+
* Out- or In- place application
43+
of operations to matrix entries (for examples, see methods
44+
[Apply](https://novacta.github.io/analytics/html/4A64A4C1.htm)
3545
or
36-
[In-](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_InPlaceApply.htm)
37-
place application of operations to matrix entries.
46+
[InPlaceApply](https://novacta.github.io/analytics/html/7887E503.htm)).
47+
* Matrix
48+
[Singular Value Decompositions](https://novacta.github.io/analytics/html/D334409A.htm)
49+
and
50+
[Spectral Decompositions](https://novacta.github.io/analytics/html/17359C6B.htm)
51+
of symmetric/Hermitian matrices.
52+
3853

39-
## Matrix data presentation and interaction in application UI
54+
### Matrix data presentation and interaction in application UI
4055

4156
* Matrices can be exploited as
4257
[binding sources](https://docs.microsoft.com/en-us/dotnet/desktop-wpf/data/data-binding-overview#basic-data-binding-concepts)
4358
by interpreting them as
44-
[collections](http://novacta.github.io/analytics/html/T_Novacta_Analytics_DoubleMatrixRowCollection.htm)
59+
[collections](https://novacta.github.io/analytics/html/CF178F79.htm)
4560
of
46-
[rows](http://novacta.github.io/analytics/html/T_Novacta_Analytics_DoubleMatrixRow.htm).
61+
[rows](https://novacta.github.io/analytics/html/8C5BBFE.htm).
4762
See the
4863
[BindingToRowCollection](https://github.com/novacta/analytics/blob/master/samples/BindingToRowCollection)
4964
sample for further details.
5065

51-
## Summary statistics
66+
### Summary statistics
5267

53-
* [Descriptive statistical functions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Stat.htm),
68+
* [Descriptive statistical functions](https://novacta.github.io/analytics/html/ADDA5F5.htm),
5469
operating on rows, columns, or all matrix entries.
5570

56-
## Multivariate data analysis
71+
### Multivariate data analysis
5772

5873
* Represent multi-dimensional, weighted points by taking
5974
their coordinates with respect to whatever
60-
[basis](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_Basis.htm)
75+
[basis](https://novacta.github.io/analytics/html/59623234.htm)
6176
using
62-
[cloud](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_Cloud.htm)
77+
[cloud](https://novacta.github.io/analytics/html/781E2F6F.htm)
6378
instances.
6479
* Project clouds along their
65-
[principal](http://novacta.github.io/analytics/html/T_Novacta_Analytics_PrincipalProjections.htm)
80+
[principal](https://novacta.github.io/analytics/html/3ADFD77D.htm)
6681
directions by identifying new, uncorrelated variables
6782
whose variances enhance our comprehension of the overall cloud
6883
variability, possibly approximating the cloud in a lower dimensional space.
6984
* Compute the
70-
[principal components](http://novacta.github.io/analytics/html/T_Novacta_Analytics_PrincipalComponents.htm)
85+
[principal components](https://novacta.github.io/analytics/html/3ADC7B56.htm)
7186
of a matrix, an application of principal projections
7287
to the classical context in which matrix rows are
7388
interpreted as point coordinates taken with respect to
7489
bases depending on specific coefficients assigned to the
7590
observed variables.
76-
* [Correspondence](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Correspondence.htm)
91+
* [Correspondence](https://novacta.github.io/analytics/html/8945AB1F.htm)
7792
analysis of a contingency table.
7893
* Cluster Analysis
79-
* [Discover](http://novacta.github.io/analytics/html/M_Novacta_Analytics_Clusters_Discover.htm)
94+
* [Discover](https://novacta.github.io/analytics/html/32B0ECC0.htm)
8095
optimal clusters in a data set by minimizing the sum of
8196
intra-cluster squared deviations.
82-
* [Explain](http://novacta.github.io/analytics/html/M_Novacta_Analytics_Clusters_Explain.htm)
97+
* [Explain](https://novacta.github.io/analytics/html/76A18A84.htm)
8398
existing clusters selecting features by minimizing the
84-
[Davies-Bouldin index](http://novacta.github.io/analytics/html/M_Novacta_Analytics_IndexPartition_DaviesBouldinIndex.htm).
99+
[Davies-Bouldin index](https://novacta.github.io/analytics/html/40CF1518.htm).
85100

86-
## Categorical data sets
101+
### Categorical data sets
87102

88103
* Create
89-
[categorical data sets](http://novacta.github.io/analytics/html/T_Novacta_Analytics_CategoricalDataSet.htm)
104+
[categorical data sets](https://novacta.github.io/analytics/html/B39F799B.htm)
90105
by
91-
[encoding](http://novacta.github.io/analytics/html/M_Novacta_Analytics_CategoricalDataSet_Encode_1.htm)
106+
[encoding](https://novacta.github.io/analytics/html/CBC7240B.htm)
92107
categorical or numerical data from a stream.
93108
* Categorize continuous data
94-
[by entropy minimization](http://novacta.github.io/analytics/html/M_Novacta_Analytics_CategoricalDataSet_CategorizeByEntropyMinimization.htm).
95-
* [Multiple Correspondence](http://novacta.github.io/analytics/html/T_Novacta_Analytics_MultipleCorrespondence.htm)
109+
[by entropy minimization](https://novacta.github.io/analytics/html/5D736549.htm).
110+
* [Multiple Correspondence](https://novacta.github.io/analytics/html/C792CEE0.htm)
96111
analysis of a categorical data set.
97112
* Classify items from a feature space via
98-
[ensembles](http://novacta.github.io/analytics/html/T_Novacta_Analytics_CategoricalEntailmentEnsembleClassifier.htm)
113+
[ensembles](https://novacta.github.io/analytics/html/401D2F27.htm)
99114
of
100-
[categorical entailments](http://novacta.github.io/analytics/html/T_Novacta_Analytics_CategoricalEntailment.htm).
115+
[categorical entailments](https://novacta.github.io/analytics/html/39D67B46.htm).
101116

102-
## Randomization
117+
### Randomization
103118

104119
* Use Mersenne Twister
105-
[random number generators](http://novacta.github.io/analytics/html/T_Novacta_Analytics_RandomNumberGenerator.htm)
120+
[random number generators](https://novacta.github.io/analytics/html/E076C0AC.htm)
106121
to draw samples from basic statistical distributions.
107122
* Represent additional
108-
[probability distributions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_ProbabilityDistribution.htm)
123+
[probability distributions](https://novacta.github.io/analytics/html/1984D730.htm)
109124
to compute and sample from specific cumulative or probability density
110125
functions.
111126
* Select
112-
[random samples](http://novacta.github.io/analytics/html/T_Novacta_Analytics_RandomSampling.htm)
127+
[random samples](https://novacta.github.io/analytics/html/FCF45A04.htm)
113128
from a finite population, with
114-
[equal](http://novacta.github.io/analytics/html/T_Novacta_Analytics_SimpleRandomSampling.htm)
129+
[equal](https://novacta.github.io/analytics/html/37F088DE.htm)
115130
or
116-
[unequal](http://novacta.github.io/analytics/html/T_Novacta_Analytics_UnequalProbabilityRandomSampling.htm)
131+
[unequal](https://novacta.github.io/analytics/html/EC35632C.htm)
117132
probabilities of being inserted in a sample.
118-
* [Permute randomly](http://novacta.github.io/analytics/html/T_Novacta_Analytics_RandomIndexPermutation.htm)
133+
* [Permute randomly](https://novacta.github.io/analytics/html/C0371263.htm)
119134
a given collection of integers.
120135

121-
## Optimization
136+
### Optimization
122137

123-
* [Optimize continuous functions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_ContinuousOptimization.htm)
138+
* [Optimize continuous functions](https://novacta.github.io/analytics/html/3D985383.htm)
124139
having multiple arguments ranging over the real line.
125140
* Apply the Cross-Entropy method to
126141
represent continuous or combinatorial optimization problems via
127-
[Cross-Entropy contexts for optimization](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_SystemPerformanceOptimizationContext.htm),
142+
[Cross-Entropy contexts for optimization](https://novacta.github.io/analytics/html/1C32368C.htm),
128143
and solve them using a
129-
[Cross-Entropy optimizer](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_SystemPerformanceOptimizer.htm).
144+
[Cross-Entropy optimizer](https://novacta.github.io/analytics/html/E252E84.htm).
130145
* Take advantage of specialized Cross-Entropy contexts to
131146
optimize functions having as arguments
132-
[continuous variables](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_ContinuousOptimizationContext.htm),
133-
[combinations](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_CombinationOptimizationContext.htm),
134-
[partitions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_PartitionOptimizationContext.htm),
147+
[continuous variables](https://novacta.github.io/analytics/html/A8203153.htm),
148+
[combinations](https://novacta.github.io/analytics/html/236BBBCF.htm),
149+
[partitions](https://novacta.github.io/analytics/html/240B10D.htm),
135150
or
136-
[ensembles of categorical entailments](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_CategoricalEntailmentEnsembleOptimizationContext.htm).
151+
[ensembles of categorical entailments](https://novacta.github.io/analytics/html/EB7894F3.htm).
137152

138-
## Rare event simulation
153+
### Rare event simulation
139154

140155
* Express the problem of estimating the probability of
141-
rare events via
142-
[Cross-Entropy contexts for rare event simulation](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_RareEventProbabilityEstimationContext.htm),
156+
rare events via
157+
[Cross-Entropy contexts for rare event simulation](https://novacta.github.io/analytics/html/F877CA6A.htm),
143158
solvable using a
144-
[Cross-Entropy estimator](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_RareEventProbabilityEstimator.htm).
159+
[Cross-Entropy estimator](https://novacta.github.io/analytics/html/463F9A03.htm).
145160

146161
## Documentation
147162

148163
The current documentation includes the following topics.
149164

150-
* [Novacta.Analytics release notes](http://novacta.github.io/analytics/html/41221eed-891e-4925-a654-ecf8b2d38c65.htm).
151-
* [Testing environment](http://novacta.github.io/analytics/html/07a926cb-9c3c-432d-998b-0af7eea037f6.htm)
165+
* [Novacta.Analytics release notes](https://novacta.github.io/analytics/html/e6a1e4b5-02ef-4f97-9bd4-3bf049441535.htm).
166+
* [Build and test](https://novacta.github.io/analytics/html/07a926cb-9c3c-432d-998b-0af7eea037f6.htm)
152167
instructs about the setup required
153-
to test the assembly.
154-
* [Novacta.Analytics namespaces](http://novacta.github.io/analytics/html/G_Novacta_Analytics.htm)
155-
contains reference information about library
156-
types by namespace.
168+
to build and test the assembly.
169+
* Namespaces [Novacta.Analytics](https://novacta.github.io/analytics/html/2406EB43.htm)
170+
and [Novacta.Analytics.Advanced](https://novacta.github.io/analytics/html/F249DE1E.htm)
171+
contain reference information about assembly types.
157172

158173
## Versioning
159174

160-
We use [SemVer](http://semver.org/) for versioning.
161-
For available versions, see the
162-
[tags on this repository](https://github.com/novacta/analytics/tags).
175+
We use [SemVer](http://semver.org/) for versioning.
176+
For available versions, see the
177+
[tags on this repository](https://github.com/novacta/analytics/tags).
163178

164179
## Copyrights and Licenses
165180

166-
All source code is Copyright (c) 2020 Giovanni Lafratta.
181+
All source code is Copyright (c) 2018 Giovanni Lafratta.
167182

168-
**Novacta.Analytics** is licensed under the
169-
[MIT License](https://github.com/novacta/analytics/blob/master/LICENSE.md).
183+
**Novacta.Analytics** is licensed under the
184+
[MIT License](https://github.com/novacta/analytics/blob/master/LICENSE.md).
170185

171-
This project relies on native dynamic-link libraries obtained via the Intel® MKL custom DLL builder.
172-
[MKL](https://software.intel.com/en-us/mkl) is Copyright (c) 2018 Intel Corporation and
186+
This project relies on native dynamic-link libraries obtained
187+
via the Intel® oneAPI Math Kernel Library customDLL builder.
188+
[oneAPI MKL](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html) is
189+
Copyright (c) 2021 Intel® Corporation and
173190
licensed under the
174191
[ISSL](https://software.intel.com/en-us/license/intel-simplified-software-license)
175-
terms.
192+
terms.

0 commit comments

Comments
 (0)