--------------------------------------------------------------------------------
module Main where

import Smith
import Complex
--------------------------------------------------------------------------------
--- EE command stuff 
normalize :: Complex Double -> [Complex Double] -> [Complex Double]
normalize res (x:xs) = map ((1/res) *) (x:xs)

inductive_Reactance :: Double -> Double -> Double
inductive_Reactance ind freq = omega freq * ind

capacitive_Reactance :: Double -> Double -> Double
capacitive_Reactance cap freq = (-1) / omega freq * cap

omega :: Double -> Double
omega freq = 2.0 * pi * freq
--------------------------------------------------------------------------------

micro = 1.0/1000000.0
kilo = 1000.0

xL freq = inductive_Reactance (2.0 * micro) (freq * kilo)
xReactance = map xL [100,500..3000] -- 0.1Ghz to 3.0Ghz in 0.4Ghz step
xDist = map (5.0 :+) xReactance
impedance = normalize 50 xDist

main = do pInit
          showSmithChart
          putStrLn $ pColor "green"  
          plotSmith (2:+0.4)
          putStrLn $ pColor "red"
          mapM_ plotSmith impedance
          lineSmith impedance        
          putStrLn pClose 
          
          
          
          