coniii.legacy package

Warning

Legacy modules kept for internal back-compatibility. Importing them directly emits a DeprecationWarning; mean_field_ising is still used internally by coniii.solvers.ClusterExpansion and coniii.solvers.RegularizedMeanField.

Mean-field Ising solver helpers — LEGACY.

This module predates modern numpy/scipy idioms. It is kept because coniii.solvers.ClusterExpansion and coniii.solvers.RegularizedMeanField still call into it. Direct imports emit a DeprecationWarning; internal callers in coniii.solvers suppress the warning via warnings.catch_warnings().

Originally authored by Bryan Daniels.

coniii.legacy.mean_field_ising.aboveDiagFlat(mat, keepDiag=False, offDiagMult=None)[source]

Return a flattened list of all elements of the matrix above the diagonal.

Use offDiagMult = 2 for symmetric J matrix.

coniii.legacy.mean_field_ising.replaceDiag(mat, lst)[source]
coniii.legacy.mean_field_ising.zeroDiag(mat)[source]
coniii.legacy.mean_field_ising.m(h, J, ell, T)[source]

Careful if T is small for loss of precision?

coniii.legacy.mean_field_ising.avgE(h, J, ell, T)[source]
coniii.legacy.mean_field_ising.dmdT(h, J, ell, T)[source]
coniii.legacy.mean_field_ising.specificHeat(h, J, ell, T)[source]
coniii.legacy.mean_field_ising.susc(h, J, ell, T)[source]
coniii.legacy.mean_field_ising.coocCluster(coocMat, cluster)[source]

Sort coocMat by the cluster indices

coniii.legacy.mean_field_ising.JfullFromCluster(Jcluster, cluster, N)[source]

NOTE: There is perhaps a faster way of doing this?

coniii.legacy.mean_field_ising.symmetrizeUsingUpper(mat)[source]
coniii.legacy.mean_field_ising.SmeanField(cluster, coocMat, meanFieldPriorLmbda=0.0, numSamples=None, indTerm=True, alternateEnt=False, useRegularizedEq=True)[source]

meanFieldPriorLmbda (0.): 3.23.2014 indTerm (True) : As of 2.19.2014, I’m not

sure whether this term should be included, but I think so

alternateEnt (False)Explicitly calculate entropy

using the full partition function

useRegularizedEq (True)Use regularized form of equation

even when meanFieldPriorLmbda = 0.

coniii.legacy.mean_field_ising.JmeanField(coocMat, **kwargs)[source]

See SmeanField for important optional arguments, including noninteracting prior weighting.

coniii.legacy.mean_field_ising.meanFieldStability(J, freqs)[source]
coniii.legacy.mean_field_ising.logCosh(x)[source]
coniii.legacy.mean_field_ising.FHomogeneous(h, J, N, m)[source]

Use Hubbard-Stratonovich (auxiliary field) to calculate the (free energy?) of a homogeneous system as a function of the field m (m equals the mean field as N -> infinity?).

coniii.legacy.mean_field_ising.dFdT(h, J, N, m)[source]
coniii.legacy.mean_field_ising.SHomogeneous(h, J, N)[source]

Use Hubbard-Stratonovich (auxiliary field) to numerically calculate entropy of a homogeneous system.

coniii.legacy.mean_field_ising.avgmHomogeneous(h, J, N)[source]
coniii.legacy.mean_field_ising.avgxHomogeneous(h, J, N)[source]
coniii.legacy.mean_field_ising.multiInfoHomogeneous(h, J, N)[source]
coniii.legacy.mean_field_ising.independentEntropyHomogeneous(h, J, N)[source]
coniii.legacy.mean_field_ising.independentEntropyHomogeneous2(h, J, N)[source]
coniii.legacy.mean_field_ising.findJmatrixAnalytic_CoocMat(coocMatData, Jinit=None, bayesianMean=False, numSamples=None, priorLmbda=0.0, minSize=0)[source]
coniii.legacy.mean_field_ising.unflatten(flatList, ell, symmetrize=False)[source]

Inverse of aboveDiagFlat with keepDiag=True.

coniii.legacy.mean_field_ising.diagFlatIndex(i, j, ell)[source]

Should have j>=i…

coniii.legacy.mean_field_ising.analyticEntropy(J)[source]

In nats.

coniii.legacy.mean_field_ising.coocSampleCovariance(samples, bayesianMean=True, includePrior=True)[source]
includePrior (True)Include diagonal component corresponding

to ell*(ell-1)/2 prior residuals for interaction parameters

coniii.legacy.mean_field_ising.cooccurrence_matrix(samples, keep_diag=True)[source]

Matrix of pairwise correlations. Only upper right triangle is filled.

Parameters:
  • samples (ndarray)

  • keep_diag (bool, True) – If True, diagonal is filled with ones. Else zeros.

Return type:

ndarray

coniii.legacy.mean_field_ising.fourthOrderCoocMat(samples, slowMethod=True)[source]
coniii.legacy.mean_field_ising.seedGenerator(seedStart, deltaSeed)[source]
coniii.legacy.mean_field_ising.coocStdevsFlat(coocMat, numFights)[source]

Returns a flattened expected standard deviation matrix used to divide deltaCooc to turn it into z scores.

coniii.legacy.mean_field_ising.coocMatBayesianMean(coocMat, numFights)[source]

Using “Laplace’s method”

coniii.legacy.mean_field_ising.isingDeltaCooc(isingSamples, coocMatDesired)[source]
coniii.legacy.mean_field_ising.coocExpectations(J, hext=0, zeroBelowDiag=True, minSize=0)[source]
coniii.legacy.mean_field_ising.unsummedZ(J, hext=0, minSize=0)[source]

J should have h on the diagonal.

coniii.legacy.mean_field_ising.unsummedLogZ(J, hext=0, minSize=0)[source]

J should have h on the diagonal.

coniii.legacy.mean_field_ising.fightPossibilities(ell, minSize=0)[source]

Pseudolikelihood inverse-Ising prototype — LEGACY.

A stand-alone implementation of the pseudolikelihood approach to the inverse Ising problem (Aurell and Ekeberg, PRL 108, 090201 (2012)). Not wrapped by any solver class in coniii.solvers and not exported from the top-level coniii. Kept for reference; scheduled for removal in coniii v5.

Direct imports emit a DeprecationWarning.

Originally authored by Bryan C. Daniels.

coniii.legacy.pseudo_inverse_ising.pseudoInverseIsing(samples, minSize=0)[source]
minSize (0)minimum number of participants per sample

(set to 2 for fights)

coniii.legacy.pseudo_inverse_ising.conditionalLogLikelihood(r, samples, Jr, minSize=0)[source]

(Equals -L_r from my notes.)

r : individual index samples : binary matrix, (# samples) x (dimension of system) Jr : (dimension of system) x (1) minSize (0) : minimum number of participants (set to 2 for fights)

coniii.legacy.pseudo_inverse_ising.conditionalJacobian(r, samples, Jr, minSize=0)[source]

Returns d conditionalLogLikelihood / d Jr, with shape (dimension of system)

coniii.legacy.pseudo_inverse_ising.conditionalHessian(r, samples, Jr, minSize=0, pairCoocRhat=None)[source]

Returns d^2 conditionalLogLikelihood / d Jri d Jrj, with shape (dimension of system)x(dimension of system)

pairCooc (None)Pass pairCoocMat(samples) to speed

calculation.

Current implementation uses more memory for speed. For large #samples, it may make sense to break up differently if too much memory is being used.

coniii.legacy.pseudo_inverse_ising.testDerivatives(r, i, samples, J, minSize=0, deltaMax=1)[source]
coniii.legacy.pseudo_inverse_ising.pairCoocMat(samples)[source]

Returns matrix of shape (ell)x(# samples)x(ell).

For use with conditionalHessian.

Slow because I haven’t thought of a better way of doing it yet.

coniii.legacy.pseudo_inverse_ising.pseudoLogLikelihood(samples, J, minSize=0)[source]

samples : binary matrix, (# samples) x (dimension of system) J : (dimension of system) x (dimension of system)

: J should be symmetric

(Could probably be made more efficient.)