Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2013-09-30 11:08:39 +0400
committerPeter Dettman <peter.dettman@bouncycastle.org>2013-09-30 11:08:39 +0400
commitcfd3b42d0fd4db2b220b0a59a697542bf08102ed (patch)
tree7df5eba4819badd76b4ecde96f2589f551d08d2c /core/src/main/java/org/bouncycastle/math
parent6ae6585eab08e0046e2b704f7aeb4a56df8064f9 (diff)
Improve performance of shiftLeft(int)
Diffstat (limited to 'core/src/main/java/org/bouncycastle/math')
-rw-r--r--core/src/main/java/org/bouncycastle/math/ec/IntArray.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/core/src/main/java/org/bouncycastle/math/ec/IntArray.java b/core/src/main/java/org/bouncycastle/math/ec/IntArray.java
index d71ff6b1..ebb6310a 100644
--- a/core/src/main/java/org/bouncycastle/math/ec/IntArray.java
+++ b/core/src/main/java/org/bouncycastle/math/ec/IntArray.java
@@ -267,13 +267,13 @@ class IntArray
public IntArray shiftLeft(int n)
{
- int usedLen = getUsedLength();
- if (usedLen == 0)
+ if (n == 0)
{
return this;
}
- if (n == 0)
+ int usedLen = getUsedLength();
+ if (usedLen == 0)
{
return this;
}
@@ -286,13 +286,14 @@ class IntArray
int[] newInts = new int[usedLen + 1];
- int nm32 = 32 - n;
- newInts[0] = m_ints[0] << n;
- for (int i = 1; i < usedLen; i++)
+ int nm32 = 32 - n, prev = 0;
+ for (int i = 0; i < usedLen; i++)
{
- newInts[i] = (m_ints[i] << n) | (m_ints[i - 1] >>> nm32);
+ int next = m_ints[i];
+ newInts[i] = (next << n) | (prev >>> nm32);
+ prev = next;
}
- newInts[usedLen] = m_ints[usedLen - 1] >>> nm32;
+ newInts[usedLen] = prev >>> nm32;
return new IntArray(newInts);
}