summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/circuit-macros/examples/Loglog.m4
blob: 2985338b3dcf03ae4418e2e39d4d81c4fe9f0e53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
.PS
# Loglog.m4
gen_init
s_init(Loglog)
sinclude(tst.dim)

define(`rint',`sign(`$1')*int(abs(`$1')+.5)')
S:[
  horiz = 4
  vert = horiz*2/3
  tmax = 10
  tmin = 1
  vmax = 100
  vmin = 0.1
  tic = 0.08
  denv = log(vmax) - log(vmin)
  denh = log(tmax) - log(tmin)

  Origin: Here
  define(`coord',
    `Origin+((log(`$1')-log(tmin))/denh*horiz,(log(`$2')-log(vmin))/denv*vert)')

thinlines_
# Left axes and labels
  psset_(linecolor=gray)
  vm = log(vmin); if vm!=0 then { vm=rint(vm) }
  vM = log(vmax); if vM!=0 then { vM=rint(vM) }
  for i = vm to vM do {
    move to coord(tmin,exp(i))
    line right horiz
    s_box(\sf %g,exp(i)) rjust at last line.start ifgpic(`-(0.05,0)')
    if i < rint(log(vmax)) then {
      for j = 2 to 9 do {
        move to coord(tmin,j*exp(i))
        line right horiz
        if (j==2) || (j==5) then {
          s_box(\sf %g,j*exp(i)) rjust at last line.start ifgpic(`-(0.05,0)') }
        } } }

#Horizontal axis and labels
  tm = log(tmin); if tm!=0 then { tm=rint(tm) }
  tM = log(tmax); if tM!=0 then { tM=rint(tM) }
  for t = tm to tM do {
    move to coord(exp(t),vmin)
    line up vert
    s_box(\sf %g,exp(t)) below at last line.start ifgpic(`-(0,0.05)')
    if t < rint(log(tmax)) then {
      for j = 2 to 9 do { move to coord(j*exp(t),vmin)
        line up vert
        if (j==2) || (j==5) then {
          s_box(\sf %g,j*exp(t)) below at last line.start ifgpic(`-(0,0.05)') }
        } } }
  psset_(linecolor=black)

# arrow from Origin up vert chop 0 chop -.1
  line from Origin up vert
  s_box($y(t)$) at Origin+(-.1,.5*vert) rjust

# arrow from Origin right horiz chop 0 chop -.1
  line from Origin right horiz
  s_box($t$) at Origin+(.5*horiz,-.1) below

thicklines_
  alpha = 2.5
  beta = 3.0
  tm = max(tmin,(vmin/alpha)^(1/beta))
  tM = min(tmax,(vmax/alpha)^(1/beta))
  line from coord(tm,alpha*tm^beta) to coord(tM,alpha*tM^beta)
  f_box(invis fill_(1),`$y(t) = %g\,t^{%g}$',alpha,beta) \
    with .sw at coord(2.1,11)

  alpha = 0.05
  beta = 2.0
  tm = max(tmin,(vmin/alpha)^(1/beta))
  tM = min(tmax,(vmax/alpha)^(1/beta))
  line from coord(tm,alpha*tm^beta) to coord(tM,alpha*tM^beta)
  f_box(invis fill_(1),`$y(t) = %g\,t^{%g}$',alpha,beta) \
    with .se at coord(4.6,1.1)

]

# box wid S.wid ht S.ht at S
# print (S.wid,S.ht)/(1 pc__)

.PE