mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-08 20:46:52 +03:00
Merge pull request #967 from haverland/921-keinNulldurchgang
No transition if previous values calculate the eval_vorgaenger is 9 (no transition)
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
static const char* TAG = "flow_analog";
|
static const char* TAG = "flow_analog";
|
||||||
|
|
||||||
bool debugdetailgeneral = false;
|
bool debugdetailgeneral = true;
|
||||||
|
|
||||||
ClassFlowCNNGeneral::ClassFlowCNNGeneral(ClassFlowAlignment *_flowalign, t_CNNType _cnntype) : ClassFlowImage(NULL, TAG)
|
ClassFlowCNNGeneral::ClassFlowCNNGeneral(ClassFlowAlignment *_flowalign, t_CNNType _cnntype) : ClassFlowImage(NULL, TAG)
|
||||||
{
|
{
|
||||||
@@ -201,7 +201,7 @@ int ClassFlowCNNGeneral::ZeigerEvalHybridNeu(float zahl, float zahl_vorgaenger,
|
|||||||
if (AnalogerVorgaenger)
|
if (AnalogerVorgaenger)
|
||||||
{
|
{
|
||||||
// result = ZeigerEvalAnalogToDigitNeu(zahl, eval_vorgaenger);
|
// result = ZeigerEvalAnalogToDigitNeu(zahl, eval_vorgaenger);
|
||||||
result = ZeigerEvalAnalogToDigitNeu(zahl, zahl_vorgaenger);
|
result = ZeigerEvalAnalogToDigitNeu(zahl, zahl_vorgaenger, eval_vorgaenger);
|
||||||
if (debugdetailgeneral) LogFile.WriteToFile("ClassFlowCNNGeneral::ZeigerEvalHybridNeu - Analoger Vorgänger, Bewertung über ZeigerEvalAnalogNeu = " + std::to_string(result) +
|
if (debugdetailgeneral) LogFile.WriteToFile("ClassFlowCNNGeneral::ZeigerEvalHybridNeu - Analoger Vorgänger, Bewertung über ZeigerEvalAnalogNeu = " + std::to_string(result) +
|
||||||
" zahl: " + std::to_string(zahl) + " zahl_vorgaenger = " + std::to_string(zahl_vorgaenger)+ " eval_vorgaenger = " + std::to_string(eval_vorgaenger) + " DigitalUnschaerfe = " + std::to_string(DigitalUnschaerfe));
|
" zahl: " + std::to_string(zahl) + " zahl_vorgaenger = " + std::to_string(zahl_vorgaenger)+ " eval_vorgaenger = " + std::to_string(eval_vorgaenger) + " DigitalUnschaerfe = " + std::to_string(DigitalUnschaerfe));
|
||||||
return result;
|
return result;
|
||||||
@@ -245,7 +245,7 @@ int ClassFlowCNNGeneral::ZeigerEvalHybridNeu(float zahl, float zahl_vorgaenger,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ClassFlowCNNGeneral::ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vorgaenger)
|
int ClassFlowCNNGeneral::ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vorgaenger, int eval_vorgaenger)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
int ergebnis_nachkomma = ((int) floor(zahl * 10)) % 10;
|
int ergebnis_nachkomma = ((int) floor(zahl * 10)) % 10;
|
||||||
@@ -272,7 +272,8 @@ int ClassFlowCNNGeneral::ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vor
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ziffer_vorgaenger <= 1) // Nulldurchgang hat stattgefunden (!Bewertung über Prev_value und nicht Zahl!) --> hier aufrunden (2.8 --> 3, aber auch 3.1 --> 3)
|
if (ziffer_vorgaenger <= 1 && eval_vorgaenger<9) // Nulldurchgang hat stattgefunden (!Bewertung über Prev_value und nicht Zahl!) --> hier aufrunden (2.8 --> 3, aber auch 3.1 --> 3)
|
||||||
|
// aber Sonderfall ziffer_vorgaeger = 0.1 vor_vorgaenger 9.9 => eval_vorgaenger ist 9, damit hat Nulldurchgang nicht stattgefunden.
|
||||||
{
|
{
|
||||||
if (ergebnis_nachkomma > 5)
|
if (ergebnis_nachkomma > 5)
|
||||||
result = (ergebnis_vorkomma + 1) % 10;
|
result = (ergebnis_vorkomma + 1) % 10;
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ protected:
|
|||||||
// int ZeigerEval(float zahl, int ziffer_vorgaenger);
|
// int ZeigerEval(float zahl, int ziffer_vorgaenger);
|
||||||
// int ZeigerEvalHybrid(float zahl, float zahl_vorgaenger, int eval_vorgaenger);
|
// int ZeigerEvalHybrid(float zahl, float zahl_vorgaenger, int eval_vorgaenger);
|
||||||
int ZeigerEvalAnalogNeu(float zahl, int ziffer_vorgaenger);
|
int ZeigerEvalAnalogNeu(float zahl, int ziffer_vorgaenger);
|
||||||
int ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vorgaenger);
|
int ZeigerEvalAnalogToDigitNeu(float zahl, float ziffer_vorgaenger, int eval_vorgaenger);
|
||||||
int ZeigerEvalHybridNeu(float zahl, float zahl_vorgaenger, int eval_vorgaenger, bool AnalogerVorgaenger = false);
|
int ZeigerEvalHybridNeu(float zahl, float zahl_vorgaenger, int eval_vorgaenger, bool AnalogerVorgaenger = false);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void test_doFlow() {
|
|||||||
/*
|
/*
|
||||||
* https://github.com/jomjol/AI-on-the-edge-device/issues/921
|
* https://github.com/jomjol/AI-on-the-edge-device/issues/921
|
||||||
*
|
*
|
||||||
* Das Ergebnis sollte "376529.6" sein. Bzw. 16.98 ohne Extended true
|
* Das Ergebnis sollte "376529.6" sein.
|
||||||
*/
|
*/
|
||||||
digits = { 3.0, 7.0, 6.0, 5.0, 2.5, 9.6};
|
digits = { 3.0, 7.0, 6.0, 5.0, 2.5, 9.6};
|
||||||
analogs = { 6.4};
|
analogs = { 6.4};
|
||||||
|
|||||||
Reference in New Issue
Block a user