home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 32 / hot34.iso / ficheros / LVB / T2W32523.ZIP / _MATRIX.FRM < prev    next >
Text File  |  1998-04-07  |  26KB  |  993 lines

  1. VERSION 5.00
  2. Object = "{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}#1.0#0"; "THREED32.OCX"
  3. Begin VB.Form frmMatrix 
  4.    BorderStyle     =   4  'Fixed ToolWindow
  5.    Caption         =   "Matrix"
  6.    ClientHeight    =   4845
  7.    ClientLeft      =   1890
  8.    ClientTop       =   3270
  9.    ClientWidth     =   7485
  10.    MaxButton       =   0   'False
  11.    MDIChild        =   -1  'True
  12.    PaletteMode     =   1  'UseZOrder
  13.    ScaleHeight     =   4845
  14.    ScaleWidth      =   7485
  15.    ShowInTaskbar   =   0   'False
  16.    Begin VB.TextBox txt_Result 
  17.       BackColor       =   &H00C0C0C0&
  18.       BorderStyle     =   0  'None
  19.       Height          =   4110
  20.       Left            =   105
  21.       Locked          =   -1  'True
  22.       MultiLine       =   -1  'True
  23.       ScrollBars      =   2  'Vertical
  24.       TabIndex        =   0
  25.       Top             =   630
  26.       Width           =   7260
  27.    End
  28.    Begin Threed.SSPanel SSPanel1 
  29.       Align           =   1  'Align Top
  30.       Height          =   480
  31.       Left            =   0
  32.       TabIndex        =   1
  33.       Top             =   0
  34.       Width           =   7485
  35.       _Version        =   65536
  36.       _ExtentX        =   13203
  37.       _ExtentY        =   847
  38.       _StockProps     =   15
  39.       ForeColor       =   -2147483640
  40.       BackColor       =   12632256
  41.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  42.          Name            =   "MS Sans Serif"
  43.          Size            =   8.25
  44.          Charset         =   0
  45.          Weight          =   400
  46.          Underline       =   0   'False
  47.          Italic          =   0   'False
  48.          Strikethrough   =   0   'False
  49.       EndProperty
  50.       Begin VB.ComboBox cmb_Function 
  51.          Height          =   315
  52.          Left            =   1365
  53.          TabIndex        =   2
  54.          Top             =   90
  55.          Width           =   4785
  56.       End
  57.       Begin Threed.SSCommand cmdNP 
  58.          Height          =   300
  59.          Index           =   1
  60.          Left            =   7140
  61.          TabIndex        =   6
  62.          Top             =   90
  63.          Width           =   255
  64.          _Version        =   65536
  65.          _ExtentX        =   450
  66.          _ExtentY        =   529
  67.          _StockProps     =   78
  68.          Caption         =   ">"
  69.          BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  70.             Name            =   "MS Sans Serif"
  71.             Size            =   8.25
  72.             Charset         =   0
  73.             Weight          =   400
  74.             Underline       =   0   'False
  75.             Italic          =   0   'False
  76.             Strikethrough   =   0   'False
  77.          EndProperty
  78.          BevelWidth      =   1
  79.          Font3D          =   3
  80.          RoundedCorners  =   0   'False
  81.          Outline         =   0   'False
  82.       End
  83.       Begin Threed.SSCommand cmdNP 
  84.          Height          =   300
  85.          Index           =   0
  86.          Left            =   6300
  87.          TabIndex        =   5
  88.          Top             =   90
  89.          Width           =   255
  90.          _Version        =   65536
  91.          _ExtentX        =   450
  92.          _ExtentY        =   529
  93.          _StockProps     =   78
  94.          Caption         =   "<"
  95.          BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  96.             Name            =   "MS Sans Serif"
  97.             Size            =   8.25
  98.             Charset         =   0
  99.             Weight          =   400
  100.             Underline       =   0   'False
  101.             Italic          =   0   'False
  102.             Strikethrough   =   0   'False
  103.          EndProperty
  104.          BevelWidth      =   1
  105.          Font3D          =   3
  106.          RoundedCorners  =   0   'False
  107.          Outline         =   0   'False
  108.       End
  109.       Begin Threed.SSCommand SSCommand1 
  110.          Default         =   -1  'True
  111.          Height          =   300
  112.          Left            =   6615
  113.          TabIndex        =   3
  114.          Top             =   90
  115.          Width           =   465
  116.          _Version        =   65536
  117.          _ExtentX        =   820
  118.          _ExtentY        =   529
  119.          _StockProps     =   78
  120.          Caption         =   "&Go"
  121.          BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  122.             Name            =   "MS Sans Serif"
  123.             Size            =   8.25
  124.             Charset         =   0
  125.             Weight          =   400
  126.             Underline       =   0   'False
  127.             Italic          =   0   'False
  128.             Strikethrough   =   0   'False
  129.          EndProperty
  130.          BevelWidth      =   1
  131.          RoundedCorners  =   0   'False
  132.          Outline         =   0   'False
  133.       End
  134.       Begin VB.Label Label2 
  135.          Caption         =   "&Select a function"
  136.          Height          =   255
  137.          Left            =   90
  138.          TabIndex        =   4
  139.          Top             =   120
  140.          Width           =   1275
  141.       End
  142.    End
  143. End
  144. Attribute VB_Name = "frmMatrix"
  145. Attribute VB_GlobalNameSpace = False
  146. Attribute VB_Creatable = False
  147. Attribute VB_PredeclaredId = True
  148. Attribute VB_Exposed = False
  149. Option Explicit
  150. Option Base 1
  151.  
  152. Private Const Iteration = 250
  153.  
  154. Dim IsLoaded         As Integer
  155.  
  156. Dim TimerStartOk     As Integer
  157. Dim TimerCloseOk     As Integer
  158.  
  159. Dim TimerHandle      As Integer
  160. Dim TimerValue       As Long
  161.  
  162. Private Sub cmdNP_Click(Index As Integer)
  163.  
  164.    Call sub_NextPrev(cmb_Function, Index)
  165.  
  166. End Sub
  167.  
  168.  
  169. Private Sub cmb_Function_Click()
  170.    
  171.    If (IsLoaded = False) Then Exit Sub
  172.    
  173.    Call cDisableFI(mdiT2W.Picture1)
  174.    
  175.    txt_Result = ""
  176.    
  177.    DoEvents
  178.    
  179.    Select Case cmb_Function.ListIndex
  180.       Case 0
  181.          Call TestMatrixAdd
  182.       Case 1
  183.          Call TestMatrixSub
  184.       Case 2
  185.          Call TestMatrixMul
  186.       Case 3
  187.          Call TestMatrixCopy
  188.       Case 4
  189.          Call TestMatrixCompare
  190.       Case 5
  191.          Call TestMatrixFill
  192.       Case 6
  193.          Call TestMatrixDet
  194.       Case 7
  195.          Call TestMatrixInv
  196.       Case 8
  197.          Call TestMatrixTranspose
  198.       Case 9
  199.          Call TestMatrixMinorCofactor
  200.       Case 10
  201.          Call TestMatrixSymToeplitz
  202.    End Select
  203.  
  204.    DoEvents
  205.    Call cEnableFI(mdiT2W.Picture1)
  206.    
  207. End Sub
  208.  
  209.  
  210. Private Sub Form_Activate()
  211.  
  212.    mdiT2W.Label2.Caption = cInsertBlocks(mdiT2W.Label2.Tag, "" & Iteration)
  213.  
  214. End Sub
  215.  
  216. Private Sub Form_Load()
  217.  
  218.    IsLoaded = False
  219.    
  220.    Show
  221.  
  222.    Call sub_Load_Combo(cmb_Function, T2WDirInst + "_matrix.t2w")
  223.    
  224.    IsLoaded = True
  225.    
  226. End Sub
  227.  
  228. Private Sub SSCommand1_Click()
  229.    
  230.    Call cmb_Function_Click
  231.    
  232. End Sub
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240. Private Sub TestMatrixAdd()
  241.  
  242.    Dim lResult          As Long
  243.    Dim strResult        As String
  244.    Dim strDisplay       As String
  245.    
  246.    Dim i                As Integer
  247.    Dim j                As Integer
  248.    
  249.    Dim TmpA             As String
  250.    Dim TmpB             As String
  251.    Dim TmpC             As String
  252.  
  253.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  254.    ReDim ArrayB(1 To 3, 1 To 3) As Double
  255.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  256.  
  257.    Randomize Timer
  258.  
  259.    For i = 1 To 3
  260.       For j = 1 To 3
  261.          ArrayA(i, j) = Int(RandI * Rnd(1))
  262.          ArrayB(i, j) = Int(RandI * Rnd(1))
  263.          ArrayC(i, j) = 0
  264.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  265.          TmpB = TmpB + Format$(ArrayB(i, j), "00000  ")
  266.       Next j
  267.       TmpA = TmpA + vbCrLf
  268.       TmpB = TmpB + vbCrLf
  269.    Next i
  270.  
  271.    Call cMatrixAdd(3, ArrayA(), ArrayB(), ArrayC())
  272.  
  273.    For i = 1 To 3
  274.       For j = 1 To 3
  275.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  276.       Next j
  277.       TmpC = TmpC + vbCrLf
  278.    Next i
  279.  
  280.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  281.    strDisplay = strDisplay & "Second array (B) is " & vbCrLf & vbCrLf & TmpB & vbCrLf
  282.    strDisplay = strDisplay & "(A) + (B) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  283.  
  284.    txt_Result = strDisplay
  285.  
  286.    'time the function
  287.  
  288.    TimerHandle = cTimerOpen()
  289.    TimerStartOk = cTimerStart(TimerHandle)
  290.    
  291.    For i = 1 To Iteration
  292.       Call cMatrixAdd(3, ArrayA(), ArrayB(), ArrayC())
  293.    Next i
  294.    
  295.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  296.    
  297.    TimerCloseOk = cTimerClose(TimerHandle)
  298.  
  299. End Sub
  300.  
  301.  
  302.  
  303. Private Sub TestMatrixSub()
  304.  
  305.    Dim lResult          As Long
  306.    Dim strResult        As String
  307.    Dim strDisplay       As String
  308.    
  309.    Dim i                As Integer
  310.    Dim j                As Integer
  311.    
  312.    Dim TmpA             As String
  313.    Dim TmpB             As String
  314.    Dim TmpC             As String
  315.  
  316.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  317.    ReDim ArrayB(1 To 3, 1 To 3) As Double
  318.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  319.  
  320.    Randomize Timer
  321.  
  322.    For i = 1 To 3
  323.       For j = 1 To 3
  324.          ArrayA(i, j) = Int(RandI * Rnd(1))
  325.          ArrayB(i, j) = Int(RandI * Rnd(1))
  326.          ArrayC(i, j) = 0
  327.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  328.          TmpB = TmpB + Format$(ArrayB(i, j), "00000  ")
  329.       Next j
  330.       TmpA = TmpA + vbCrLf
  331.       TmpB = TmpB + vbCrLf
  332.    Next i
  333.  
  334.    Call cMatrixSub(3, ArrayA(), ArrayB(), ArrayC())
  335.  
  336.    For i = 1 To 3
  337.       For j = 1 To 3
  338.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  339.       Next j
  340.       TmpC = TmpC + vbCrLf
  341.    Next i
  342.  
  343.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  344.    strDisplay = strDisplay & "Second array (B) is " & vbCrLf & vbCrLf & TmpB & vbCrLf
  345.    strDisplay = strDisplay & "(A) - (B) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  346.  
  347.    txt_Result = strDisplay
  348.  
  349.    'time the function
  350.  
  351.    TimerHandle = cTimerOpen()
  352.    TimerStartOk = cTimerStart(TimerHandle)
  353.    
  354.    For i = 1 To Iteration
  355.       Call cMatrixSub(3, ArrayA(), ArrayB(), ArrayC())
  356.    Next i
  357.    
  358.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  359.    
  360.    TimerCloseOk = cTimerClose(TimerHandle)
  361.  
  362. End Sub
  363.  
  364. Private Sub TestMatrixMul()
  365.  
  366.    Dim lResult          As Long
  367.    Dim strResult        As String
  368.    Dim strDisplay       As String
  369.    
  370.    Dim i                As Integer
  371.    Dim j                As Integer
  372.    
  373.    Dim TmpA             As String
  374.    Dim TmpB             As String
  375.    Dim TmpC             As String
  376.  
  377.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  378.    ReDim ArrayB(1 To 3, 1 To 3) As Double
  379.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  380.  
  381.    Randomize Timer
  382.  
  383.    For i = 1 To 3
  384.       For j = 1 To 3
  385.          ArrayA(i, j) = Int(RandI * Rnd(1))
  386.          ArrayB(i, j) = Int(RandI * Rnd(1))
  387.          ArrayC(i, j) = 0
  388.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  389.          TmpB = TmpB + Format$(ArrayB(i, j), "00000  ")
  390.       Next j
  391.       TmpA = TmpA + vbCrLf
  392.       TmpB = TmpB + vbCrLf
  393.    Next i
  394.  
  395.    Call cMatrixMul(3, ArrayA(), ArrayB(), ArrayC())
  396.  
  397.    For i = 1 To 3
  398.       For j = 1 To 3
  399.          TmpC = TmpC + Format$(ArrayC(i, j), "0000000000  ")
  400.       Next j
  401.       TmpC = TmpC + vbCrLf
  402.    Next i
  403.  
  404.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  405.    strDisplay = strDisplay & "Second array (B) is " & vbCrLf & vbCrLf & TmpB & vbCrLf
  406.    strDisplay = strDisplay & "(A) * (B) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  407.  
  408.    txt_Result = strDisplay
  409.  
  410.    'time the function
  411.  
  412.    TimerHandle = cTimerOpen()
  413.    TimerStartOk = cTimerStart(TimerHandle)
  414.    
  415.    For i = 1 To Iteration
  416.       Call cMatrixMul(3, ArrayA(), ArrayB(), ArrayC())
  417.    Next i
  418.    
  419.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  420.    
  421.    TimerCloseOk = cTimerClose(TimerHandle)
  422.  
  423. End Sub
  424.  
  425. Private Sub TestMatrixCopy()
  426.  
  427.    Dim lResult          As Long
  428.    Dim strResult        As String
  429.    Dim strDisplay       As String
  430.    
  431.    Dim i                As Integer
  432.    Dim j                As Integer
  433.    
  434.    Dim TmpA             As String
  435.    Dim TmpC             As String
  436.  
  437.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  438.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  439.  
  440.    Randomize Timer
  441.  
  442.    For i = 1 To 3
  443.       For j = 1 To 3
  444.          ArrayA(i, j) = Int(RandI * Rnd(1))
  445.          ArrayC(i, j) = 0
  446.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  447.       Next j
  448.       TmpA = TmpA + vbCrLf
  449.    Next i
  450.  
  451.    Call cMatrixCopy(3, ArrayA(), ArrayC())
  452.  
  453.    For i = 1 To 3
  454.       For j = 1 To 3
  455.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  456.       Next j
  457.       TmpC = TmpC + vbCrLf
  458.    Next i
  459.  
  460.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  461.    strDisplay = strDisplay & "(A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  462.  
  463.    txt_Result = strDisplay
  464.  
  465.    'time the function
  466.  
  467.    TimerHandle = cTimerOpen()
  468.    TimerStartOk = cTimerStart(TimerHandle)
  469.    
  470.    For i = 1 To Iteration
  471.       Call cMatrixCopy(3, ArrayA(), ArrayC())
  472.    Next i
  473.    
  474.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  475.    
  476.    TimerCloseOk = cTimerClose(TimerHandle)
  477.  
  478. End Sub
  479.  
  480. Private Sub TestMatrixCompare()
  481.  
  482.    Dim intResult        As Integer
  483.    Dim strResult        As String
  484.    Dim strDisplay       As String
  485.    
  486.    Dim i                As Integer
  487.    Dim j                As Integer
  488.    
  489.    Dim TmpA             As String
  490.    Dim TmpC             As String
  491.  
  492.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  493.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  494.  
  495.    Randomize Timer
  496.  
  497.    For i = 1 To 3
  498.       For j = 1 To 3
  499.          ArrayA(i, j) = Int(RandI * Rnd(1))
  500.          ArrayC(i, j) = Int(RandI * Rnd(1))
  501.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  502.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  503.       Next j
  504.       TmpA = TmpA + vbCrLf
  505.       TmpC = TmpC + vbCrLf
  506.    Next i
  507.  
  508.    intResult = cMatrixCompare(3, ArrayA(), ArrayC())
  509.  
  510.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  511.    strDisplay = strDisplay & "Second array (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  512.    strDisplay = strDisplay & "Compare of (A) = (C) is " & intResult & vbCrLf & vbCrLf
  513.  
  514.    TmpA = ""
  515.    TmpC = ""
  516.  
  517.    For i = 1 To 3
  518.       For j = 1 To 3
  519.          ArrayA(i, j) = Int(RandI * Rnd(1))
  520.          ArrayC(i, j) = ArrayA(i, j)
  521.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  522.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  523.       Next j
  524.       TmpA = TmpA + vbCrLf
  525.       TmpC = TmpC + vbCrLf
  526.    Next i
  527.  
  528.    intResult = cMatrixCompare(3, ArrayA(), ArrayC())
  529.  
  530.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  531.    strDisplay = strDisplay & "Second array (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  532.    strDisplay = strDisplay & "Compare of (A) = (C) is " & intResult & vbCrLf & vbCrLf
  533.  
  534.    txt_Result = strDisplay
  535.  
  536.    'time the function
  537.  
  538.    TimerHandle = cTimerOpen()
  539.    TimerStartOk = cTimerStart(TimerHandle)
  540.    
  541.    For i = 1 To Iteration
  542.       intResult = cMatrixCompare(3, ArrayA(), ArrayC())
  543.    Next i
  544.    
  545.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  546.    
  547.    TimerCloseOk = cTimerClose(TimerHandle)
  548.  
  549. End Sub
  550.  
  551. Private Sub TestMatrixFill()
  552.  
  553.    Dim intResult        As Integer
  554.    Dim strResult        As String
  555.    Dim strDisplay       As String
  556.    
  557.    Dim i                As Integer
  558.    Dim j                As Integer
  559.    
  560.    Dim TmpA             As String
  561.  
  562.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  563.  
  564.    Randomize Timer
  565.  
  566.    intResult = cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  567.  
  568.    For i = 1 To 3
  569.       For j = 1 To 3
  570.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  571.       Next j
  572.       TmpA = TmpA + vbCrLf
  573.    Next i
  574.    
  575.    strDisplay = strDisplay & "Matrix ZERO is " & vbCrLf & vbCrLf & TmpA & vbCrLf & vbCrLf
  576.  
  577.    TmpA = ""
  578.    intResult = cMatrixFill(3, ArrayA(), MATRIX_UNIT)
  579.  
  580.    For i = 1 To 3
  581.       For j = 1 To 3
  582.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  583.       Next j
  584.       TmpA = TmpA + vbCrLf
  585.    Next i
  586.    
  587.    strDisplay = strDisplay & "Matrix UNIT is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  588.    
  589.    txt_Result = strDisplay
  590.  
  591.    'time the function
  592.  
  593.    TimerHandle = cTimerOpen()
  594.    TimerStartOk = cTimerStart(TimerHandle)
  595.    
  596.    For i = 1 To Iteration
  597.       Call cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  598.    Next i
  599.    
  600.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  601.    
  602.    TimerCloseOk = cTimerClose(TimerHandle)
  603.    
  604. End Sub
  605.  
  606. Private Sub TestMatrixDet()
  607.  
  608.    Dim intResult        As Integer
  609.    Dim strResult        As String
  610.    Dim strDisplay       As String
  611.    
  612.    Dim i                As Integer
  613.    Dim j                As Integer
  614.    
  615.    Dim det              As Double
  616.    Dim nSize            As Integer
  617.  
  618.    Dim TmpA             As String
  619.  
  620.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  621.  
  622.    Randomize Timer
  623.  
  624.    nSize = 3
  625.    
  626.    ReDim ArrayA(1 To nSize, 1 To nSize) As Double
  627.  
  628.    Randomize Timer
  629.  
  630.    For i = 1 To nSize
  631.       For j = 1 To nSize
  632.          ArrayA(i, j) = Int(RandI * Rnd(1))
  633.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  634.       Next j
  635.       TmpA = TmpA + vbCrLf
  636.    Next i
  637.  
  638.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  639.    strDisplay = strDisplay & "Det of (A) = " & cMatrixDet(nSize, ArrayA()) & vbCrLf & vbCrLf
  640.  
  641.    txt_Result = strDisplay
  642.  
  643.    'time the function
  644.  
  645.    TimerHandle = cTimerOpen()
  646.    TimerStartOk = cTimerStart(TimerHandle)
  647.    
  648.    For i = 1 To Iteration
  649.       det = cMatrixDet(nSize, ArrayA())
  650.    Next i
  651.    
  652.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  653.    
  654.    TimerCloseOk = cTimerClose(TimerHandle)
  655.  
  656. End Sub
  657.  
  658. Private Sub TestMatrixInv()
  659.  
  660.    Dim intResult        As Integer
  661.    Dim strResult        As String
  662.    Dim strDisplay       As String
  663.    
  664.    Dim i                As Integer
  665.    Dim j                As Integer
  666.    
  667.    Dim TmpA             As String
  668.    Dim TmpC             As String
  669.  
  670.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  671.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  672.  
  673.    Randomize Timer
  674.  
  675.    intResult = cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  676.    intResult = cMatrixFill(3, ArrayC(), MATRIX_UNIT)
  677.  
  678.    For i = 1 To 3
  679.       For j = 1 To 3
  680.          ArrayA(i, j) = Int(RandI * Rnd(1))
  681.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  682.       Next j
  683.       TmpA = TmpA + vbCrLf
  684.    Next i
  685.    
  686.    intResult = cMatrixInv(3, ArrayA(), ArrayC())
  687.  
  688.    If (intResult = True) Then
  689.  
  690.       For i = 1 To 3
  691.          For j = 1 To 3
  692.             TmpC = TmpC + Format$(ArrayC(i, j), "0.0000000  ")
  693.          Next j
  694.          TmpC = TmpC + vbCrLf
  695.       Next i
  696.  
  697.    Else
  698.  
  699.       TmpC = " 'can be inverted'"
  700.  
  701.    End If
  702.  
  703.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  704.    strDisplay = strDisplay & "Inv of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  705.  
  706.    TmpA = ""
  707.    TmpC = ""
  708.  
  709.    intResult = cMatrixFill(3, ArrayA(), MATRIX_ZERO)
  710.    intResult = cMatrixFill(3, ArrayC(), MATRIX_ZERO)
  711.  
  712.    For i = 1 To 3
  713.       For j = 1 To 3
  714.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  715.       Next j
  716.       TmpA = TmpA + vbCrLf
  717.    Next i
  718.    
  719.    intResult = cMatrixInv(3, ArrayA(), ArrayC())
  720.  
  721.    If (intResult = True) Then
  722.  
  723.       For i = 1 To 3
  724.          For j = 1 To 3
  725.             TmpC = TmpC + Format$(ArrayC(i, j), "0.0000000  ")
  726.          Next j
  727.          TmpC = TmpC + vbCrLf
  728.       Next i
  729.  
  730.    Else
  731.  
  732.       TmpC = " 'can be inverted'" + vbCrLf
  733.  
  734.    End If
  735.  
  736.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  737.    strDisplay = strDisplay & "Inv of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  738.  
  739.    TmpA = ""
  740.    TmpC = ""
  741.  
  742.    intResult = cMatrixFill(3, ArrayA(), MATRIX_UNIT)
  743.    intResult = cMatrixFill(3, ArrayC(), MATRIX_ZERO)
  744.  
  745.    For i = 1 To 3
  746.       For j = 1 To 3
  747.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  748.       Next j
  749.       TmpA = TmpA + vbCrLf
  750.    Next i
  751.    
  752.    intResult = cMatrixInv(3, ArrayA(), ArrayC())
  753.  
  754.    If (intResult = True) Then
  755.  
  756.       For i = 1 To 3
  757.          For j = 1 To 3
  758.             TmpC = TmpC + Format$(ArrayC(i, j), "0.0000000  ")
  759.          Next j
  760.          TmpC = TmpC + vbCrLf
  761.       Next i
  762.  
  763.    Else
  764.  
  765.       TmpC = " 'can be inverted'" + vbCrLf
  766.  
  767.    End If
  768.  
  769.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  770.    strDisplay = strDisplay & "Inv of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  771.  
  772.    txt_Result = strDisplay
  773.  
  774.    'time the function
  775.  
  776.    For i = 1 To 3
  777.       For j = 1 To 3
  778.          ArrayA(i, j) = Int(RandI * Rnd(1))
  779.       Next j
  780.    Next i
  781.  
  782.    TimerHandle = cTimerOpen()
  783.    TimerStartOk = cTimerStart(TimerHandle)
  784.    
  785.    For i = 1 To Iteration
  786.       Call cMatrixInv(3, ArrayA(), ArrayC())
  787.    Next i
  788.    
  789.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  790.    
  791.    TimerCloseOk = cTimerClose(TimerHandle)
  792.  
  793. End Sub
  794.  
  795. Private Sub TestMatrixTranspose()
  796.  
  797.    Dim intResult        As Integer
  798.    Dim strResult        As String
  799.    Dim strDisplay       As String
  800.    
  801.    Dim i                As Integer
  802.    Dim j                As Integer
  803.    
  804.    Dim TmpA             As String
  805.    Dim TmpC             As String
  806.  
  807.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  808.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  809.  
  810.    Randomize Timer
  811.  
  812.    For i = 1 To 3
  813.       For j = 1 To 3
  814.          ArrayA(i, j) = Int(RandI * Rnd(1))
  815.          ArrayC(i, j) = 0
  816.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  817.       Next j
  818.       TmpA = TmpA + vbCrLf
  819.    Next i
  820.  
  821.    Call cMatrixTranspose(3, ArrayA(), ArrayC())
  822.  
  823.    For i = 1 To 3
  824.       For j = 1 To 3
  825.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  826.       Next j
  827.       TmpC = TmpC + vbCrLf
  828.    Next i
  829.  
  830.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  831.    strDisplay = strDisplay & "Transpose of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  832.  
  833.    TmpA = ""
  834.    TmpC = ""
  835.    
  836.    Call cMatrixFill(3, ArrayA(), MATRIX_UNIT)
  837.  
  838.    For i = 1 To 3
  839.       For j = 1 To 3
  840.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  841.       Next j
  842.       TmpA = TmpA + vbCrLf
  843.    Next i
  844.  
  845.    Call cMatrixTranspose(3, ArrayA(), ArrayC())
  846.  
  847.    For i = 1 To 3
  848.       For j = 1 To 3
  849.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  850.       Next j
  851.       TmpC = TmpC + vbCrLf
  852.    Next i
  853.  
  854.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  855.    strDisplay = strDisplay & "Transpose of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  856.  
  857.    txt_Result = strDisplay
  858.  
  859.    'time the function
  860.  
  861.    For i = 1 To 3
  862.       For j = 1 To 3
  863.          ArrayA(i, j) = Int(RandI * Rnd(1))
  864.       Next j
  865.    Next i
  866.  
  867.    TimerHandle = cTimerOpen()
  868.    TimerStartOk = cTimerStart(TimerHandle)
  869.    
  870.    For i = 1 To Iteration
  871.       Call cMatrixTranspose(3, ArrayA(), ArrayC())
  872.    Next i
  873.    
  874.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  875.    
  876.    TimerCloseOk = cTimerClose(TimerHandle)
  877.  
  878. End Sub
  879.  
  880. Private Sub TestMatrixMinorCofactor()
  881.  
  882.    Dim intResult        As Integer
  883.    Dim strResult        As String
  884.    Dim strDisplay       As String
  885.    
  886.    Dim i                As Integer
  887.    Dim j                As Integer
  888.    
  889.    Dim cofact           As Double
  890.    Dim nSize            As Integer
  891.  
  892.    Dim TmpA             As String
  893.  
  894.    nSize = 3
  895.    
  896.    ReDim ArrayA(1 To nSize, 1 To nSize) As Double
  897.  
  898.    Randomize Timer
  899.  
  900.    For i = 1 To nSize
  901.       For j = 1 To nSize
  902.          ArrayA(i, j) = Int(RandI * Rnd(1))
  903.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  904.       Next j
  905.       TmpA = TmpA + vbCrLf
  906.    Next i
  907.  
  908.    strDisplay = strDisplay & "Array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  909.    
  910.    For i = 1 To 3
  911.       For j = 1 To 3
  912.          strDisplay = strDisplay & "CoFactor and Minor of A(" & i & "," & j & ") are " & cMatrixCoFactor(nSize, ArrayA(), i, j) & " and " & cMatrixMinor(nSize, ArrayA(), i, j) & vbCrLf
  913.       Next j
  914.       strDisplay = strDisplay & vbCrLf
  915.    Next i
  916.    
  917.    txt_Result = strDisplay
  918.  
  919.    'time the function
  920.  
  921.    TimerHandle = cTimerOpen()
  922.    TimerStartOk = cTimerStart(TimerHandle)
  923.    
  924.    For i = 1 To Iteration
  925.       cofact = cMatrixCoFactor(nSize, ArrayA(), 1, 1)
  926.    Next i
  927.    
  928.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  929.    
  930.    TimerCloseOk = cTimerClose(TimerHandle)
  931.  
  932. End Sub
  933.  
  934. Private Sub TestMatrixSymToeplitz()
  935.  
  936.    Dim intResult        As Integer
  937.    Dim strResult        As String
  938.    Dim strDisplay       As String
  939.    
  940.    Dim i                As Integer
  941.    Dim j                As Integer
  942.    
  943.    Dim TmpA             As String
  944.    Dim TmpC             As String
  945.  
  946.    ReDim ArrayA(1 To 3, 1 To 3) As Double
  947.    ReDim ArrayC(1 To 3, 1 To 3) As Double
  948.  
  949.    Randomize Timer
  950.  
  951.    For i = 1 To 1
  952.       For j = 1 To 3
  953.          ArrayA(i, j) = Int(RandI * Rnd(1))
  954.          TmpA = TmpA + Format$(ArrayA(i, j), "00000  ")
  955.       Next j
  956.       TmpA = TmpA + vbCrLf
  957.    Next i
  958.  
  959.    intResult = cMatrixSymToeplitz(3, ArrayA(), ArrayC())
  960.  
  961.    For i = 1 To 3
  962.       For j = 1 To 3
  963.          TmpC = TmpC + Format$(ArrayC(i, j), "00000  ")
  964.       Next j
  965.       TmpC = TmpC + vbCrLf
  966.    Next i
  967.  
  968.    strDisplay = strDisplay & "First array (A) is " & vbCrLf & vbCrLf & TmpA & vbCrLf
  969.    strDisplay = strDisplay & "Symmetrical Toeplitz of (A) = (C) is " & vbCrLf & vbCrLf & TmpC & vbCrLf
  970.  
  971.    txt_Result = strDisplay
  972.  
  973.    'time the function
  974.  
  975.    For i = 1 To 1
  976.       For j = 1 To 3
  977.          ArrayA(i, j) = Int(RandI * Rnd(1))
  978.       Next j
  979.    Next i
  980.  
  981.    TimerHandle = cTimerOpen()
  982.    TimerStartOk = cTimerStart(TimerHandle)
  983.    
  984.    For i = 1 To Iteration
  985.       Call cMatrixSymToeplitz(3, ArrayA(), ArrayC())
  986.    Next i
  987.    
  988.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  989.    
  990.    TimerCloseOk = cTimerClose(TimerHandle)
  991.  
  992. End Sub
  993.