Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
rapid-mix
RapidLib
Commits
9cac0c29
Commit
9cac0c29
authored
Oct 06, 2017
by
mzed
Browse files
finishing hiding templates with typedef
parent
13e9722d
Changes
4
Show whitespace changes
Inline
Side-by-side
RapidAPI/RapidAPI/main.cpp
View file @
9cac0c29
...
...
@@ -212,9 +212,9 @@ int main(int argc, const char * argv[]) {
//Testing with labels
seriesClassification
<
double
>
myDTW
;
std
::
vector
<
trainingSeries
<
double
>
>
seriesVector
;
trainingSeries
<
double
>
tempSeries
;
seriesClassification
myDTW
;
std
::
vector
<
trainingSeries
>
seriesVector
;
trainingSeries
tempSeries
;
tempSeries
.
input
.
push_back
(
{
1.
,
5.
}
);
tempSeries
.
input
.
push_back
(
{
2.
,
4.
}
);
...
...
src/seriesClassification.cpp
View file @
9cac0c29
...
...
@@ -17,13 +17,13 @@
#define SEARCH_RADIUS 1
template
<
typename
T
>
seriesClassification
<
T
>::
seriesClassification
()
{};
seriesClassification
Template
<
T
>::
seriesClassification
Template
()
{};
template
<
typename
T
>
seriesClassification
<
T
>::~
seriesClassification
()
{};
seriesClassification
Template
<
T
>::~
seriesClassification
Template
()
{};
template
<
typename
T
>
bool
seriesClassification
<
T
>::
train
(
const
std
::
vector
<
trainingSeries
<
T
>
>
&
seriesSet
)
{
bool
seriesClassification
Template
<
T
>::
train
(
const
std
::
vector
<
trainingSeries
Template
<
T
>
>
&
seriesSet
)
{
assert
(
seriesSet
.
size
()
>
0
);
reset
();
bool
trained
=
true
;
...
...
@@ -58,7 +58,7 @@ bool seriesClassification<T>::train(const std::vector<trainingSeries<T> > &serie
};
template
<
typename
T
>
void
seriesClassification
<
T
>::
reset
()
{
void
seriesClassification
Template
<
T
>::
reset
()
{
allCosts
.
clear
();
allTrainingSeries
.
clear
();
lengthsPerLabel
.
clear
();
...
...
@@ -67,7 +67,7 @@ void seriesClassification<T>::reset() {
}
template
<
typename
T
>
std
::
string
seriesClassification
<
T
>::
run
(
const
std
::
vector
<
std
::
vector
<
T
>>
&
inputSeries
)
{
std
::
string
seriesClassification
Template
<
T
>::
run
(
const
std
::
vector
<
std
::
vector
<
T
>>
&
inputSeries
)
{
int
closestSeries
=
0
;
allCosts
.
clear
();
T
lowestCost
=
fastDTW
<
T
>::
getCost
(
inputSeries
,
allTrainingSeries
[
0
].
input
,
SEARCH_RADIUS
);
...
...
@@ -85,7 +85,7 @@ std::string seriesClassification<T>::run(const std::vector<std::vector<T>> &inpu
};
template
<
typename
T
>
T
seriesClassification
<
T
>::
run
(
const
std
::
vector
<
std
::
vector
<
T
>>
&
inputSeries
,
std
::
string
label
)
{
T
seriesClassification
Template
<
T
>::
run
(
const
std
::
vector
<
std
::
vector
<
T
>>
&
inputSeries
,
std
::
string
label
)
{
int
closestSeries
=
0
;
allCosts
.
clear
();
T
lowestCost
=
std
::
numeric_limits
<
T
>::
max
();
...
...
@@ -103,17 +103,17 @@ T seriesClassification<T>::run(const std::vector<std::vector<T>> &inputSeries, s
};
template
<
typename
T
>
std
::
vector
<
T
>
seriesClassification
<
T
>::
getCosts
()
const
{
std
::
vector
<
T
>
seriesClassification
Template
<
T
>::
getCosts
()
const
{
return
allCosts
;
}
template
<
typename
T
>
int
seriesClassification
<
T
>::
getMinLength
()
const
{
int
seriesClassification
Template
<
T
>::
getMinLength
()
const
{
return
minLength
;
}
template
<
typename
T
>
int
seriesClassification
<
T
>::
getMinLength
(
std
::
string
label
)
const
{
int
seriesClassification
Template
<
T
>::
getMinLength
(
std
::
string
label
)
const
{
int
labelMinLength
=
-
1
;
typename
std
::
map
<
std
::
string
,
minMax
<
int
>
>::
const_iterator
it
=
lengthsPerLabel
.
find
(
label
);
if
(
it
!=
lengthsPerLabel
.
end
())
{
...
...
@@ -123,12 +123,12 @@ int seriesClassification<T>::getMinLength(std::string label) const {
}
template
<
typename
T
>
int
seriesClassification
<
T
>::
getMaxLength
()
const
{
int
seriesClassification
Template
<
T
>::
getMaxLength
()
const
{
return
maxLength
;
}
template
<
typename
T
>
int
seriesClassification
<
T
>::
getMaxLength
(
std
::
string
label
)
const
{
int
seriesClassification
Template
<
T
>::
getMaxLength
(
std
::
string
label
)
const
{
int
labelMaxLength
=
-
1
;
typename
std
::
map
<
std
::
string
,
minMax
<
int
>
>::
const_iterator
it
=
lengthsPerLabel
.
find
(
label
);
if
(
it
!=
lengthsPerLabel
.
end
())
{
...
...
@@ -138,7 +138,7 @@ int seriesClassification<T>::getMaxLength(std::string label) const {
}
template
<
typename
T
>
seriesClassification
<
T
>::
minMax
<
T
>
seriesClassification
<
T
>::
calculateCosts
(
std
::
string
label
)
const
{
seriesClassification
Template
<
T
>::
minMax
<
T
>
seriesClassification
Template
<
T
>::
calculateCosts
(
std
::
string
label
)
const
{
minMax
<
T
>
calculatedMinMax
;
bool
foundSeries
=
false
;
std
::
vector
<
T
>
labelCosts
;
...
...
@@ -163,7 +163,7 @@ seriesClassification<T>::minMax<T> seriesClassification<T>::calculateCosts(std::
}
template
<
typename
T
>
seriesClassification
<
T
>::
minMax
<
T
>
seriesClassification
<
T
>::
calculateCosts
(
std
::
string
label1
,
std
::
string
label2
)
const
{
seriesClassification
Template
<
T
>::
minMax
<
T
>
seriesClassification
Template
<
T
>::
calculateCosts
(
std
::
string
label1
,
std
::
string
label2
)
const
{
minMax
<
T
>
calculatedMinMax
;
bool
foundSeries
=
false
;
std
::
vector
<
T
>
labelCosts
;
...
...
@@ -188,8 +188,8 @@ seriesClassification<T>::minMax<T> seriesClassification<T>::calculateCosts(std::
}
//explicit instantiation
template
class
seriesClassification
<
double
>;
template
class
seriesClassification
<
float
>;
template
class
seriesClassification
Template
<
double
>;
template
class
seriesClassification
Template
<
float
>;
//
...
...
src/seriesClassification.h
View file @
9cac0c29
...
...
@@ -22,17 +22,17 @@
*/
template
<
typename
T
>
class
seriesClassification
{
class
seriesClassification
Template
{
public:
/** Constructor, no params */
seriesClassification
();
~
seriesClassification
();
seriesClassification
Template
();
~
seriesClassification
Template
();
/** Train on a specified set of trainingSeries
* @param std::vector<trainingSeries> A vector of training series
*/
bool
train
(
const
std
::
vector
<
trainingSeries
<
T
>
>
&
seriesSet
);
bool
train
(
const
std
::
vector
<
trainingSeries
Template
<
T
>
>
&
seriesSet
);
/** Reset model to its initial state, forget all costs and training data*/
void
reset
();
...
...
@@ -98,11 +98,14 @@ public:
minMax
<
T
>
calculateCosts
(
std
::
string
label1
,
std
::
string
label2
)
const
;
private:
std
::
vector
<
trainingSeries
<
T
>
>
allTrainingSeries
;
std
::
vector
<
trainingSeries
Template
<
T
>
>
allTrainingSeries
;
std
::
vector
<
T
>
allCosts
;
int
maxLength
;
int
minLength
;
std
::
map
<
std
::
string
,
minMax
<
int
>
>
lengthsPerLabel
;
};
typedef
seriesClassificationTemplate
<
double
>
seriesClassification
;
//This is here to keep the old API working
typedef
seriesClassificationTemplate
<
float
>
seriesClassificationFloat
;
#endif
src/trainingExample.h
View file @
9cac0c29
...
...
@@ -25,9 +25,12 @@ typedef trainingExampleTemplate<float> trainingExampleFloat;
/** This is used by DTW models for training */
template
<
typename
T
>
struct
trainingSeries
{
struct
trainingSeries
Template
{
std
::
vector
<
std
::
vector
<
T
>
>
input
;
std
::
string
label
;
};
typedef
trainingSeriesTemplate
<
double
>
trainingSeries
;
typedef
trainingSeriesTemplate
<
float
>
trainingSeriesFloat
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment