#! /usr/lib/veetest/veetest -r
(revision "A.00.00")
(date "Thu 11/Apr/1991")
(component 0 "Context"
 (interface
 )
 (implementation
  (trigMode deg)
  (locked no)
  (component 0 "Context"
   (name "Swap(x,y)")
   (interface
    (sequence in)
    (sequence out)
    (input 1
     (type data)
     (name "ArrayIn")
     (optional yes)
    )
    (input 2
     (type data)
     (name "Xindex")
     (optional yes)
    )
    (input 3
     (type data)
     (name "Yindex")
     (optional yes)
    )
    (output 1
     (type data)
     (name "SwappedArray")
     (lock constraints)
     (optional yes)
    )
   )
   (implementation
    (trigMode deg)
    (locked no)
    (component 0 "ToArray"
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "Array")
       (tag "Array")
       (lock constraints)
      )
      (input 2
       (type data)
       (name "Datum")
       (tag "Datum")
       (requires
        (shape "Scalar")
       )
       (lock constraints)
      )
      (input 3
       (type data)
       (name "Index 1")
       (tag "Index 1")
       (requires
        (datatype Int32)
        (shape "Scalar")
       )
       (lock constraints)
      )
      (input 4
       (type trigger)
       (name "XEQ")
       (lock name constraints)
      )
      (output 1
       (type data)
       (name "Array")
       (tag "Array")
       (lock constraints)
      )
     )
     (implementation
      (component numDims 1)
     )
     (views
      (icon
       (origin 535 378)
       (extent 110 64)
       (iconImage build.icon)
      )
      (detail
      )
      (terminals on)
      (active icon)
     )
    )
    (component 1 "Formula"
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "A")
       (optional yes)
      )
      (input 2
       (type data)
       (name "B")
       (optional yes)
      )
      (output 1
       (type data)
       (name "Result")
       (lock name constraints)
      )
     )
     (implementation
      (component isLocked no)
      (component expr 1 "A[B]")
     )
     (views
      (icon
       (origin 221 368)
       (extent 78 64)
       (iconImage formula.icon)
      )
      (detail
       (origin 308 166)
       (extent 74 108)
      )
      (terminals on)
      (active icon)
     )
    )
    (component 2 "Formula"
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "A")
       (optional yes)
      )
      (input 2
       (type data)
       (name "B")
       (optional yes)
      )
      (output 1
       (type data)
       (name "Result")
       (lock name constraints)
      )
     )
     (implementation
      (component isLocked no)
      (component expr 1 "A[B]")
     )
     (views
      (icon
       (origin 221 188)
       (extent 78 64)
       (iconImage formula.icon)
      )
      (detail
       (origin 308 166)
       (extent 74 108)
      )
      (terminals on)
      (active icon)
     )
    )
    (component 3 "ToArray"
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "Array")
       (tag "Array")
       (lock constraints)
      )
      (input 2
       (type data)
       (name "Datum")
       (tag "Datum")
       (requires
        (shape "Scalar")
       )
       (lock constraints)
      )
      (input 3
       (type data)
       (name "Index 1")
       (tag "Index 1")
       (requires
        (datatype Int32)
        (shape "Scalar")
       )
       (lock constraints)
      )
      (input 4
       (type trigger)
       (name "XEQ")
       (lock name constraints)
      )
      (output 1
       (type data)
       (name "Array")
       (tag "Array")
       (lock constraints)
      )
     )
     (implementation
      (component numDims 1)
     )
     (views
      (icon
       (origin 375 158)
       (extent 110 64)
       (iconImage build.icon)
      )
      (detail
       (origin 391 165)
       (extent 158 210)
      )
      (terminals on)
      (active icon)
     )
    )
    (configuration
     (connect D3:1 D0:1)
     (connect D1:1 D0:2)
     (connect I2:1 D0:3)
     (connect D3:0 D0:4)
     (connect I1:1 D1:1)
     (connect I3:1 D1:2)
     (connect I1:1 D2:1)
     (connect I2:1 D2:2)
     (connect I1:1 D3:1)
     (connect D2:1 D3:2)
     (connect I3:1 D3:3)
     (connect D2:0 D3:4)
     (connect D0:1 O1:1)
    )
   )
   (views
    (description 8 5
     This mergeable object is used to swap any two
     elements of an array.  The array can be any of
     the Vee data types.  The first input is the array,
     two of whose elements are to be swapped.  The next
     two inputs are the indices of the two elements.
     The indicies should be attached in the correct
     order as indicated by the terminal names.
     
    )
    (icon
     (origin 10 92)
     (extent 100 36)
    )
    (detail
     (origin 85 117)
     (extent 641 387)
     (configuration
      (connect D3:1 D0:1
       (Point 487 190)
       (Point 500 190)
       (Point 500 390)
       (Point 532 390)
      )
      (connect D1:1 D0:2
       (Point 301 400)
       (Point 532 400)
      )
      (connect I2:1 D0:3
       (Point 87 320)
       (Point 110 320)
       (Point 110 450)
       (Point 320 450)
       (Point 320 410)
       (Point 532 410)
      )
      (connect D3:0 D0:4
       (Point 430 224)
       (Point 430 420)
       (Point 532 420)
      )
      (connect I1:1 D1:1
       (Point 87 190)
       (Point 100 190)
       (Point 100 200)
       (Point 190 200)
       (Point 190 380)
       (Point 218 380)
      )
      (connect I3:1 D1:2
       (Point 87 450)
       (Point 100 450)
       (Point 100 420)
       (Point 218 420)
      )
      (connect I1:1 D2:1
       (Point 87 190)
       (Point 100 190)
       (Point 100 200)
       (Point 218 200)
      )
      (connect I2:1 D2:2
       (Point 87 320)
       (Point 100 320)
       (Point 100 240)
       (Point 218 240)
      )
      (connect I1:1 D3:1
       (Point 87 190)
       (Point 100 190)
       (Point 100 200)
       (Point 190 200)
       (Point 190 170)
       (Point 372 170)
      )
      (connect D2:1 D3:2
       (Point 301 220)
       (Point 320 220)
       (Point 320 180)
       (Point 372 180)
      )
      (connect I3:1 D3:3
       (Point 87 450)
       (Point 100 450)
       (Point 100 420)
       (Point 200 420)
       (Point 200 350)
       (Point 340 350)
       (Point 340 190)
       (Point 372 190)
      )
      (connect D2:0 D3:4
       (Point 260 254)
       (Point 260 270)
       (Point 330 270)
       (Point 330 200)
       (Point 372 200)
      )
      (connect D0:1 O1:1
       (Point 647 410)
       (Point 660 410)
       (Point 660 320)
       (Point 723 320)
      )
     )
    )
    (terminals on)
    (active icon)
   )
  )
  (configuration
  )
 )
 (views
  (detail
   (origin 0 67)
   (extent 982 648)
   (configuration
   )
  )
  (active detail)
  (numberFormats
   (realFormat standard)
   (realSigDigits 4)
   (realRadixSpec 4)
   (integerBase decimal)
  )
  (waveformSettings
   (timeSpan 0.02)
   (numPoints 256)
  )
 )
)
