*********** TrigFunc.nns is a NeuNet Pro Sample File ***********

This file contains special properties that allow NeuNet Pro to recognize it
as authorized NeuNet sample data.  Anyone using the unlicensed version
of NeuNet Pro is welcome to experiment with this sample data.
Please do not modify this file, or it will lose its status as authorized sample data.

For further information about Neunet Pro and additional sample data,
please visit the NeuNet Pro website at http://www.cormactech.com/neunet

All of this data has been created by CorMac Technologies Inc.
CorMac Technologies Inc. does not guarantee the accuracy of the data.
This data is intended solely for experimental purposes.


    ***************  More about the TrigFunc Data *******************

TrigFunc.nns is a database containing six fields and 10,000 records:
[IndexCounter1] is the primary key index, containing the row number.
                This field is not related to the function.
[Sign] is a function input, +1 or -1, random
[X]    is a function input, .00002 to .002, log random
[F]    is a function input, 100 to 100,000 (frequency), log random
[R]    is a function input = 25 * sqrt(F)
[Func] = Sign * {1 - Exp[-RX * (Cos(RX) + Sin(RX))]}


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' A basic program to generate 10,000 random examples of this function
' Doug McCormack, January 18, 1999
' CorMac Technolgies Inc. http://www.cormactech.com
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim X As Double     ' X varies between .00002 and .002
Dim F As Double     ' Frequency varies between 100 and 100,000
Dim R As Double     ' R = 25 * Sqrt(Frequency)
Dim RX As Double    ' RX = R * X
Dim Sign As Integer ' +1 or -1
Dim Func As Double: ' Func = Sign * {1 - Exp[-RX * (Cos(RX) + Sin(RX))]}

Dim i As Integer
Dim LogMax As Double, LogMin As Double, LogRange As Double

'OUTPUT 10,000 RANDOM PATTERNS
Open "OutFile.txt" For Output As #1
   Print #1, "Sign, X, R, FREQ, FUNC"
   For i = 1 To 10000
        
     'PICK F LOGARITHMICALLY DISTRIBUTED FROM 100 TO 100,000
      LogMin = Log(100): LogMax = Log(100000): LogRange = (LogMax - LogMin)
      F = Exp(LogMin + Rnd() * LogRange)

     'PICK X LOGARITHMICALLY DISTRIBUTED FROM .00002 TO .002
      LogMin = Log(0.00002): LogMax = Log(0.002): LogRange = (LogMax - LogMin)
      X = Exp(LogMin + Rnd() * LogRange)
       
     'CALCULATE RX AS PART OF FUNCTION
      R = 25 * Sqr(F): RX = R * X
        
     'PICK SIGN RANDOMLY -1 or +1
      Sign = 1
      If Rnd() <.5 Then Sign = -1
               
     'CALCULATE THE FUNCTION
      Func = Sign * (1 - Exp(-RX) * (Cos(RX) + Sin(RX)))
        
     'WRITE NEURAL NETWORK PATTERN AS NEW ROW IN TEXT FILE
      Print #1, Format$(Sign, " 0;-0"); ","; Format$(X, "0.#######"); ","; _
                Format$(R, "0.#######"); ","; Format$(F, "0.#######"); ","; _
                Format$(Func, "0.#######")
   Next i
Close
End