File: findm.sci

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (39 lines) | stat: -rw-r--r-- 584 bytes parent folder | download | duplicates (2)
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
function m=findm(chi)
//Search for m such that chi = %k(1-m)/%k(m)
//!
// Copyright INRIA

if chi < 1 then
  t=1;
  tn=2;
  m=0.99999;
  mn=2;
  v=16*exp(-%pi/chi);
  while abs(t-tn) > 10.*%eps
    t=tn;
    lln=log(16/(1-m));
    k1=%asn(1,1-m);
    k=%asn(1,m);
    y=(k1*lln/%pi)-k;
    mn=m;
    m=1-v*exp((-%pi*y)/k1);
    tn=m+mn;
  end
else
  t=1;
  tn=2;
  m=0.00001;
  mn=0.1;
  v=16*exp(-%pi*chi);
  while abs(t-tn) > 10.*%eps
    t=tn;
    lln=log(16/m);
    k1=%asn(1,1-m);
    k=%asn(1,m);
    y=(k*lln/%pi)-k1;
    mn=m;
    m=v*exp((-%pi*y)/k);
    tn=m+mn;
  end
end