public class org.apache.commons.text.similarity.LongestCommonSubsequence extends java.lang.Object implements org.apache.commons.text.similarity.SimilarityScore
{
static final org.apache.commons.text.similarity.LongestCommonSubsequence INSTANCE;
public void <init>()
{
org.apache.commons.text.similarity.LongestCommonSubsequence v;
v := @this: org.apache.commons.text.similarity.LongestCommonSubsequence;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
private static int[] algorithmB(java.lang.CharSequence, java.lang.CharSequence)
{
int[][] v;
int[] v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.CharSequence v, v;
char v, v;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = 1 + v;
v = newmultiarray (int)[2][v];
v = 1;
label:
if v > v goto label;
v = v[0];
v = v[1];
v[0] = v;
v[1] = v;
v = 1;
label:
if v > v goto label;
v = v - 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v - 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != v goto label;
v = v[1];
v = v[0];
v = v - 1;
v = v[v];
v = v + 1;
v[v] = v;
goto label;
label:
v = v[1];
v = v[1];
v = v - 1;
v = v[v];
v = v[0];
v = v[v];
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v[v] = v;
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = v[1];
return v;
}
private static java.lang.String algorithmC(java.lang.CharSequence, java.lang.CharSequence)
{
int[] v, v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v;
java.lang.CharSequence v, v, v, v, v, v;
char v, v;
java.lang.StringBuilder v;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
if v != 1 goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(0);
v = 0;
label:
if v >= v goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
goto label;
label:
v = v + 1;
goto label;
label:
if v <= 0 goto label;
if v <= 1 goto label;
v = v / 2;
v = interfaceinvoke v.<java.lang.CharSequence: java.lang.CharSequence subSequence(int,int)>(0, v);
v = interfaceinvoke v.<java.lang.CharSequence: java.lang.CharSequence subSequence(int,int)>(v, v);
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: int[] algorithmB(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.String reverse(java.lang.CharSequence)>(v);
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.String reverse(java.lang.CharSequence)>(v);
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: int[] algorithmB(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
v = 0;
v = 0;
v = 0;
label:
if v > v goto label;
v = v[v];
v = v - v;
v = v[v];
v = v + v;
if v >= v goto label;
v = v;
v = v;
label:
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.lang.CharSequence: java.lang.CharSequence subSequence(int,int)>(0, v);
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.String algorithmC(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = interfaceinvoke v.<java.lang.CharSequence: java.lang.CharSequence subSequence(int,int)>(v, v);
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.String algorithmC(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private static java.lang.String reverse(java.lang.CharSequence)
{
java.lang.CharSequence v;
java.lang.StringBuilder v, v;
java.lang.String v;
v := @parameter: java.lang.CharSequence;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder reverse()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public java.lang.Integer apply(java.lang.CharSequence, java.lang.CharSequence)
{
java.lang.CharSequence v, v;
java.lang.IllegalArgumentException v;
java.lang.Integer v, v, v;
int[] v, v;
org.apache.commons.text.similarity.LongestCommonSubsequence v;
int v, v, v, v;
v := @this: org.apache.commons.text.similarity.LongestCommonSubsequence;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
if v == null goto label;
if v != null goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Inputs must not be null");
throw v;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v == 0 goto label;
if v != 0 goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
return v;
label:
if v >= v goto label;
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: int[] algorithmB(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
v = v[v];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
return v;
label:
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: int[] algorithmB(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
v = v[v];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
return v;
}
public java.lang.CharSequence logestCommonSubsequence(java.lang.CharSequence, java.lang.CharSequence)
{
java.lang.CharSequence v, v, v;
org.apache.commons.text.similarity.LongestCommonSubsequence v;
v := @this: org.apache.commons.text.similarity.LongestCommonSubsequence;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
v = virtualinvoke v.<org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.CharSequence longestCommonSubsequence(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
return v;
}
public java.lang.CharSequence longestCommonSubsequence(java.lang.CharSequence, java.lang.CharSequence)
{
java.lang.CharSequence v, v;
java.lang.IllegalArgumentException v;
org.apache.commons.text.similarity.LongestCommonSubsequence v;
int v, v;
java.lang.String v, v;
v := @this: org.apache.commons.text.similarity.LongestCommonSubsequence;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
if v == null goto label;
if v != null goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Inputs must not be null");
throw v;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v == 0 goto label;
if v != 0 goto label;
label:
return "";
label:
if v >= v goto label;
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.String algorithmC(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
return v;
label:
v = staticinvoke <org.apache.commons.text.similarity.LongestCommonSubsequence: java.lang.String algorithmC(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
return v;
}
public int[][] longestCommonSubstringLengthArray(java.lang.CharSequence, java.lang.CharSequence)
{
int[][] v;
int[] v, v, v, v, v, v, v;
java.lang.CharSequence v, v;
org.apache.commons.text.similarity.LongestCommonSubsequence v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v, v;
v := @this: org.apache.commons.text.similarity.LongestCommonSubsequence;
v := @parameter: java.lang.CharSequence;
v := @parameter: java.lang.CharSequence;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = v + 1;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = v + 1;
v = newmultiarray (int)[v][v];
v = 0;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v >= v goto label;
v = 0;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v >= v goto label;
if v != 0 goto label;
v = v[v];
v[v] = 0;
label:
if v != 0 goto label;
v = v[v];
v[v] = 0;
label:
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
if v != v goto label;
v = v + 1;
v = v[v];
v = v + 1;
v = v[v];
v = v[v];
v = v + 1;
v[v] = v;
goto label;
label:
v = v + 1;
v = v[v];
v = v + 1;
v = v + 1;
v = v[v];
v = v[v];
v = v[v];
v = v + 1;
v = v[v];
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v[v] = v;
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
static void <clinit>()
{
org.apache.commons.text.similarity.LongestCommonSubsequence v;
v = new org.apache.commons.text.similarity.LongestCommonSubsequence;
specialinvoke v.<org.apache.commons.text.similarity.LongestCommonSubsequence: void <init>()>();
<org.apache.commons.text.similarity.LongestCommonSubsequence: org.apache.commons.text.similarity.LongestCommonSubsequence INSTANCE> = v;
return;
}
}