BigIntUtils.smali
.class public final Lorg/spongycastle/pqc/math/linearalgebra/BigIntUtils;
.super Ljava/lang/Object;
.source "BigIntUtils.java"
# direct methods
.method private constructor <init>()V
.registers 1
.prologue
.line 15
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 17
return-void
.end method
.method public static equals([Ljava/math/BigInteger;[Ljava/math/BigInteger;)Z
.registers 7
.prologue
const/4 v1, 0x0
.line 28
.line 30
array-length v0, p0
array-length v2, p1
if-eq v0, v2, :cond_6
.line 41
:cond_5
:goto_5
return v1
:cond_6
move v0, v1
move v2, v1
.line 34
:goto_8
array-length v3, p0
if-ge v0, v3, :cond_17
.line 39
aget-object v3, p0, v0
aget-object v4, p1, v0
invoke-virtual {v3, v4}, Ljava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I
move-result v3
or-int/2addr v2, v3
.line 34
add-int/lit8 v0, v0, 0x1
goto :goto_8
.line 41
:cond_17
if-nez v2, :cond_5
const/4 v1, 0x1
goto :goto_5
.end method
.method public static fill([Ljava/math/BigInteger;Ljava/math/BigInteger;)V
.registers 3
.prologue
.line 52
array-length v0, p0
add-int/lit8 v0, v0, -0x1
:goto_3
if-ltz v0, :cond_a
.line 54
aput-object p1, p0, v0
.line 52
add-int/lit8 v0, v0, -0x1
goto :goto_3
.line 56
:cond_a
return-void
.end method
.method public static subArray([Ljava/math/BigInteger;II)[Ljava/math/BigInteger;
.registers 6
.prologue
.line 72
sub-int v0, p2, p1
new-array v0, v0, [Ljava/math/BigInteger;
.line 73
const/4 v1, 0x0
sub-int v2, p2, p1
invoke-static {p0, p1, v0, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 74
return-object v0
.end method
.method public static toIntArray([Ljava/math/BigInteger;)[I
.registers 4
.prologue
.line 86
array-length v0, p0
new-array v1, v0, [I
.line 87
const/4 v0, 0x0
:goto_4
array-length v2, p0
if-ge v0, v2, :cond_12
.line 89
aget-object v2, p0, v0
invoke-virtual {v2}, Ljava/math/BigInteger;->intValue()I
move-result v2
aput v2, v1, v0
.line 87
add-int/lit8 v0, v0, 0x1
goto :goto_4
.line 91
:cond_12
return-object v1
.end method
.method public static toIntArrayModQ(I[Ljava/math/BigInteger;)[I
.registers 6
.prologue
.line 106
int-to-long v0, p0
invoke-static {v0, v1}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
move-result-object v1
.line 107
array-length v0, p1
new-array v2, v0, [I
.line 108
const/4 v0, 0x0
:goto_9
array-length v3, p1
if-ge v0, v3, :cond_1b
.line 110
aget-object v3, p1, v0
invoke-virtual {v3, v1}, Ljava/math/BigInteger;->mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;
move-result-object v3
invoke-virtual {v3}, Ljava/math/BigInteger;->intValue()I
move-result v3
aput v3, v2, v0
.line 108
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 112
:cond_1b
return-object v2
.end method
.method public static toMinimalByteArray(Ljava/math/BigInteger;)[B
.registers 6
.prologue
const/4 v4, 0x1
.line 128
invoke-virtual {p0}, Ljava/math/BigInteger;->toByteArray()[B
move-result-object v1
.line 129
array-length v0, v1
if-eq v0, v4, :cond_10
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v0
and-int/lit8 v0, v0, 0x7
if-eqz v0, :cond_12
:cond_10
move-object v0, v1
.line 135
:goto_11
return-object v0
.line 133
:cond_12
invoke-virtual {p0}, Ljava/math/BigInteger;->bitLength()I
move-result v0
shr-int/lit8 v0, v0, 0x3
new-array v0, v0, [B
.line 134
const/4 v2, 0x0
array-length v3, v0
invoke-static {v1, v4, v0, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_11
.end method