]> SALOME platform Git repositories - modules/yacs.git/blob - src/pmml/Test/samples/unittest_ref_ann_model.f
Salome HOME
updated copyright message
[modules/yacs.git] / src / pmml / Test / samples / unittest_ref_ann_model.f
1       SUBROUTINE myTestFunc(rw,r,tu,tl,hu,hl,l,kw,yhat)
2 C --- *********************************************
3 C --- 
4 C ---  File used by unit test
5 C ---  PMMLBasicsTest1::testExportNeuralNetworkFortran
6 C --- 
7 C --- *********************************************
8       IMPLICIT DOUBLE PRECISION (V)
9       DOUBLE PRECISION rw
10       DOUBLE PRECISION r
11       DOUBLE PRECISION tu
12       DOUBLE PRECISION tl
13       DOUBLE PRECISION hu
14       DOUBLE PRECISION hl
15       DOUBLE PRECISION l
16       DOUBLE PRECISION kw
17       DOUBLE PRECISION yhat
18
19 C --- Preprocessing of the inputs
20       VXNrw = ( rw - 0.099999D0 ) / 0.028899D0
21       VXNr = ( r - 25048.9D0 ) / 14419.8D0
22       VXNtu = ( tu - 89334.9D0 ) / 15180.8D0
23       VXNtl = ( tl - 89.5523D0 ) / 15.2866D0
24       VXNhu = ( hu - 1050D0 ) / 34.6793D0
25       VXNhl = ( hl - 760.001D0 ) / 34.6718D0
26       VXNl = ( l - 1400.02D0 ) / 161.826D0
27       VXNkw = ( kw - 10950D0 ) / 632.913D0
28
29 C --- Values of the weights
30       VW1 = -1.74548
31       VW2 = 6.96551
32       VW3 = -1.26357
33       VW4 = 0.753663
34       VW5 = 0.00165366
35       VW6 = 0.004725
36       VW7 = 0.00996979
37       VW8 = 0.178798
38       VW9 = -0.180981
39       VW10 = -0.173569
40       VW11 = 0.0855967
41
42 C --- hidden neural number 1
43       VAct1 = VW3
44      1      + VW4 * VXNrw
45      1      + VW5 * VXNr
46      1      + VW6 * VXNtu
47      1      + VW7 * VXNtl
48      1      + VW8 * VXNhu
49      1      + VW9 * VXNhl
50      1      + VW10 * VXNl
51      1      + VW11 * VXNkw
52
53       VPot1 = 1.D0 / (1.D0 + DEXP(-1.D0 * VAct1))
54
55 C --- Output
56       VOut = VW1
57      1    + VW2 * VPot1
58
59 C --- Pretraitment of the output
60       yhat = 77.8117D0 + 45.7061D0 * VOut;
61
62 C --- 
63       RETURN
64       END