IntUtils.smali

.class public final Lorg/spongycastle/pqc/math/linearalgebra/IntUtils;
.super Ljava/lang/Object;
.source "IntUtils.java"


# direct methods
.method private constructor <init>()V
    .registers 1

    .prologue
    .line 10
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 12
    return-void
.end method

.method public static clone([I)[I
    .registers 4

    .prologue
    const/4 v2, 0x0

    .line 43
    array-length v0, p0

    new-array v0, v0, [I

    .line 44
    array-length v1, p0

    invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 45
    return-object v0
.end method

.method public static equals([I[I)Z
    .registers 8

    .prologue
    const/4 v1, 0x1

    const/4 v2, 0x0

    .line 23
    array-length v0, p0

    array-length v3, p1

    if-eq v0, v3, :cond_7

    .line 32
    :goto_6
    return v2

    .line 28
    :cond_7
    array-length v0, p0

    add-int/lit8 v0, v0, -0x1

    move v4, v0

    move v3, v1

    :goto_c
    if-ltz v4, :cond_1c

    .line 30
    aget v0, p0, v4

    aget v5, p1, v4

    if-ne v0, v5, :cond_1a

    move v0, v1

    :goto_15
    and-int/2addr v3, v0

    .line 28
    add-int/lit8 v0, v4, -0x1

    move v4, v0

    goto :goto_c

    :cond_1a
    move v0, v2

    .line 30
    goto :goto_15

    :cond_1c
    move v2, v3

    .line 32
    goto :goto_6
.end method

.method public static fill([II)V
    .registers 3

    .prologue
    .line 56
    array-length v0, p0

    add-int/lit8 v0, v0, -0x1

    :goto_3
    if-ltz v0, :cond_a

    .line 58
    aput p1, p0, v0

    .line 56
    add-int/lit8 v0, v0, -0x1

    goto :goto_3

    .line 60
    :cond_a
    return-void
.end method

.method private static partition([IIII)I
    .registers 8

    .prologue
    .line 112
    aget v1, p0, p3

    .line 113
    aget v0, p0, p2

    aput v0, p0, p3

    .line 114
    aput v1, p0, p2

    move v0, p1

    .line 118
    :goto_9
    if-ge p1, p2, :cond_1c

    .line 120
    aget v2, p0, p1

    if-gt v2, v1, :cond_19

    .line 122
    aget v2, p0, v0

    .line 123
    aget v3, p0, p1

    aput v3, p0, v0

    .line 124
    aput v2, p0, p1

    .line 125
    add-int/lit8 v0, v0, 0x1

    .line 118
    :cond_19
    add-int/lit8 p1, p1, 0x1

    goto :goto_9

    .line 129
    :cond_1c
    aget v1, p0, v0

    .line 130
    aget v2, p0, p2

    aput v2, p0, v0

    .line 131
    aput v1, p0, p2

    .line 133
    return v0
.end method

.method public static quicksort([I)V
    .registers 3

    .prologue
    .line 75
    const/4 v0, 0x0

    array-length v1, p0

    add-int/lit8 v1, v1, -0x1

    invoke-static {p0, v0, v1}, Lorg/spongycastle/pqc/math/linearalgebra/IntUtils;->quicksort([III)V

    .line 76
    return-void
.end method

.method public static quicksort([III)V
    .registers 5

    .prologue
    .line 88
    :goto_0
    if-le p2, p1, :cond_e

    .line 90
    invoke-static {p0, p1, p2, p2}, Lorg/spongycastle/pqc/math/linearalgebra/IntUtils;->partition([IIII)I

    move-result v0

    .line 91
    add-int/lit8 v1, v0, -0x1

    invoke-static {p0, p1, v1}, Lorg/spongycastle/pqc/math/linearalgebra/IntUtils;->quicksort([III)V

    .line 92
    add-int/lit8 p1, v0, 0x1

    goto :goto_0

    .line 94
    :cond_e
    return-void
.end method

.method public static subArray([III)[I
    .registers 6

    .prologue
    .line 151
    sub-int v0, p2, p1

    new-array v0, v0, [I

    .line 152
    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 153
    return-object v0
.end method

.method public static toHexString([I)Ljava/lang/String;
    .registers 2

    .prologue
    .line 176
    invoke-static {p0}, Lorg/spongycastle/pqc/math/linearalgebra/BigEndianConversions;->toByteArray([I)[B

    move-result-object v0

    invoke-static {v0}, Lorg/spongycastle/pqc/math/linearalgebra/ByteUtils;->toHexString([B)Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static toString([I)Ljava/lang/String;
    .registers 4

    .prologue
    .line 162
    const-string v1, ""

    .line 163
    const/4 v0, 0x0

    :goto_3
    array-length v2, p0

    if-ge v0, v2, :cond_22

    .line 165
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    aget v2, p0, v0

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, " "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    .line 163
    add-int/lit8 v0, v0, 0x1

    goto :goto_3

    .line 167
    :cond_22
    return-object v1
.end method