1
1
# Header-Only C++-Library Wrapping GNU Scientific Library
2
2
3
3
` gslcpp ` is a header-only, modern C++-library intended to wrap all of GSL.
4
- - The first release covers functions and types related to ` gsl_vector ` . See
5
- especially
6
- - [ ` gsl::vector ` ] [ vector ] and
7
- - [ ` gsl::vector_view ` ] [ vector_view ] .
4
+ - The first release covers functions and types related to ` gsl_vector ` .
8
5
- The second release will cover multidimensional minimization.
9
6
- The third release will cover ` gsl_matrix ` and expand the capabilities of
10
7
vectors by way of integration with [ Eigen] ( https://eigen.tuxfamily.org ) .
11
8
- I have not yet planned further ahead.
12
9
13
- [ vector ] : https://tevaughan.github.io/gslcpp/html/structgsl_1_1vector.html#details
14
- [ vector_view ] : https://tevaughan.github.io/gslcpp/html/structgsl_1_1vector__view.html#details
15
-
16
10
## Products of Github Action
17
11
18
12
- [ Documentation via Doxygen] [ doxy ]
@@ -34,38 +28,9 @@ Every push to the repository causes a [github-action][3] to regenerate the
34
28
35
29
## Status
36
30
37
- The first release is almost done.
38
- - All element-types (` double ` , ` float ` , ` int ` , ` complex_float ` , etc.) are
39
- suported.
40
- - [ Move-construction] [ move ] is enabled and tested for dynamic vectors.
41
- - Move-assignment is intentionally disabled.
42
- - Every [ vector] [ vector ] that owns the storage for its elements (whether
43
- having elements stored on stack or having them in malloc-derived memory)
44
- is uniquely associated with the memory for its elements until it is
45
- destroyed.
46
- - A [ vector-view] [ vector_view ] inherits the same interface as a vector does
47
- but does not own the storage for the elements that it refers to.
48
- - All members of GSL's function-class are exposed as members of
49
- [ ` gsl::v_iface ` ] [ v_iface ] and tested.
50
- - There are also some global functions and, via operator-overloading, a bit
51
- of syntactic sugar, but the initial release will not go beyond the basic
52
- semantics of GSL's native vector-operations.
53
- - Each of the templated constructor-classes, [ ` gsl::vector ` ] [ vector ] and
54
- [ ` gsl::vector_view ` ] [ vector_view ] , descends from [ ` gsl::v_iface ` ] [ v_iface ]
55
- and often has deduced template-parameters on construction, so that the user
56
- need not specify them.
57
- - The compiler will even automatically determine from the initializer whether
58
- storage-size be known at compile-time and thereby pick template-parameters
59
- for [ ` gsl::vector ` ] [ vector ] so that storage resides on the stack when
60
- possible, though this can be overriden by explicit choice of
61
- template-parameters.
62
- - Unit-tests provide almost 100% code-coverage.
63
-
64
- What remains for the first release is to write narrative documentation for
65
- Doxygen's main page.
66
-
67
- [ v_iface ] : https://tevaughan.github.io/gslcpp/html/structgsl_1_1v__iface.html#details
68
- [ move ] : https://tevaughan.github.io/gslcpp/html/classgsl_1_1v__stor_3_01T_01_4.html#a6c8081bc309f81866cd4ef89d0054fe2
31
+ The first release is done.
32
+
33
+ Next up will be support for multidimensional miminization.
69
34
70
35
## How to Build
71
36
0 commit comments