A Numerical Library in Java For Scientists and Engineers 1st Edition Hang T. Lau PDF Download
A Numerical Library in Java For Scientists and Engineers 1st Edition Hang T. Lau PDF Download
https://ebookgate.com/product/a-numerical-library-in-java-for-
scientists-and-engineers-1st-edition-hang-t-lau/
https://ebookgate.com/product/patent-fundamentals-for-scientists-and-
engineers-3rd-edition-thomas-t-gordon-author/
ebookgate.com
https://ebookgate.com/product/basic-electronics-for-scientists-and-
engineers-eggleston-d-l/
ebookgate.com
https://ebookgate.com/product/physics-for-scientists-and-engineers-
standard-version-fifth-edition-paul-a-tipler/
ebookgate.com
https://ebookgate.com/product/reliability-models-for-engineers-and-
scientists-1st-edition-mark-p-kaminskiy/
ebookgate.com
Essential MATLAB for Scientists and Engineers Second
Edition Brian Hahn
https://ebookgate.com/product/essential-matlab-for-scientists-and-
engineers-second-edition-brian-hahn/
ebookgate.com
https://ebookgate.com/product/digital-signal-processing-a-practical-
guide-for-engineers-and-scientists-steven-w-smith/
ebookgate.com
https://ebookgate.com/product/fundamental-math-and-physics-for-
scientists-and-engineers-1st-edition-david-yevick/
ebookgate.com
https://ebookgate.com/product/probability-statistics-and-reliability-
for-engineers-and-scientists-3rd-edition-ayyub/
ebookgate.com
https://ebookgate.com/product/probability-statistics-and-reliability-
for-engineers-and-scientists-third-edition-ayyub/
ebookgate.com
C4304_TitlePage 6/26/03 8:46 AM Page 1
QA76.73.J38L363 2003
005.13′3—dc21 2003055149
This book contains information obtained from authentic and highly regarded sources. Reprinted material is quoted with
permission, and sources are indicated. A wide variety of references are listed. Reasonable efforts have been made to publish
reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials
or for the consequences of their use.
Neither this book nor any part may be reproduced or transmitted in any form or by any means, electronic or mechanical,
including photocopying, microfilming, and recording, or by any information storage or retrieval system, without prior
permission in writing from the publisher.
The consent of CRC Press LLC does not extend to copying for general distribution, for promotion, for creating new works,
or for resale. Specific permission must be obtained in writing from CRC Press LLC for such copying.
Direct all inquiries to CRC Press LLC, 2000 N.W. Corporate Blvd., Boca Raton, Florida 33431.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation, without intent to infringe.
INTRODUCTION
1. ELEMENTARY PROCEDURES
2. ALGEBRAIC EVALUATIONS
3. LINEAR ALGEBRA
4. ANALYTIC EVALUATIONS
4.2 Quadrature
4.2.1 One-dimensional quadrature
A. qadrat
B. integral
4.2.2 Multidimensional quadrature .
tricub
4.2.3 Gaussian quadrature - General weights
A. reccof
B. gsswts
C. gsswtssym
5. ANALYTIC PROBLEMS
6. SPECIAL FUNCTIONS
ADDENDA
WORKED EXAMPLES
APPENDIX A: REFERENCES
INDEX OF PROCEDURES
Addenda
All procedures in this chapter are class methods of the following FFT class.
package numal;
import numal.*;
A. cfftp
Procedure parameters:
void cfftp (a,n)
a: double a[1:2][1:n];
entry: Re(a’j+1) and Im(a’j+1) in locations (1,j+1) and (2,j+1) respectively
(j=0,..,n-1);
exit: Re(ak+1) and Im(ak+1) in locations (1,k+1) and (2,k+1) respectively
(k=0,..,n-1);
n: integer; the value of n above.
c30=0.8660254037844386;
zero=0.0;
half=0.5;
one=1.0;
two=2.0;
cm=sm=c2=s2=c3=s3=0.0;
k2=0;
if (n == 1) return;
k = n;
m = 0;
j = 2;
jj = 4;
jf = 0;
iwk[1] = 1;
while (true) {
i = k/jj;
if (i*jj == k) {
m++;
iwk[m+1] = j;
k = i;
} else {
j += 2;
if (j == 4) j = 3;
jj = j * j;
if (jj > k) break;
}
}
kt = m;
j = 2;
while (true) {
i = k / j;
if (i*j == k) {
m++;
iwk[m+1] = j;
k = i;
} else {
j = j + 1;
if (j != 3) {
j++;
if (j > k) break;
}
}
}
k = iwk[m+1];
if (iwk[kt+1] > iwk[m+1]) k = iwk[kt+1];
if (kt > 0) {
ktp = kt + 2;
for (i=1; i<=kt; i++) {
j = ktp - i;
m++;
Addenda 751
iwk[m+1] = iwk[j];
}
}
mp = m+1;
ic = mp+1;
id = ic+mp;
ill = id+mp;
ird = ill+mp+1;
icc = ird+mp;
iss = icc+mp;
ick = iss+mp;
isk = ick+k;
icf = isk+k;
isf = icf+k;
iap = isf+k;
kd2 = (k-1) / 2 + 1;
ibp = iap + kd2;
iam = ibp + kd2;
ibm = iam + kd2;
mm1 = m-1;
i = 1;
do {
l = mp - i;
j = ic - i;
ll[ill+l] = (iwk[j-1] + iwk[j]) == 4;
if (ll[ill+l]) {
i++;
l--;
ll[ill+l] = false;
}
i++;
} while (i <= mm1);
ll[ill+1] = false;
ll[ill+mp] = false;
iwk[ic] = 1;
iwk[id] = n;
for (j=1; j<=m; j++) {
k = iwk[j+1];
iwk[ic+j] = iwk[ic+j-1] * k;
iwk[id+j] = iwk[id+j-1] / k;
wk[ird+j] = rad/iwk[ic+j];
c1 = rad/k;
if (k > 2) {
wk[icc+j] = Math.cos(c1);
wk[iss+j] = Math.sin(c1);
}
}
mm = m;
if (ll[ill+m]) mm = m - 1;
if (mm > 1) {
752 A Numerical Library in Java for Scientists and Engineers
sm = iwk[ic+mm-2] * wk[ird+m];
cm = Math.cos(sm);
sm = Math.sin(sm);
}
kb = 0;
kn = n;
jj = 0;
i = 1;
c1 = one;
s1 = zero;
l1 = true;
outloop: for (;;) {
if (ll[ill+i+1]) {
kf = 4;
i++;
} else
kf = iwk[i+1];
isp = iwk[id+i];
if (!l1) {
s1 = jj * wk[ird+i];
c1 = Math.cos(s1);
s1 = Math.sin(s1);
}
inloop: for (;;) {
if (kf <= 4) {
switch (kf) {
case 1:case 2:
k0 = kb + isp;
k2 = k0 + isp;
if (!l1) {
while (true) {
k0--;
if (k0 < kb) {
if ( i < mm ) {
i++;
continue outloop;
}
i = mm;
l1 = false;
kb = iwk[id+i-1] + kb;
if (kb >= kn) break outloop;
more=true;
while (more) {
jj = iwk[ic+i-2] + jj;
if (jj < iwk[ic+i-1]) {
more=false;
} else {
i--;
jj -= iwk[ic+i];
}
Addenda 753
}
if (i == mm) {
c2 = c1;
c1 = cm * c1 - sm * s1;
s1 = sm * c2 + cm * s1;
continue inloop;
} else {
if (ll[ill+i]) i++;
continue outloop;
}
}
k2--;
a4 = a[1][k2+1];
b4 = a[2][k2+1];
a0 = a4*c1-b4*s1;
b0 = a4*s1+b4*c1;
a[1][k2+1] = a[1][k0+1]-a0;
a[2][k2+1] = a[2][k0+1]-b0;
a[1][k0+1] = a[1][k0+1]+a0;
a[2][k0+1] = a[2][k0+1]+b0;
}
}
while (true) {
k0--;
if (k0 < kb) {
if ( i < mm ) {
i++;
continue outloop;
}
i = mm;
l1 = false;
kb = iwk[id+i-1] + kb;
if (kb >= kn) break outloop;
more=true;
while (more) {
jj = iwk[ic+i-2] + jj;
if (jj < iwk[ic+i-1]) {
more=false;
} else {
i--;
jj -= iwk[ic+i];
}
}
if (i == mm) {
c2 = c1;
c1 = cm * c1 - sm * s1;
s1 = sm * c2 + cm * s1;
continue inloop;
} else {
if (ll[ill+i]) i++;
754 A Numerical Library in Java for Scientists and Engineers
continue outloop;
}
}
k2--;
ak2[1] = a[1][k2+1];
ak2[2] = a[2][k2+1];
a[1][k2+1] = a[1][k0+1]-ak2[1];
a[2][k2+1] = a[2][k0+1]-ak2[2];
a[1][k0+1] = a[1][k0+1]+ak2[1];
a[2][k0+1] = a[2][k0+1]+ak2[2];
}
case 3:
if (!l1) {
c2 = c1 * c1 - s1 * s1;
s2 = two * c1 * s1;
}
ja = kb + isp - 1;
ka = ja + kb;
ikb = kb+1;
ija = ja+1;
for (ii=ikb; ii<=ija; ii++) {
k0 = ka - ii + 1;
k1 = k0 + isp;
k2 = k1 + isp;
a0 = a[1][k0+1];
b0 = a[2][k0+1];
if (l1) {
a1 = a[1][k1+1];
b1 = a[2][k1+1];
a2 = a[1][k2+1];
b2 = a[2][k2+1];
} else {
a4 = a[1][k1+1];
b4 = a[2][k1+1];
a1 = a4*c1-b4*s1;
b1 = a4*s1+b4*c1;
a4 = a[1][k2+1];
b4 = a[2][k2+1];
a2 = a4*c2-b4*s2;
b2 = a4*s2+b4*c2;
}
a[1][k0+1] = a0+a1+a2;
a[2][k0+1] = b0+b1+b2;
a0 = -half * (a1+a2) + a0;
a1 = (a1-a2) * c30;
b0 = -half * (b1+b2) + b0;
b1 = (b1-b2) * c30;
a[1][k1+1] = a0-b1;
a[2][k1+1] = b0+a1;
Addenda 755
a[1][k2+1] = a0+b1;
a[2][k2+1] = b0-a1;
}
if ( i < mm ) {
i++;
continue outloop;
}
i = mm;
l1 = false;
kb = iwk[id+i-1] + kb;
if (kb >= kn) break outloop;
more=true;
while (more) {
jj = iwk[ic+i-2] + jj;
if (jj < iwk[ic+i-1]) {
more=false;
} else {
i--;
jj -= iwk[ic+i];
}
}
if (i == mm) {
c2 = c1;
c1 = cm * c1 - sm * s1;
s1 = sm * c2 + cm * s1;
continue inloop;
} else {
if (ll[ill+i]) i++;
continue outloop;
}
case 4:
if (!l1) {
c2 = c1 * c1 - s1 * s1;
s2 = two * c1 * s1;
c3 = c1 * c2 - s1 * s2;
s3 = s1 * c2 + c1 * s2;
}
ja = kb + isp - 1;
ka = ja + kb;
ikb = kb+1;
ija = ja+1;
for (ii = ikb; ii<=ija; ii++) {
k0 = ka - ii + 1;
k1 = k0 + isp;
k2 = k1 + isp;
k3 = k2 + isp;
a0 = a[1][k0+1];
b0 = a[2][k0+1];
if (l1) {
756 A Numerical Library in Java for Scientists and Engineers
a1 = a[1][k1+1];
b1 = a[2][k1+1];
a2 = a[1][k2+1];
b2 = a[2][k2+1];
a3 = a[1][k3+1];
b3 = a[2][k3+1];
} else {
a4 = a[1][k1+1];
b4 = a[2][k1+1];
a1 = a4*c1-b4*s1;
b1 = a4*s1+b4*c1;
a4 = a[1][k2+1];
b4 = a[2][k2+1];
a2 = a4*c2-b4*s2;
b2 = a4*s2+b4*c2;
a4 = a[1][k3+1];
b4 = a[2][k3+1];
a3 = a4*c3-b4*s3;
b3 = a4*s3+b4*c3;
}
a[1][k0+1] = a0+a2+a1+a3;
a[2][k0+1] = b0+b1+b2+b3;
a[1][k1+1] = a0+a2-a1-a3;
a[2][k1+1] = b0+b2-b1-b3;
a[1][k2+1] = a0-a2-b1+b3;
a[2][k2+1] = b0-b2+a1-a3;
a[1][k3+1] = a0-a2+b1-b3;
a[2][k3+1] = b0-b2-a1+a3;
}
if ( i < mm ) {
i++;
continue outloop;
}
i = mm;
l1 = false;
kb += iwk[id+i-1];
if (kb >= kn) break outloop;
more=true;
while (more) {
jj = iwk[ic+i-2] + jj;
if (jj < iwk[ic+i-1]) {
more=false;
} else {
i--;
jj -= iwk[ic+i];
}
}
if (i == mm) {
c2 = c1;
Addenda 757
c1 = cm * c1 - sm * s1;
s1 = sm * c2 + cm * s1;
continue inloop;
} else {
if (ll[ill+i]) i++;
continue outloop;
}
} // end switch
}
jk = kf - 1;
kh = jk/2;
k3 = iwk[id+i-1];
k0 = kb + isp;
if (!l1) {
k = jk - 1;
wk[icf+1] = c1;
wk[isf+1] = s1;
for (j=1; j<=k; j++) {
wk[icf+j+1] = wk[icf+j] * c1 - wk[isf+j] * s1;
wk[isf+j+1] = wk[icf+j] * s1 + wk[isf+j] * c1;
}
}
if (kf != jf) {
c2 = wk[icc+i];
wk[ick+1] = c2;
wk[ick+jk] = c2;
s2 = wk[iss+i];
wk[isk+1] = s2;
wk[isk+jk] = -s2;
for (j = 1; j<=kh; j++) {
k = jk - j;
wk[ick+k] = wk[ick+j] * c2 - wk[isk+j] * s2;
wk[ick+j+1] = wk[ick+k];
wk[isk+j+1] = wk[ick+j] * s2 + wk[isk+j] * c2;
wk[isk+k] = -wk[isk+j+1];
}
}
do {
k0--;
k1 = k0;
k2 = k0 + k3;
a0 = a[1][k0+1];
b0 = a[2][k0+1];
a3 = a0;
b3 = b0;
for (j = 1; j<=kh; j++) {
k1 += isp;
k2 -= isp;
if (l1) {
758 A Numerical Library in Java for Scientists and Engineers
a1 = a[1][k1+1];
b1 = a[2][k1+1];
a2 = a[1][k2+1];
b2 = a[2][k2+1];
} else {
k = kf - j;
a4 = a[1][k1+1];
b4 = a[2][k1+1];
a1 = a4*wk[icf+j]-b4*wk[isf+j];
b1 = a4*wk[isf+j]+b4*wk[icf+j];
a4 = a[1][k2+1];
b4 = a[2][k2+1];
a2 = a4*wk[icf+k]-b4*wk[isf+k];
b2 = a4*wk[isf+k]+b4*wk[icf+k];
}
wk[iap+j] = a1 + a2;
wk[iam+j] = a1 - a2;
wk[ibp+j] = b1 + b2;
wk[ibm+j] = b1 - b2;
a3 += a1 + a2;
b3 += b1 + b2;
}
a[1][k0+1] = a3;
a[2][k0+1] = b3;
k1 = k0;
k2 = k0 + k3;
for (j=1; j<=kh; j++) {
k1 += isp;
k2 -= isp;
jk = j;
a1 = a0;
b1 = b0;
a2 = zero;
b2 = zero;
for (k=1; k<=kh; k++) {
a1 += wk[iap+k] * wk[ick+jk];
a2 += wk[iam+k] * wk[isk+jk];
b1 += wk[ibp+k] * wk[ick+jk];
b2 += wk[ibm+k] * wk[isk+jk];
jk += j;
if (jk >= kf) jk -= kf;
}
a[1][k1+1] = a1-b2;
a[2][k1+1] = b1+a2;
a[1][k2+1] = a1+b2;
a[2][k2+1] = b1-a2;
}
} while (k0 > kb);
jf = kf;
Addenda 759
if ( i < mm ) {
i++;
continue outloop;
}
i = mm;
l1 = false;
kb += iwk[id+i-1];
if (kb >= kn) break outloop;
more=true;
while (more) {
jj = iwk[ic+i-2] + jj;
if (jj < iwk[ic+i-1]) {
more=false;
} else {
i--;
jj -= iwk[ic+i];
}
}
if (i == mm) {
c2 = c1;
c1 = cm * c1 - sm * s1;
s1 = sm * c2 + cm * s1;
continue inloop;
} else {
if (ll[ill+i]) i++;
continue outloop;
}
} // inloop
} // outloop
i = 1;
ja = kt - 1;
ka = ja + 1;
if (ja >= 1) {
for (ii=1; ii<=ja; ii++) {
j = ka - ii;
iwk[j+1]--;
i = iwk[j+1] + i;
}
}
if (kt > 0) {
j = 1;
i = 0;
kb = 0;
while (true) {
k2 = iwk[id+j] + kb;
k3 = k2;
jj = iwk[ic+j-1];
jk = jj;
k0 = kb + jj;
760 A Numerical Library in Java for Scientists and Engineers
ita = ill+kb+1;
itb = ita+jk;
idm1 = id-1;
ikt = kt+1;
im = m+1;
for (j=ikt; j<=im; j++)
iwk[idm1+j] = iwk[idm1+j]/jk;
jj = 0;
for (j = 1; j<=kb; j++) {
k = kt;
while (true) {
jj += iwk[id+k+1];
if (jj < iwk[id+k]) break;
jj -= iwk[id+k];
k++;
}
iwk[ill+j] = jj;
if (jj == j) iwk[ill+j] = -j;
}
for (j=1; j<=kb; j++) {
if (iwk[ill+j] > 0) {
k2 = j;
while (true) {
k2 = Math.abs(iwk[ill+k2]);
if (k2 == j) break;
iwk[ill+k2] = -iwk[ill+k2];
}
}
}
i = 0;
j = 0;
kb = 0;
kn = n;
while (true) {
j++;
if (iwk[ill+j] >= 0) {
k = iwk[ill+j];
k0 = jk * k + kb;
do {
a4 = a[1][k0+i+1];
b4 = a[2][k0+i+1];
wk[ita+i] = a4;
wk[itb+i] = b4;
i = i + 1;
} while (i < jk);
i = 0;
do {
k = -iwk[ill+k];
jj = k0;
k0 = jk * k + kb;
762 A Numerical Library in Java for Scientists and Engineers
do {
a[1][jj+i+1] = a[1][k0+i+1];
a[2][jj+i+1] = a[2][k0+i+1];
i++;
} while (i < jk);
i = 0;
} while (k != j);
do {
a[1][k0+i+1] = wk[ita+i];
a[2][k0+i+1] = wk[itb+i];
i++;
} while (i < jk);
i = 0;
if (j >= k2) {
j = 0;
kb += isp;
if (kb >= kn) break;
}
}
}
}
B. orderf
Replaces the numbers in locations (i,j+1) (j=0,1,…,2m-1; i=1,2) of the real array A
by those in the locations (i,r(j)+1) (j=0,1,...,2m-1; i=1,2) where when
m −1 m −1
j = ∑ d υ 2υ (dυ = 0 or 1), r ( j ) = ∑ d m −υ −1 2υ .
υ =0 υ =0
Procedure parameters:
void orderf (a,m)
a: double a[1:2][1:2m]; the array A above;
m: integer; the value of m above.
if (m <= 1) return;
n8=0;
mp = m+1;
jj = 1;
iwk[1] = 1;
for (i = 2; i<=mp; i++)
Addenda 763
iwk[i] = iwk[i-1] * 2;
n4 = iwk[mp-2];
if (m > 2) n8 = iwk[mp-3];
n2 = iwk[mp-1];
lm = n2;
nn = iwk[mp]+1;
mp -= 4;
j = 2;
do {
jk = jj + n2;
temp[1] = a[1][j];
temp[2] = a[2][j];
a[1][j] = a[1][jk];
a[2][j] = a[2][jk];
a[1][jk] = temp[1];
a[2][jk] = temp[2];
j++;
if (jj <= n4) {
jj += n4;
} else {
jj -= n4;
if (jj <= n8) {
jj += n8;
} else {
jj -= n8;
k = mp;
while (iwk[k] < jj) {
jj -= iwk[k];
k--;
}
jj += iwk[k];
}
}
if (jj > j) {
k = nn - j;
jk = nn - jj;
temp[1] = a[1][j];
temp[2] = a[2][j];
a[1][j] = a[1][jj];
a[2][j] = a[2][jj];
a[1][jj] = temp[1];
a[2][jj] = temp[2];
temp[1] = a[1][k];
temp[2] = a[2][k];
a[1][k] = a[1][jk];
a[2][k] = a[2][jk];
a[1][jk] = temp[1];
a[2][jk] = temp[2];
}
j++;
764 A Numerical Library in Java for Scientists and Engineers
C. cfft2p
Procedure parameters:
void cfft2p (a,m)
a: double a[1:2][1:n];
entry: the values of Re(a’j+1) and Im(a’j+1) in locations (1,j+1) and (2,j+1)
respectively (j=0,..,n-1);
exit: the values of Re(ar(k)+1) and Im(ar(k)+1) in locations (1,k+1) and (2,k+1)
respectively (k=0,..,n-1);
m: integer; the value of m above.
sq=0.7071067811865475;
sk=0.3826834323650898;
ck=0.9238795325112868;
zero=0.0;
one=1.0;
c2=c3=s2=s3=0.0;
k3=0;
mp = m+1;
n = (int)Math.pow(2,m);
iwk[1] = 1;
mm = (m/2)*2;
kn = n+1;
for (i=2;i<=mp;i++)
iwk[i] = iwk[i-1]+iwk[i-1];
rad = (2.0*Math.PI)/n;
mk = m - 4;
Addenda 765
kb = 1;
if (mm != m) {
k2 = kn;
k0 = iwk[mm+1] + kb;
do {
k2--;
k0--;
ak2[1] = a[1][k2];
ak2[2] = a[2][k2];
a[1][k2] = a[1][k0] - ak2[1];
a[2][k2] = a[2][k0] - ak2[2];
a[1][k0] = a[1][k0] + ak2[1];
a[2][k0] = a[2][k0] + ak2[2];
} while (k0 > kb);
}
c1 = one;
s1 = zero;
jj = 0;
k = mm - 1;
j = 4;
if (k < 1) return;
isp = iwk[k];
if (jj != 0) {
c2 = jj * isp * rad;
c1 = Math.cos(c2);
s1 = Math.sin(c2);
c2 = c1 * c1 - s1 * s1;
s2 = c1 * (s1 + s1);
c3 = c2 * c1 - s2 * s1;
s3 = c2 * s1 + s2 * c1;
}
while (true) {
jsp = isp + kb;
for (i=1;i<=isp;i++) {
k0 = jsp - i;
k1 = k0 + isp;
k2 = k1 + isp;
k3 = k2 + isp;
a0 = a[1][k0];
b0 = a[2][k0];
a1 = a[1][k1];
b1 = a[2][k1];
a2 = a[1][k2];
b2 = a[2][k2];
a3 = a[1][k3];
b3 = a[2][k3];
if (s1 != zero) {
temp = a1;
a1 = a1 * c1 - b1 * s1;
b1 = temp * s1 + b1 * c1;
766 A Numerical Library in Java for Scientists and Engineers
temp = a2;
a2 = a2 * c2 - b2 * s2;
b2 = temp * s2 + b2 * c2;
temp = a3;
a3 = a3 * c3 - b3 * s3;
b3 = temp * s3 + b3 * c3;
}
temp = a0 + a2;
a2 = a0 - a2;
a0 = temp;
temp = a1 + a3;
a3 = a1 - a3;
a1 = temp;
temp = b0 + b2;
b2 = b0 - b2;
b0 = temp;
temp = b1 + b3;
b3 = b1 - b3;
b1 = temp;
a[1][k0] = a0+a1;
a[2][k0] = b0+b1;
a[1][k1] = a0-a1;
a[2][k1] = b0-b1;
a[1][k2] = a2-b3;
a[2][k2] = b2+a3;
a[1][k3] = a2+b3;
a[2][k3] = b2-a3;
}
if (k > 1) {
k -= 2;
isp = iwk[k];
if (jj != 0) {
c2 = jj * isp * rad;
c1 = Math.cos(c2);
s1 = Math.sin(c2);
c2 = c1 * c1 - s1 * s1;
s2 = c1 * (s1 + s1);
c3 = c2 * c1 - s2 * s1;
s3 = c2 * s1 + s2 * c1;
}
} else {
kb = k3 + isp;
if (kn <= kb) return;
if (j == 1) {
k = 3;
j = mk;
while (true) {
if (iwk[j] > jj) break;
jj -= iwk[j];
j--;
Addenda 767
D. cfft2r
Procedure parameters:
void cfft2r (a,m)
a: double a[1:2][1:n];
entry: the values of Re(a’r(j)+1) and Im(a’r(j)+1) in locations (1,j+1) and (2,j+1)
respectively (j=0,..,n-1);
exit: the values of Re(ak+1) and Im(ak+1) in locations (1,k+1) and (2,k+1)
respectively (k=0,..,n-1);
m: integer; the value of m above.
sq=0.7071067811865475;
sk=0.3826834323650898;
ck=0.9238795325112867;
zero=0.0;
one=1.0;
if (m == 0) return;
n = (int)Math.pow(2,m);
c2=c3=s2=s3=0.0;
mp1 = m + 1;
iwk[1] = 1;
kn = 0;
k4 = 4;
mk = m - 3;
ks = 1;
for (i=2; i<=mp1; i++) {
ks = ks + ks;
iwk[i] = ks;
}
rad = Math.PI / ks;
do {
kb = kn + k4;
kn += ks;
if (m != 1) {
jj = 0;
k = 1;
j = mk;
nt = 3;
c1 = one;
isp = iwk[k];
s1 = zero;
if (jj != 0) {
c2 = jj * isp * rad;
Addenda 769
c1 = Math.cos(c2);
s1 = Math.sin(c2);
c2 = c1 * c1 - s1 * s1;
s2 = 2 * c1 * s1;
c3 = c1 * c2 - s1 * s2;
s3 = s1 * c2 + c1 * s2;
}
k3 = kb - isp + 1;
while (true) {
k2 = k3 - isp;
k1 = k2 - isp;
k0 = k1 - isp;
a0 = a[1][k0];
b0 = a[2][k0];
a1 = a[1][k1];
b1 = a[2][k1];
a2 = a[1][k2];
b2 = a[2][k2];
a3 = a[1][k3];
b3 = a[2][k3];
temp = a0 + a1;
a1 = a0 - a1;
a0 = temp;
temp = a2 + a3;
a3 = a2 - a3;
a2 = temp;
temp = b0 + b1;
b1 = b0 - b1;
b0 = temp;
temp = b2 + b3;
b3 = b2 - b3;
b2 = temp;
a[1][k0] = a0+a2;
a[2][k0] = b0+b2;
if (s1 == zero) {
a[1][k1] = a1-b3;
a[2][k1] = b1+a3;
a[1][k2] = a0-a2;
a[2][k2] = b0-b2;
a[1][k3] = a1+b3;
a[2][k3] = b1-a3;
} else {
tr = a1 - b3;
ti = b1 + a3;
a[1][k1] = tr*c1-ti*s1;
a[2][k1] = tr*s1+ti*c1;
tr = a0 - a2;
ti = b0 - b2;
a[1][k2] = tr*c2-ti*s2;
a[2][k2] = tr*s2+ti*c2;
770 A Numerical Library in Java for Scientists and Engineers
tr = a1 + b3;
ti = b1 - a3;
a[1][k3] = tr*c3-ti*s3;
a[2][k3] = tr*s3+ti*c3;
}
k3++;
if (k3 > kb) {
nt--;
if (nt >= 0) {
c2 = c1;
if (nt != 1) {
c1 = (c1 - s1) * sq;
s1 = (c2 + s1) * sq;
} else {
c1 = c1 * ck + s1 * sk;
s1 = s1 * ck - c2 * sk;
}
kb += k4;
if (kb <= kn) {
c2 = c1 * c1 - s1 * s1;
s2 = 2 * c1 * s1;
c3 = c1 * c2 - s1 * s2;
s3 = s1 * c2 + c1 * s2;
k3 = kb - isp + 1;
} else
break;
} else {
if (nt == -1) {
k = 3;
isp = iwk[k];
s1 = zero;
if (jj != 0) {
c2 = jj * isp * rad;
c1 = Math.cos(c2);
s1 = Math.sin(c2);
c2 = c1 * c1 - s1 * s1;
s2 = 2 * c1 * s1;
c3 = c1 * c2 - s1 * s2;
s3 = s1 * c2 + c1 * s2;
}
k3 = kb - isp + 1;
} else {
if (iwk[j] <= jj) {
jj -= iwk[j];
j--;
if (iwk[j] <= jj) {
jj -= iwk[j];
j--;
k += 2;
} else {
Addenda 771
jj += iwk[j];
j = mk;
}
} else {
jj += iwk[j];
j = mk;
}
if (j < mk) {
isp = iwk[k];
s1 = zero;
if (jj != 0) {
c2 = jj * isp * rad;
c1 = Math.cos(c2);
s1 = Math.sin(c2);
c2 = c1 * c1 - s1 * s1;
s2 = 2 * c1 * s1;
c3 = c1 * c2 - s1 * s2;
s3 = s1 * c2 + c1 * s2;
}
k3 = kb - isp + 1;
} else {
k = 1;
nt = 3;
kb += k4;
if (kb <= kn) {
isp = iwk[k];
s1 = zero;
if (jj != 0) {
c2 = jj * isp * rad;
c1 = Math.cos(c2);
s1 = Math.sin(c2);
c2 = c1 * c1 - s1 * s1;
s2 = 2 * c1 * s1;
c3 = c1 * c2 - s1 * s2;
s3 = s1 * c2 + c1 * s2;
}
k3 = kb - isp + 1;
} else
break;
}
}
}
}
}
}
k = (m/2) * 2;
if (k != m) {
k2 = kn + 1;
j = kn - iwk[k+1] + 1;
k0 = j;
772 A Numerical Library in Java for Scientists and Engineers
do {
k2--;
k0--;
ak2[1] = a[1][k2];
ak2[2] = a[2][k2];
a[1][k2] = a[1][k0] - ak2[1];
a[2][k2] = a[2][k0] - ak2[2];
a[1][k0] = a[1][k0] + ak2[1];
a[2][k0] = a[2][k0] + ak2[2];
} while (k2 > j);
}
} while (kn < n);
}
E. Test_cfftp
Example:
Computes
n −1
{ }
(1) a k +1 = ∑ e
2 ij β + πnk
j =0
sin(nβ )
(2) = [cos{(n − 1)β − πnk } + i sin{(n − 1)β − πnk }] (k = 0, K, n − 1)
sin (β + πnk )
with β = 0.001 −
a) when n=25 by a call of cfftp,
b) when n=32 by a call of cfft2p, and
c) when n=16 by a call of cfft2r.
package numal;
import java.text.DecimalFormat;
import numal.*;
double beta;
double a[][] = new double[3][301];
Top Secret
By officer only
18 K
I have been compelled to issue strict orders for the destruction of
enemy sabotage troops and to declare non-compliance with these
orders severely punishable. I deem it necessary to announce to the
competent commanding officers and commanders the reasons for
this decree.
As in no previous war, a method of destruction of communications
behind the front, intimidation of the populace working for Germany,
as well as the destruction of war-important industrial plants in
territories occupied by us has been developed in this war.
In the east, this type of combat in the form of partisan warfare as
early as last winter led to severe encroachment upon our fighting
strength and cost the lives of numerous German soldiers, railroad
workers, members of the labor corps [Organization Todt], the labor
service, etc. It severely interfered with and sometimes delayed for
days, the performance of transportation necessary for the
maintenance of the fighting strength of the troops. By a successful
continuation or perhaps even intensification of this form of war, a
grave crisis in one or another place at the front might develop. Many
measures against these horrible, as well as wily, sabotage activities
have failed, simply because the German officer and his soldiers were
not aware of the great danger confronting them and therefore in
individual cases did not act against these enemy groups as would
have been necessary in order to help the forward echelons of the
front thereby the entire conduct of the war.
It was therefore in part necessary in the East to organize special
units who mastered this danger or to assign this task to special SS
formations.
Only where the fight against this partisan disgrace was begun and
executed with ruthless brutality were results achieved which eased
the position of the fighting front.
In all eastern territories the war against the partisans is therefore a
struggle of absolute annihilation of one or the other part.
As soon as the realization of this fact becomes the common
knowledge of troops, they will regularly be able to cope with these
occurrences in short order; otherwise their efforts achieve no
decisive results and become purposeless.
Even though under a different name, England and America have
decided upon a similar kind of warfare, while the Russian attempts
to put partisan troops behind our front by land and only in
exceptional cases uses air transportation to land men and to drop
supplies, England and America use this method of warfare primarily
by landing sabotage troops from submarines or pneumatic boats or
by means of parachute agents. Essentially, however, this form of
warfare does not differ from the activities of the Russian partisans.
For it is the task of these troops:
1. to build up a general espionage service with the assistance of
willing natives,
2. to organize troops of terrorists and supply them with the
necessary weapons and explosives,
3. to undertake sabotage activities which by destruction of traffic
installations, not only continuously disrupt our communications, but
also, when things become serious, make troop movements
absolutely impossible and eliminate our communications system.
Finally, these troops are to make attacks on war-important
installations, in which, according to a scientifically worked out
program, they destroy key works by dynamiting, thereby forcing
whole industries into idleness.
The consequences of these activities are of extraordinary weight. I
do not know whether each commander and officer is cognizant of
the fact that the destruction of one single electric power plant, for
instance, can deprive the Luftwaffe of many thousand tons of
aluminum, thereby eliminating the construction of countless aircraft
that will be missed in the fight at the front and so contribute to
serious damage of the Homeland as well as bloody losses of the
fighting soldiers.
Yet this form of war is completely without danger for the adversary.
Since he lands his sabotage troops in uniform but at the same time
supplies them with civilian clothes, they can, according to need,
appear as soldiers or civilians. While they themselves have orders to
ruthlessly remove any German soldiers or even natives who get in
their way, they run no danger of suffering really serious losses in
their operations, since at the worst, if they are caught, they can
immediately surrender and thus believe that they will theoretically
fall under the provisions of the Geneva Convention. There is no
doubt, however, that this is a misuse in the worst form of the
Geneva agreements, especially since part of these elements are
even criminals, liberated from prisons, who can rehabilitate
themselves through these activities.
England and America will therefore always be able to find volunteers
for this kind of warfare, as long as they can truthfully assure them
that there is no danger of loss of life for them. At worst, all they
have to do is to successfully commit their attack on people, traffic
installations, or other installations, and upon being encountered by
the enemy, to capitulate.
If the German conduct of war is not to suffer grievous damage
through these incidents, it must be made clear to the adversary that
all sabotage troops will be exterminated, without exception, to the
last man.
This means that their chance of escaping with their lives is nil. Under
no circumstances can it be permitted, therefore, that a dynamite,
sabotage, or terrorist unit simply allows itself to be captured,
expecting to be treated according to rules of the Geneva Convention.
It must under all circumstances be ruthlessly exterminated.
The report on this subject appearing in the Armed Forces
communique will briefly and laconically state that a sabotage, terror,
or destruction unit has been encountered and exterminated to the
last man.
I therefore expect the commanding officers of armies subordinated
to them as well as individual commanders not only to realize the
necessity of taking such measures, but to carry out this order with
all energy. Officers and noncommissioned officers who fail through
some weakness are to be reported without fail, or under
circumstances—when there is danger in delay—to be at once made
strictly accountable. The Homeland as well as the fighting soldier at
the front has the right to expect that behind their back the essentials
of nourishment as well as the supply of war-important weapons and
ammunition remains secure.
These are the reason for the issuance of this decree.
If it should become necessary, for reasons of interrogation, to
initially spare one man or two, then they are to be shot immediately
after interrogation.
(signed) A. Hitler
TRANSLATION OF DOCUMENT
506-PS
Draft
WFSt/Qu (Verw. 1)
Nr 006580/44 g.Kdos
TOP SECRET
2 copies—1st copy
Reference: WR 2 f 10.34 (III/10) Nr 158/44 g.Kdos.-119/44 V—of
17 June 1944
Subject: Enemy agents—Fuehrer order 003830/42 g.Kdos/OKW
/WFSt of 18 October 42
To: W R
WFSt agrees with the view taken in the letter of the Judge Advocate
of the Army group with the Supreme Commander South-west of 20
May 44 (Br. B Nr 68/44 g.K.). The Fuehrer order is to be applied
even if the enemy employs only one person for a task. Therefore, it
does not make any difference if several persons or a single person
take part in a commando operation. The reason for the special
treatment of participants in a commando operation is that such
operations do not correspond to the German concept of usage and
customs of (land) warfare.
By direction
initialled: W
3 inclosures [Warlimont]
[Following is an attached handwritten note]
Qu 2 W
All questions connected to the commando order (18 Oct 42) are to
be handled according to a previous directive of Chef Qu at Qu 2 (W)
page 2140, not at administration.
[initial illegible]
TRANSLATION OF DOCUMENT
508-PS
TOP SECRET
WFSt/Op (L)
TOP SECRET
F. Amt. Ausl./Abw
Ag Ausl. Nr. 1951/42 gKdos Ausl. Chef
F XVI, E 1/e
To: WFSt
For: Information
From: Abw III.
Subject: Fuehrer order of 18 Oct. 42, about treatment of enemy
sabotage troops.
Attached copies of two teletype messages of the Norway counter
intelligence are hereby forwarded, referring to the order contained in
the last paragraph of the 2nd teletype order of the Military
commander of Norway.
It is asked that it should be examined how far this order is
compatible with the above discussed Fuehrer order.
By direction
[Illegible signature]
[Warlimont's initials] 8/12
Copy
TOP SECRET
TRANSLATION OF DOCUMENT
509-PS
TOP SECRET
TRANSLATION OF DOCUMENT
512-PS
TOP SECRET
TOP SECRET
14 December 1942
SSD—Telegram
[illegible pencil remarks]
To: Supreme Command Armed Forces Foreign Department.
For information: Commander Armed Forces Norway Supreme
Command Armed Forces Counter Intelligence Service.
Reference: AG Ausl. number 1951/42 Top Secret of 4 December
1942. (Commander Armed Forces Norway I a number 5409/42 Top
Secret of 13 December 1942).
Subject: Commando Operations.
It is reported that the armed forces commander Norway intends to
spare individual saboteurs for the time being in order to have them
interrogated. This intention corresponds to the last paragraph of the
order OKW/WFSt/QU. number 551781/42 top secret CHEFS of 19th
October 1942.
OKW/WFSt/Qu (III)
Number 004872/42 Top Secret
W [Initialled Warlimont]
TRANSLATION OF DOCUMENT
526-PS
WFSt/Qu (III)
Subject: Saboteurs, Toftefjord.
10. 5. 1943
TOP SECRET
Notice
On the 30. 3. 1943 in Toftefjord (70° Lat.) an enemy cutter was
sighted, cutter was blown up by the enemy. Crew: 2 dead men, 10
prisoners.
Cutter was sent from Scalloway (Shetland Is.) by the Norwegian
Navy.
Armament: 2 Colt—MG's, 2 mounted MG's, a small transmitter. In
addition there were supposed to have been 4 MG's, 6 sub-machine
guns and 1,000 kg of explosives on board.
Captain of the Cutter: Norwegian, Lt. Eskeland.
Purpose: Construction of an organization for sabotaging of
strongpoints, battery positions, staff and troop billets and bridges.
Assigner of Mission in London: Norwegian, Maj. Munthe.
Fuehrer order executed by S.D. [Security Service].
Wehrmacht Report of 6.4 announces the following about it:
In Northern Norway an enemy sabotage-unit was engaged and
destroyed on approaching the coast.
TRANSLATION OF DOCUMENT
531-PS
Armed Forces Operational Staff
Qm (Adm. 1)
No. 006688/44 Top Secret
TOP SECRET
3 copies—1st copy
Reference: Fuehrer Order No. 003832/42/OKW/WFSt of 18 Oct 42.
Subject: Treatment of Commando Men.
Conference memorandum
Supreme Command West reports by teletype message No 1750/44
Top Secret of 23 June 44:
The treatment of enemy commando groups has so far been carried
out according to the order referred to. With the large-scale landing
achieved, a new situation has arisen. The order referred to directs in
number 5 that enemy soldiers who are taken prisoner in open
combat or surrender within the limits of normal combat operations
(large-scale landing operations and undertakings) are not to be
treated according to numbers 3 and 4. It must be established in a
form easily understood by the troops how far the concept "within the
limits of normal combat operations, etc." is to be extended. The view
of the Supreme Command West is as follows:
A. The commitment of air-borne troops and commandos effected in
Normandy falls clearly under number 5.
B. It is likewise not to be contested that paratroop units or groups
set down further to the rear are connected with the large-scale
landing operation effected, if they have the mission of breaking
supply lines or carrying out deceptive maneuvers etc. The German
combat soldier will not always be able, during battle, to decide
whether it is a question of sabotage groups parachuted down or
larger air-borne operations in closer or more distant connection with
a landing from the sea already carried out or still being carried out.
C. As a result of the large turn-over of troops in the area of the
Supreme Command West, especially recently, it is possible that a
considerable number of soldiers are ignorant of the order referred
to, which dates from more than 1-1/2 years ago. For Germans from
foreign countries (Volksdeutsche) and foreign nationalities the
differentiation in the treatment of prisoners will hardly be able to be
made clear due to language difficulties. A further reproduction of the
order in the present situation, where cases of losses must be
considered, is held by Supreme Command West to be a false course
of action. Considerable reprisals against our own prisoners must be
expected if its contents become known.
D. The application of number 5 for all enemy soldiers in uniform
penetrating from the outside into the occupied western areas is held
by Supreme Command West to be the most correct and clearest
solution. On the other hand an order of the chief office for Reich
security to the commander of the SIPO (Security Police) and the SD
(Security Service) in Paris has decided that numbers 3 and 4 of the
order referred to are to be applied in the future the same as before
in the case of uniformed parachutists committed in groups. A
conversation with representatives of the higher SS and police
fuehrers in France and of the commander of the SIPO and SD in
Paris gave the result that according to the opinion of all concerned
the difficulty lies in the determination of the "limits of normal combat
operations". As a solution it was agreed to set a line (e.g. Seine from
the mouth to Rouen-Argentan-Avranches) North of which number 5,
inland of which numbers 3 and 4 apply. This solution also must be
called incomplete, since the combat situation can at any time bring
the necessity of extending this line to other coastal areas as well. In
case of a large-scale aerial landing in the interior such boundaries
cannot be drawn anymore at all. Supreme Command West requests,
therefore, that, in agreement with the Reichsfuehrer SS, the decision
be made, that, in view of the new situation, number 5 is to be
applied in the whole occupied Western area.
Position taken by Armed Forces Operational Staff:
1. The Commando order remains basically in effect even after the
enemy landing in the west.
2. Number 5 of the order is to be clarified to the effect, that the
order is not valid for those enemy soldiers in uniform, who are
captured in open combat in the immediate combat area of the
beachhead by our troops committed there, or who surrender. Our
troops committed in the immediate combat area means the divisions
fighting on the front line as well as reserves up to and including
corps headquarters.
3. Furthermore, in doubtful cases enemy personnel who have fallen
into our hands alive are to be turned over to the SD, upon whom it
is encumbent to determine whether the commando order is to be
applied or not.
4. Supreme Command West is to see to it that all units committed in
its zone are orally acquainted in a suitable manner with the order
concerning the treatment of members of commando undertakings of
18 Oct 42 along with the above explanation.
Proposal:
Attached teletype message.
signed: WARLIMONT
Distribution:
Chief of the Supreme Command of the Armed Forces—1 copy
through Deputy Commander of the Armed Forces Operational Staff.
Ktb, 2 copies.
Qu—Draft, 3 copies.
TRANSLATION OF DOCUMENT
532-PS
WFSt/Qu (Verw. 1)
24 June 1944
TOP SECRET
TRANSLATION OF DOCUMENT
537-PS
Draft
TOP SECRET
re: Treatment of members of foreign "Military Missions", captured
together with partisans.
In the areas of the High Command Southeast and Southwest
members of foreign so-called "Military Missions" (anglo-American as
well as Soviet-Russian) captured in the course of the struggle
against partisans shall not receive the treatment as stipulated in the
special orders regarding the treatment of captured partisans.
Therefore they are not to be treated as PWs but in conformity with
the Fuehrer's order the elimination of terror and sabotage troops of
18 October 1942 (OKW/WFSt. 003830/42 g.Kdos).
This order shall not be transmitted to other units of the armed forces
via the High Commands and equivalent staffs and is to be destroyed
after being read.
The Chief of the High Command of the Wehrmacht
KEITEL
Distribution:
PARTIAL TRANSLATION OF
DOCUMENT 551-PS
WFSt/Qu! (Verw. 1)
of
[initial] J
26 June 1944
5 copies—1st copy
Checked before Release }
Chef WFSt } [in pencil]
Remark 1 }
OB. WFSt } [in pencil]
KR—Teletype
To 1. Supreme Commander West.
2. Chief of Army General Staff.
3. OKL/Lw Fu Stab.
4. OKM/1.Skl.
5. Reichsfuehrer SS—Command Staff.
6. Military Commander, France.
7. Military Commander, Belgium/Northern France.
8. Armed forces Commander, Netherlands.
9. OKW/WR.
10. Supreme Commander Southwest [in pencil].
Reference: 1. Fuehrer Order No. 003830/42 Top Secret of 18 Oct
1942 OKW/WFSt.
2. Teletype Supreme Commander West No. 1750/44 Top Secret of 23
June 1944 (only to OKW/WFSt).
Subject: Treatment of Kommando Participants.
1. Even after the landing of Anglo-Americans in France, the order of
the Fuehrer on the destruction of terror and sabotage units of 18
Oct 1942 remains fully in force.
Enemy soldiers in uniform in the immediate combat area of the
bridgehead, that is, in the area of the divisions fighting in the most
forward lines as well as of the reserves up to the corps commands,
according to #5 of the basic order of 18 Oct 1942, remain
exempted.
2. All members of terror and sabotage units, found outside the
immediate combat area, who include fundamentally all parachutists,
are to be killed in combat. In special cases, they are to be turned
over to the SD.
3. All troops committed outside the combat area of Normandy are to
be informed about the duty to destroy enemy terror and sabotage
units briefly and succinctly according to the directives issued for it.
4. Supreme Commander West will report immediately daily how
many saboteurs have been liquidated in this manner. This applies
especially also to undertakings by the military commanders. The
number is to be published daily in the armed forces communique to
exercise a frightening effect, as has already been done toward
previous Kommando undertakings in the same manner.
[Initial] W [Warlimont]
[signature] Keitel
OKW/WFSt/Qu. (Verw. 1)
Nr. 006688/44 Top Secret
[initial] J [Jodl]
After forwarding:
Qu (Verw. 1) Simultaneously teletype—1st copy.
Op (H)—2nd copy.
Op (M)/(L)/Ktb.—3rd copy.
VO Foreign—4th copy.
VO W Pr—5th copy.
Copy was sent on 18 Aug to the Chief of the Security Police and the
SD.
TRANSLATION OF DOCUMENT
553-PS
Memo secret 7/4
(Annex 2 to H.Dr.g.l
Page 7 current 1910.4)
High Command of the armed forces
WFSt. (Org.1) amt. AUSL.ABW/ABT ABW.III
Nr. 8725/7. 42 g. (IIIb 2) Berlin, 4 August 1942
SECRET
TRANSLATION OF DOCUMENT
556-2-PS
The Fuehrer and Supreme Commander of the Wehrmacht
Fuehrer Hq September 8, 1942
The extensive coastal fortifications which I have ordered to be
erected in the area of Army Group West make it necessary that in
the occupied territory all available workers should be committed and
should give the fullest extent of their productive capacities. The
previous allotment of domestic workers is insufficient. In order to
increase it, I order the introduction of compulsory labor and the
prohibition of changing the place of employment without permission
of the authorities in the occupied territories. Furthermore the
distribution of food and clothing ration cards to those subject to
labor draft should in the future depend on the possession of a
certificate of employment. Refusal to accept an assigned job, as well
as abandoning the place of work without the consent of the
authorities in charge, will result in the withdrawal of the food and
clothing ration cards. The GBA [Deputy General for Arbeitseinsatz] in
agreement with the military commander as well as the Reich
Commissar, will issue the corresponding decrees for execution.
A Hitler
[initialled] K [Keitel]
TRANSLATION OF DOCUMENT
556-13-PS
Note for the files
1. On 4 January 1943 at 8 P.M. Minister Speer telephones from the
Fuehrer Headquarters and communicates that on the basis of the
Fuehrer's decision, it is no longer necessary to give special
consideration to Frenchmen in the further recruiting of specialists
and helpers in France. The recruiting can proceed with emphasis and
sharpened measures.
2. Commissar-General Schmidt with the Reich Commissar in Holland
just telephones on 5 January 1943 at 5:20 P.M. and explains that on
the basis of Armament Action 1943 he must achieve more recruiting
in Holland.
3. He has been criticized by the armament Commissions regarding
the endangering of German contracts in Holland proper due to labor
shortage.
I told him that no attention would be paid these criticisms.
He has already taken the same attitude and in the future will take
the appropriate action.
For Information
(signed) SAUCKEL
TRANSLATION OF DOCUMENT
579-PS
Weimar, 5 January 1943
The District Commissar in Riga—Employment Office
Section [Fachgebiet] 2 (Commitment of work)
Riga, 6 July 1942
File note
Subject: Commitment of Jews.
here: cooperation with the administration offices of the armed
forces.
For the last 10 days Jews have been picked up almost daily for
commitment in the peat industry by units of the armed forces. While
doing so, very considerable difficulties arose because the members
of the armed forces who get the Jews from the ghetto daily do not
want to comply with the regulations which are issued by the man
responsible for work commitment.
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about books and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookgate.com