Skip to content

Commit

Permalink
update week 9
Browse files Browse the repository at this point in the history
  • Loading branch information
mhjensen committed Mar 14, 2024
1 parent 8cf41c2 commit 78c94ae
Show file tree
Hide file tree
Showing 153 changed files with 73,939 additions and 17,368 deletions.
504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs000.html

Large diffs are not rendered by default.

515 changes: 501 additions & 14 deletions doc/pub/week9/html/._week9-bs001.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs002.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs003.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs004.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs005.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs006.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs007.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs008.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs009.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs010.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/._week9-bs011.html

Large diffs are not rendered by default.

504 changes: 501 additions & 3 deletions doc/pub/week9/html/._week9-bs012.html

Large diffs are not rendered by default.

511 changes: 505 additions & 6 deletions doc/pub/week9/html/._week9-bs013.html

Large diffs are not rendered by default.

506 changes: 503 additions & 3 deletions doc/pub/week9/html/._week9-bs014.html

Large diffs are not rendered by default.

507 changes: 504 additions & 3 deletions doc/pub/week9/html/._week9-bs015.html

Large diffs are not rendered by default.

508 changes: 505 additions & 3 deletions doc/pub/week9/html/._week9-bs016.html

Large diffs are not rendered by default.

509 changes: 506 additions & 3 deletions doc/pub/week9/html/._week9-bs017.html

Large diffs are not rendered by default.

510 changes: 507 additions & 3 deletions doc/pub/week9/html/._week9-bs018.html

Large diffs are not rendered by default.

521 changes: 508 additions & 13 deletions doc/pub/week9/html/._week9-bs019.html

Large diffs are not rendered by default.

759 changes: 519 additions & 240 deletions doc/pub/week9/html/._week9-bs020.html

Large diffs are not rendered by default.

773 changes: 718 additions & 55 deletions doc/pub/week9/html/._week9-bs021.html

Large diffs are not rendered by default.

666 changes: 594 additions & 72 deletions doc/pub/week9/html/._week9-bs022.html

Large diffs are not rendered by default.

613 changes: 525 additions & 88 deletions doc/pub/week9/html/._week9-bs023.html

Large diffs are not rendered by default.

645 changes: 576 additions & 69 deletions doc/pub/week9/html/._week9-bs024.html

Large diffs are not rendered by default.

619 changes: 550 additions & 69 deletions doc/pub/week9/html/._week9-bs025.html

Large diffs are not rendered by default.

650 changes: 574 additions & 76 deletions doc/pub/week9/html/._week9-bs026.html

Large diffs are not rendered by default.

814 changes: 542 additions & 272 deletions doc/pub/week9/html/._week9-bs027.html

Large diffs are not rendered by default.

682 changes: 568 additions & 114 deletions doc/pub/week9/html/._week9-bs028.html

Large diffs are not rendered by default.

380 changes: 214 additions & 166 deletions doc/pub/week9/html/._week9-bs029.html

Large diffs are not rendered by default.

382 changes: 210 additions & 172 deletions doc/pub/week9/html/._week9-bs030.html

Large diffs are not rendered by default.

374 changes: 211 additions & 163 deletions doc/pub/week9/html/._week9-bs031.html

Large diffs are not rendered by default.

376 changes: 211 additions & 165 deletions doc/pub/week9/html/._week9-bs032.html

Large diffs are not rendered by default.

369 changes: 211 additions & 158 deletions doc/pub/week9/html/._week9-bs033.html

Large diffs are not rendered by default.

400 changes: 239 additions & 161 deletions doc/pub/week9/html/._week9-bs034.html

Large diffs are not rendered by default.

381 changes: 222 additions & 159 deletions doc/pub/week9/html/._week9-bs035.html

Large diffs are not rendered by default.

400 changes: 232 additions & 168 deletions doc/pub/week9/html/._week9-bs036.html

Large diffs are not rendered by default.

389 changes: 232 additions & 157 deletions doc/pub/week9/html/._week9-bs037.html

Large diffs are not rendered by default.

409 changes: 231 additions & 178 deletions doc/pub/week9/html/._week9-bs038.html

Large diffs are not rendered by default.

408 changes: 210 additions & 198 deletions doc/pub/week9/html/._week9-bs039.html

Large diffs are not rendered by default.

439 changes: 269 additions & 170 deletions doc/pub/week9/html/._week9-bs040.html

Large diffs are not rendered by default.

491 changes: 298 additions & 193 deletions doc/pub/week9/html/._week9-bs041.html

Large diffs are not rendered by default.

494 changes: 294 additions & 200 deletions doc/pub/week9/html/._week9-bs042.html

Large diffs are not rendered by default.

449 changes: 229 additions & 220 deletions doc/pub/week9/html/._week9-bs043.html

Large diffs are not rendered by default.

391 changes: 229 additions & 162 deletions doc/pub/week9/html/._week9-bs044.html

Large diffs are not rendered by default.

407 changes: 236 additions & 171 deletions doc/pub/week9/html/._week9-bs045.html

Large diffs are not rendered by default.

396 changes: 229 additions & 167 deletions doc/pub/week9/html/._week9-bs046.html

Large diffs are not rendered by default.

391 changes: 228 additions & 163 deletions doc/pub/week9/html/._week9-bs047.html

Large diffs are not rendered by default.

422 changes: 256 additions & 166 deletions doc/pub/week9/html/._week9-bs048.html

Large diffs are not rendered by default.

412 changes: 232 additions & 180 deletions doc/pub/week9/html/._week9-bs049.html

Large diffs are not rendered by default.

395 changes: 230 additions & 165 deletions doc/pub/week9/html/._week9-bs050.html

Large diffs are not rendered by default.

383 changes: 216 additions & 167 deletions doc/pub/week9/html/._week9-bs051.html

Large diffs are not rendered by default.

375 changes: 209 additions & 166 deletions doc/pub/week9/html/._week9-bs052.html

Large diffs are not rendered by default.

387 changes: 228 additions & 159 deletions doc/pub/week9/html/._week9-bs053.html

Large diffs are not rendered by default.

374 changes: 209 additions & 165 deletions doc/pub/week9/html/._week9-bs054.html

Large diffs are not rendered by default.

388 changes: 212 additions & 176 deletions doc/pub/week9/html/._week9-bs055.html

Large diffs are not rendered by default.

390 changes: 209 additions & 181 deletions doc/pub/week9/html/._week9-bs056.html

Large diffs are not rendered by default.

400 changes: 214 additions & 186 deletions doc/pub/week9/html/._week9-bs057.html

Large diffs are not rendered by default.

374 changes: 208 additions & 166 deletions doc/pub/week9/html/._week9-bs058.html

Large diffs are not rendered by default.

394 changes: 226 additions & 168 deletions doc/pub/week9/html/._week9-bs059.html

Large diffs are not rendered by default.

414 changes: 240 additions & 174 deletions doc/pub/week9/html/._week9-bs060.html

Large diffs are not rendered by default.

387 changes: 217 additions & 170 deletions doc/pub/week9/html/._week9-bs061.html

Large diffs are not rendered by default.

419 changes: 249 additions & 170 deletions doc/pub/week9/html/._week9-bs062.html

Large diffs are not rendered by default.

437 changes: 267 additions & 170 deletions doc/pub/week9/html/._week9-bs063.html

Large diffs are not rendered by default.

450 changes: 286 additions & 164 deletions doc/pub/week9/html/._week9-bs064.html

Large diffs are not rendered by default.

386 changes: 210 additions & 176 deletions doc/pub/week9/html/._week9-bs065.html

Large diffs are not rendered by default.

383 changes: 213 additions & 170 deletions doc/pub/week9/html/._week9-bs066.html

Large diffs are not rendered by default.

367 changes: 209 additions & 158 deletions doc/pub/week9/html/._week9-bs067.html

Large diffs are not rendered by default.

384 changes: 212 additions & 172 deletions doc/pub/week9/html/._week9-bs068.html

Large diffs are not rendered by default.

376 changes: 212 additions & 164 deletions doc/pub/week9/html/._week9-bs069.html

Large diffs are not rendered by default.

402 changes: 227 additions & 175 deletions doc/pub/week9/html/._week9-bs070.html

Large diffs are not rendered by default.

387 changes: 211 additions & 176 deletions doc/pub/week9/html/._week9-bs071.html

Large diffs are not rendered by default.

388 changes: 209 additions & 179 deletions doc/pub/week9/html/._week9-bs072.html

Large diffs are not rendered by default.

374 changes: 210 additions & 164 deletions doc/pub/week9/html/._week9-bs073.html

Large diffs are not rendered by default.

382 changes: 207 additions & 175 deletions doc/pub/week9/html/._week9-bs074.html

Large diffs are not rendered by default.

381 changes: 207 additions & 174 deletions doc/pub/week9/html/._week9-bs075.html

Large diffs are not rendered by default.

406 changes: 232 additions & 174 deletions doc/pub/week9/html/._week9-bs076.html

Large diffs are not rendered by default.

424 changes: 254 additions & 170 deletions doc/pub/week9/html/._week9-bs077.html

Large diffs are not rendered by default.

442 changes: 276 additions & 166 deletions doc/pub/week9/html/._week9-bs078.html

Large diffs are not rendered by default.

373 changes: 205 additions & 168 deletions doc/pub/week9/html/._week9-bs079.html

Large diffs are not rendered by default.

391 changes: 214 additions & 177 deletions doc/pub/week9/html/._week9-bs080.html

Large diffs are not rendered by default.

864 changes: 253 additions & 611 deletions doc/pub/week9/html/._week9-bs081.html

Large diffs are not rendered by default.

385 changes: 213 additions & 172 deletions doc/pub/week9/html/._week9-bs082.html

Large diffs are not rendered by default.

426 changes: 249 additions & 177 deletions doc/pub/week9/html/._week9-bs083.html

Large diffs are not rendered by default.

402 changes: 233 additions & 169 deletions doc/pub/week9/html/._week9-bs084.html

Large diffs are not rendered by default.

373 changes: 215 additions & 158 deletions doc/pub/week9/html/._week9-bs085.html

Large diffs are not rendered by default.

414 changes: 238 additions & 176 deletions doc/pub/week9/html/._week9-bs086.html

Large diffs are not rendered by default.

411 changes: 235 additions & 176 deletions doc/pub/week9/html/._week9-bs087.html

Large diffs are not rendered by default.

383 changes: 208 additions & 175 deletions doc/pub/week9/html/._week9-bs088.html

Large diffs are not rendered by default.

416 changes: 234 additions & 182 deletions doc/pub/week9/html/._week9-bs089.html

Large diffs are not rendered by default.

369 changes: 210 additions & 159 deletions doc/pub/week9/html/._week9-bs090.html

Large diffs are not rendered by default.

407 changes: 239 additions & 168 deletions doc/pub/week9/html/._week9-bs091.html

Large diffs are not rendered by default.

405 changes: 239 additions & 166 deletions doc/pub/week9/html/._week9-bs092.html

Large diffs are not rendered by default.

413 changes: 240 additions & 173 deletions doc/pub/week9/html/._week9-bs093.html

Large diffs are not rendered by default.

377 changes: 211 additions & 166 deletions doc/pub/week9/html/._week9-bs094.html

Large diffs are not rendered by default.

405 changes: 241 additions & 164 deletions doc/pub/week9/html/._week9-bs095.html

Large diffs are not rendered by default.

409 changes: 237 additions & 172 deletions doc/pub/week9/html/._week9-bs096.html

Large diffs are not rendered by default.

411 changes: 239 additions & 172 deletions doc/pub/week9/html/._week9-bs097.html

Large diffs are not rendered by default.

412 changes: 235 additions & 177 deletions doc/pub/week9/html/._week9-bs098.html

Large diffs are not rendered by default.

401 changes: 231 additions & 170 deletions doc/pub/week9/html/._week9-bs099.html

Large diffs are not rendered by default.

398 changes: 231 additions & 167 deletions doc/pub/week9/html/._week9-bs100.html

Large diffs are not rendered by default.

412 changes: 240 additions & 172 deletions doc/pub/week9/html/._week9-bs101.html

Large diffs are not rendered by default.

843 changes: 676 additions & 167 deletions doc/pub/week9/html/._week9-bs102.html

Large diffs are not rendered by default.

409 changes: 220 additions & 189 deletions doc/pub/week9/html/._week9-bs103.html

Large diffs are not rendered by default.

421 changes: 255 additions & 166 deletions doc/pub/week9/html/._week9-bs104.html

Large diffs are not rendered by default.

412 changes: 252 additions & 160 deletions doc/pub/week9/html/._week9-bs105.html

Large diffs are not rendered by default.

397 changes: 208 additions & 189 deletions doc/pub/week9/html/._week9-bs106.html

Large diffs are not rendered by default.

409 changes: 241 additions & 168 deletions doc/pub/week9/html/._week9-bs107.html

Large diffs are not rendered by default.

404 changes: 237 additions & 167 deletions doc/pub/week9/html/._week9-bs108.html

Large diffs are not rendered by default.

415 changes: 238 additions & 177 deletions doc/pub/week9/html/._week9-bs109.html

Large diffs are not rendered by default.

434 changes: 267 additions & 167 deletions doc/pub/week9/html/._week9-bs110.html

Large diffs are not rendered by default.

390 changes: 212 additions & 178 deletions doc/pub/week9/html/._week9-bs111.html

Large diffs are not rendered by default.

402 changes: 237 additions & 165 deletions doc/pub/week9/html/._week9-bs112.html

Large diffs are not rendered by default.

405 changes: 236 additions & 169 deletions doc/pub/week9/html/._week9-bs113.html

Large diffs are not rendered by default.

402 changes: 250 additions & 152 deletions doc/pub/week9/html/._week9-bs114.html

Large diffs are not rendered by default.

395 changes: 235 additions & 160 deletions doc/pub/week9/html/._week9-bs115.html

Large diffs are not rendered by default.

389 changes: 218 additions & 171 deletions doc/pub/week9/html/._week9-bs116.html

Large diffs are not rendered by default.

415 changes: 246 additions & 169 deletions doc/pub/week9/html/._week9-bs117.html

Large diffs are not rendered by default.

462 changes: 251 additions & 211 deletions doc/pub/week9/html/._week9-bs118.html

Large diffs are not rendered by default.

501 changes: 271 additions & 230 deletions doc/pub/week9/html/._week9-bs119.html

Large diffs are not rendered by default.

751 changes: 751 additions & 0 deletions doc/pub/week9/html/._week9-bs120.html

Large diffs are not rendered by default.

732 changes: 732 additions & 0 deletions doc/pub/week9/html/._week9-bs121.html

Large diffs are not rendered by default.

735 changes: 735 additions & 0 deletions doc/pub/week9/html/._week9-bs122.html

Large diffs are not rendered by default.

750 changes: 750 additions & 0 deletions doc/pub/week9/html/._week9-bs123.html

Large diffs are not rendered by default.

820 changes: 820 additions & 0 deletions doc/pub/week9/html/._week9-bs124.html

Large diffs are not rendered by default.

715 changes: 715 additions & 0 deletions doc/pub/week9/html/._week9-bs125.html

Large diffs are not rendered by default.

707 changes: 707 additions & 0 deletions doc/pub/week9/html/._week9-bs126.html

Large diffs are not rendered by default.

768 changes: 768 additions & 0 deletions doc/pub/week9/html/._week9-bs127.html

Large diffs are not rendered by default.

733 changes: 733 additions & 0 deletions doc/pub/week9/html/._week9-bs128.html

Large diffs are not rendered by default.

731 changes: 731 additions & 0 deletions doc/pub/week9/html/._week9-bs129.html

Large diffs are not rendered by default.

759 changes: 759 additions & 0 deletions doc/pub/week9/html/._week9-bs130.html

Large diffs are not rendered by default.

730 changes: 730 additions & 0 deletions doc/pub/week9/html/._week9-bs131.html

Large diffs are not rendered by default.

754 changes: 754 additions & 0 deletions doc/pub/week9/html/._week9-bs132.html

Large diffs are not rendered by default.

727 changes: 727 additions & 0 deletions doc/pub/week9/html/._week9-bs133.html

Large diffs are not rendered by default.

732 changes: 732 additions & 0 deletions doc/pub/week9/html/._week9-bs134.html

Large diffs are not rendered by default.

689 changes: 689 additions & 0 deletions doc/pub/week9/html/._week9-bs135.html

Large diffs are not rendered by default.

700 changes: 700 additions & 0 deletions doc/pub/week9/html/._week9-bs136.html

Large diffs are not rendered by default.

727 changes: 727 additions & 0 deletions doc/pub/week9/html/._week9-bs137.html

Large diffs are not rendered by default.

726 changes: 726 additions & 0 deletions doc/pub/week9/html/._week9-bs138.html

Large diffs are not rendered by default.

764 changes: 764 additions & 0 deletions doc/pub/week9/html/._week9-bs139.html

Large diffs are not rendered by default.

782 changes: 782 additions & 0 deletions doc/pub/week9/html/._week9-bs140.html

Large diffs are not rendered by default.

504 changes: 500 additions & 4 deletions doc/pub/week9/html/week9-bs.html

Large diffs are not rendered by default.

5,222 changes: 5,209 additions & 13 deletions doc/pub/week9/html/week9-reveal.html

Large diffs are not rendered by default.

5,468 changes: 5,454 additions & 14 deletions doc/pub/week9/html/week9-solarized.html

Large diffs are not rendered by default.

5,468 changes: 5,454 additions & 14 deletions doc/pub/week9/html/week9.html

Large diffs are not rendered by default.

Binary file modified doc/pub/week9/ipynb/ipynb-week9-src.tar.gz
Binary file not shown.
5,017 changes: 4,943 additions & 74 deletions doc/pub/week9/ipynb/week9.ipynb

Large diffs are not rendered by default.

Binary file modified doc/pub/week9/pdf/week9-beamer.pdf
Binary file not shown.
Binary file modified doc/pub/week9/pdf/week9.pdf
Binary file not shown.
76 changes: 76 additions & 0 deletions doc/src/week9/programs/automersenne.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// This function computes the autocorrelation function for
// the standard c++ random number generator

#include <fstream>
#include <iomanip>
#include <iostream>
#include <cmath>
#include <random>

using namespace std;
// output file as global variable
ofstream ofile;

// Main function begins here
int main(int argc, char* argv[])
{
int n;
char *outfilename;

cin >> n;
double MCint = 0.; double MCintsqr2=0.;
// Initialize the seed and call the Mersienne algo
std::random_device rd;
std::mt19937_64 gen(rd());
// Set up the uniform distribution for x \in [[0, 1]
std::uniform_real_distribution<double> RandomNumberGenerator(0.0,1.0);
// Compute the variance and the mean value of the uniform distribution
// Compute also the specific values x for each cycle in order to be able to
// the covariance and the correlation function
// Read in output file, abort if there are too few command-line arguments
if( argc <= 2 ){
cout << "Bad Usage: " << argv[0] <<
" read also output file and number of cycles on same line" << endl;
exit(1);
}
else{
outfilename=argv[1];
}
ofile.open(outfilename);
// Get the number of Monte-Carlo samples
n = atoi(argv[2]);
double *X;
X = new double[n];
for (int i = 0; i < n; i++){
double x = RandomNumberGenerator(gen);
X[i] = x;
MCint += x;
MCintsqr2 += x*x;
}
double Mean = MCint/((double) n );
MCintsqr2 = MCintsqr2/((double) n );
double STDev = sqrt(MCintsqr2-Mean*Mean);
double Variance = MCintsqr2-Mean*Mean;
// Write mean value and standard deviation
cout << " Standard deviation= " << STDev << " Integral = " << Mean << endl;

// Now we compute the autocorrelation function
double *autocor; autocor = new double[n];
for (int j = 0; j < n; j++){
double sum = 0.0;
for (int k = 0; k < (n-j); k++){
sum += (X[k]-Mean)*(X[k+j]-Mean);
}
autocor[j] = sum/Variance/((double) n );
ofile << setiosflags(ios::showpoint | ios::uppercase);
ofile << setw(15) << setprecision(8) << j;
ofile << setw(15) << setprecision(8) << autocor[j] << endl;
}
ofile.close(); // close output file
return 0;
} // end of main program





54 changes: 54 additions & 0 deletions doc/src/week9/programs/mc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
from matplotlib import pyplot as plt
from math import exp, acos, log10
import numpy as np
from sympy import Symbol, integrate, exp, oo
import random


# function for the trapezoidal rule
def TrapezoidalRule(a,b,f,n):
h = (b-a)/float(n)
s = 0
x = a
for i in range(1,n,1):
x = x+h
s = s+ f(x)
s = 0.5*(f(a)+f(b))+s
return h*s
# function to perform the Monte Carlo calculations
def MonteCarloIntegration(f,n):
sum = 0
# Define the seed for the rng
random.seed()
for i in range (1, n, 1):
x = random.random()
sum = sum +f(x)
return sum/n

# function to compute
def function(x):
return 4/(1+x*x)

# Integration limits for the Trapezoidal rule
a = 0.0; b = 1.0
# define x as a symbol to be used by sympy
x = Symbol('x')
# find result from sympy
#exact = integrate(function(x), (x, a, b))
exact = acos(-1.0)
# set up the arrays for plotting the relative error
log10n = np.zeros(6); Trapez = np.zeros(6); MCint = np.zeros(6);
# find the relative error as function of integration points
for i in range(1, 6):
npts = 10**(i+1)
log10n[i] = log10(npts)
Trapez[i] = log10(abs((TrapezoidalRule(a,b,function,npts)-exact)/exact))
MCint[i] = log10(abs((MonteCarloIntegration(function,npts)-exact)/exact))
plt.plot(log10n, Trapez ,'b-',log10n, MCint,'g-')
plt.axis([1,6,-14.0, 0.0])
plt.xlabel('$\log_{10}(n)$')
plt.ylabel('Relative error')
plt.title('Relative errors for Monte Carlo integration and Trapezoidal rule')
plt.legend(['Trapezoidal rule', 'Brute force Monte Carlo integration'], loc='best')
plt.savefig('mcintegration.pdf')
plt.show()
16 changes: 16 additions & 0 deletions doc/src/week9/programs/plot.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import numpy as np
from matplotlib import pyplot as plt
# Load in data file
data = np.loadtxt("autocor.dat")
data1 = np.loadtxt("automersenne.dat")
# Make arrays containing x-axis and binding energies as function of A
x = data[:,0]
corr = data[:,1]
corr2 = data1[:,1]
plt.plot(x, corr ,'ro', x, corr2, 'b')
plt.axis([0,1000,-0.2, 1.1])
plt.xlabel(r'$d$')
plt.ylabel(r'$C_d$')
plt.title(r'autocorrelation function for RNG')
plt.savefig('autocorr.pdf')
plt.show()
23 changes: 23 additions & 0 deletions doc/src/week9/programs/uniformhisto.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env python
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import random

# initialize the rng with a seed
random.seed()
counts = 10000
values = np.zeros(counts)
for i in range (1, counts, 1):
values[i] = random.random()

# the histogram of the data
n, bins, patches = plt.hist(values, 10, facecolor='green')

plt.xlabel('$x$')
plt.ylabel('Number of counts')
plt.title(r'Test of uniform distribution')
plt.axis([0, 1, 0, 1100])
plt.grid(True)

plt.show()

0 comments on commit 78c94ae

Please sign in to comment.