blob: bae2341cb9641b5a1e64e4c7855a5aca6e53b2d0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>PackedDecimal (OpenJ9 JDK 16)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: openj9.dataaccess, package: com.ibm.dataaccess, class: PackedDecimal">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.dataaccess.PackedDecimal class">
<meta name="keywords" content="checkPackedDecimal()">
<meta name="keywords" content="addPackedDecimal()">
<meta name="keywords" content="subtractPackedDecimal()">
<meta name="keywords" content="setPackedZero()">
<meta name="keywords" content="multiplyPackedDecimal()">
<meta name="keywords" content="dividePackedDecimal()">
<meta name="keywords" content="remainderPackedDecimal()">
<meta name="keywords" content="lessThanPackedDecimal()">
<meta name="keywords" content="lessThanOrEqualsPackedDecimal()">
<meta name="keywords" content="greaterThanPackedDecimal()">
<meta name="keywords" content="greaterThanOrEqualsPackedDecimal()">
<meta name="keywords" content="equalsPackedDecimal()">
<meta name="keywords" content="notEqualsPackedDecimal()">
<meta name="keywords" content="shiftRightPackedDecimal()">
<meta name="keywords" content="shiftLeftPackedDecimal()">
<meta name="keywords" content="movePackedDecimal()">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar.top">
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 16</strong></div></div>
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/PackedDecimal.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip.navbar.top">
<!-- -->
</span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../module-summary.html">openj9.dataaccess</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.ibm.dataaccess</a></div>
<h1 title="Class PackedDecimal" class="title">Class PackedDecimal</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">java.lang.Object</a>
<div class="inheritance">com.ibm.dataaccess.PackedDecimal</div>
</div>
<section class="description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">PackedDecimal</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a></span></div>
<div class="block">Arithmetic, copying and shifting operations for Packed Decimal data.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method.summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,byte%5B%5D,int,int,boolean)">addPackedDecimal</a></span>&#8203;(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Add two Packed Decimals in byte arrays.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static int</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#checkPackedDecimal(byte%5B%5D,int,int)">checkPackedDecimal</a></span>&#8203;(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;precision)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks the validity of a Packed Decimal, return code indicating the status of the Packed Decimal.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static int</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#checkPackedDecimal(byte%5B%5D,int,int,boolean)">checkPackedDecimal</a></span>&#8203;(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;precision,
boolean&nbsp;ignoreHighNibbleForEvenPrecision)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks the validity of a Packed Decimal, return code indicating the status of the Packed Decimal.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static int</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#checkPackedDecimal(byte%5B%5D,int,int,boolean,boolean)">checkPackedDecimal</a></span>&#8203;(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;precision,
boolean&nbsp;ignoreHighNibbleForEvenPrecision,
boolean&nbsp;canOverwriteHighNibbleForEvenPrecision)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks the validity of a Packed Decimal, return code indicating the status of the Packed Decimal.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#dividePackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,byte%5B%5D,int,int,boolean)">dividePackedDecimal</a></span>&#8203;(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Divides two Packed Decimals is byte arrays.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#equalsPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int)">equalsPackedDecimal</a></span>&#8203;(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks if the two Packed Decimal operands are equal.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#greaterThanOrEqualsPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int)">greaterThanOrEqualsPackedDecimal</a></span>&#8203;(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks if the first Packed Decimal operand is greater than or equal to the second one.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#greaterThanPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int)">greaterThanPackedDecimal</a></span>&#8203;(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks if the first Packed Decimal operand is greater than the second one.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#lessThanOrEqualsPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int)">lessThanOrEqualsPackedDecimal</a></span>&#8203;(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks if the first Packed Decimal operand is less than or equal to the second one.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#lessThanPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int)">lessThanPackedDecimal</a></span>&#8203;(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks if the first Packed Decimal operand is lesser than the second one.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#movePackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,boolean)">movePackedDecimal</a></span>&#8203;(byte[]&nbsp;destination,
int&nbsp;destinationOffset,
int&nbsp;destinationPrecision,
byte[]&nbsp;source,
int&nbsp;sourceOffset,
int&nbsp;sourcePrecision,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Creates a copy of a Packed Decimal.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#multiplyPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,byte%5B%5D,int,int,boolean)">multiplyPackedDecimal</a></span>&#8203;(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Multiplies two Packed Decimals in byte arrays.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#notEqualsPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int)">notEqualsPackedDecimal</a></span>&#8203;(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Checks if the two Packed Decimal operands are unequal.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#remainderPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,byte%5B%5D,int,int,boolean)">remainderPackedDecimal</a></span>&#8203;(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Calculates the remainder resulting from the division of two Packed Decimals in byte arrays.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setPackedZero(byte%5B%5D,int,int)">setPackedZero</a></span>&#8203;(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;len)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Create a positive Packed Decimal representation of zero.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#shiftLeftPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,int,boolean)">shiftLeftPackedDecimal</a></span>&#8203;(byte[]&nbsp;destination,
int&nbsp;destinationOffset,
int&nbsp;destinationPrecision,
byte[]&nbsp;source,
int&nbsp;sourceOffset,
int&nbsp;sourcePrecision,
int&nbsp;shiftAmount,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Left shift a Packed Decimal appending zeros to the right.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#shiftRightPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,int,boolean,boolean)">shiftRightPackedDecimal</a></span>&#8203;(byte[]&nbsp;destination,
int&nbsp;destinationOffset,
int&nbsp;destinationPrecision,
byte[]&nbsp;source,
int&nbsp;sourceOffset,
int&nbsp;sourcePrecision,
int&nbsp;shiftAmount,
boolean&nbsp;round,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Right shift, and optionally round, a Packed Decimal.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#subtractPackedDecimal(byte%5B%5D,int,int,byte%5B%5D,int,int,byte%5B%5D,int,int,boolean)">subtractPackedDecimal</a></span>&#8203;(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</code></div>
<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
<div class="block">Subtracts two Packed Decimals in byte arrays.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods.inherited.from.class.java.lang.Object">Methods declared in class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link" target="_blank">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method.detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="checkPackedDecimal(byte[],int,int,boolean,boolean)">
<h3>checkPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">checkPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;precision,
boolean&nbsp;ignoreHighNibbleForEvenPrecision,
boolean&nbsp;canOverwriteHighNibbleForEvenPrecision)</span></div>
<div class="block">Checks the validity of a Packed Decimal, return code indicating the status of the Packed Decimal.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>byteArray</code> - the source container array</dd>
<dd><code>offset</code> - starting offset of the Packed Decimal</dd>
<dd><code>precision</code> - precision of the Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>ignoreHighNibbleForEvenPrecision</code> - if true, ignore to check if the top nibble (first 4 bits) of the input is an invalid sign value in the
case of even precision</dd>
<dd><code>canOverwriteHighNibbleForEvenPrecision</code> - if true, change the high nibble to a zero in case of even precision</dd>
<dt>Returns:</dt>
<dd>the condition code: 0 All digit codes and the sign valid 1 Sign invalid 2 At least one digit code invalid
3 Sign invalid and at least one digit code invalid</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if <code>byteArray</code> is null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkPackedDecimal(byte[],int,int,boolean)">
<h3>checkPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">checkPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;precision,
boolean&nbsp;ignoreHighNibbleForEvenPrecision)</span></div>
<div class="block">Checks the validity of a Packed Decimal, return code indicating the status of the Packed Decimal. The most
significant nibble cannot be overwritten.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>byteArray</code> - the source container array</dd>
<dd><code>offset</code> - starting offset of the Packed Decimal</dd>
<dd><code>precision</code> - precision of the Packed Decimal</dd>
<dd><code>ignoreHighNibbleForEvenPrecision</code> - if true, ignore the high nibble in the case of even precision</dd>
<dt>Returns:</dt>
<dd>the condition code: 0 All digit codes and the sign valid 1 Sign invalid 2 At least one digit code invalid
3 Sign invalid and at least one digit code invalid</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if <code>byteArray</code> is null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkPackedDecimal(byte[],int,int)">
<h3>checkPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">checkPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;precision)</span></div>
<div class="block">Checks the validity of a Packed Decimal, return code indicating the status of the Packed Decimal. Don't ignore
the most significant nibble. The most significant nibble cannot be overwritten.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>byteArray</code> - the source container array</dd>
<dd><code>offset</code> - starting offset of the Packed Decimal</dd>
<dd><code>precision</code> - precision of the Packed Decimal</dd>
<dt>Returns:</dt>
<dd>the condition code: 0 All digit codes and the sign valid 1 Sign invalid 2 At least one digit code invalid
3 Sign invalid and at least one digit code invalid</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if <code>byteArray</code> is null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addPackedDecimal(byte[],int,int,byte[],int,int,byte[],int,int,boolean)">
<h3>addPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></span></div>
<div class="block">Add two Packed Decimals in byte arrays. The sign of an input Packed Decimal is assumed to be positive unless
the sign nibble contains one of the negative sign codes, in which case the sign of the respective input Packed
Decimal is interpreted as negative.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>result</code> - byte array that will hold the sum of the two operand Packed Decimals</dd>
<dd><code>resultOffset</code> - offset into <code>result</code> where the sum Packed Decimal begins</dd>
<dd><code>resultPrecision</code> - number of Packed Decimal digits for the sum. Maximum valid precision is 253</dd>
<dd><code>op1Decimal</code> - byte array that holds the first operand Packed Decimal.</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the Packed Decimal. is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand. Maximum valid precision is 253</dd>
<dd><code>op2Decimal</code> - byte array that holds the second operand Packed Decimal</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the Packed Decimal is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand. Maximum valid precision is 253</dd>
<dd><code>checkOverflow</code> - check for overflow</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if an overflow occurs during the computation of the sum</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="subtractPackedDecimal(byte[],int,int,byte[],int,int,byte[],int,int,boolean)">
<h3>subtractPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">subtractPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></span></div>
<div class="block">Subtracts two Packed Decimals in byte arrays. The sign of an input Packed Decimal is assumed to be positive
unless the sign nibble contains one of the negative sign codes, in which case the sign of the respective input
Packed Decimal is interpreted as negative.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>result</code> - byte array that will hold the difference of the two operand Packed Decimals</dd>
<dd><code>resultOffset</code> - offset into <code>result</code> where the result Packed Decimal is located</dd>
<dd><code>resultPrecision</code> - number of Packed Decimal digits for the result. Maximum valid precision is 253</dd>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand. Maximum valid precision is 253</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand. Maximum valid precision is 253</dd>
<dd><code>checkOverflow</code> - check for overflow</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if an overflow occurs during the computation of the difference</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setPackedZero(byte[],int,int)">
<h3>setPackedZero</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setPackedZero</span>&#8203;<span class="parameters">(byte[]&nbsp;byteArray,
int&nbsp;offset,
int&nbsp;len)</span></div>
<div class="block">Create a positive Packed Decimal representation of zero.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>byteArray</code> - byte array which will hold the packed zero</dd>
<dd><code>offset</code> - offset into <code>toBytes</code> where the packed zero begins</dd>
<dd><code>len</code> - length of the packed zero. Maximum valid length is 253</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if <code>toBytes</code> is null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="multiplyPackedDecimal(byte[],int,int,byte[],int,int,byte[],int,int,boolean)">
<h3>multiplyPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">multiplyPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</span></div>
<div class="block">Multiplies two Packed Decimals in byte arrays. The sign of an input Packed Decimal is assumed to be positive
unless the sign nibble contains one of the negative sign codes, in which case the sign of the respective input
Packed Decimal is interpreted as negative.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>result</code> - byte array that will hold the product Packed Decimal</dd>
<dd><code>resultOffset</code> - offset into <code>result</code> where the product Packed Decimal is located</dd>
<dd><code>resultPrecision</code> - the length (number of digits) of the product Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>op1Decimal</code> - byte array that will hold the multiplicand Packed Decimal</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the multiplicand is located</dd>
<dd><code>op1Precision</code> - the length (number of digits) of the multiplicand Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>op2Decimal</code> - byte array that will hold the multiplier</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the multiplier is located</dd>
<dd><code>op2Precision</code> - the length (number of digits) of the multiplier Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>checkOverflow</code> - if set to true, Packed Decimals are validated before multiplication and an
<code>IllegalArgumentException</code> or <code>ArithmeticException</code> may be thrown. If not, the
result can be invalid</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link" target="_blank">IllegalArgumentException</a></code> - if an overflow occurs during multiplication</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if any of the Packed Decimal operands are invalid</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="dividePackedDecimal(byte[],int,int,byte[],int,int,byte[],int,int,boolean)">
<h3>dividePackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">dividePackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</span></div>
<div class="block">Divides two Packed Decimals is byte arrays. The sign of an input Packed Decimal is assumed to be positive
unless the sign nibble contains one of the negative sign codes, in which case the sign of the respective input
Packed Decimal is interpreted as negative.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>result</code> - byte array that will hold the quotient Packed Decimal</dd>
<dd><code>resultOffset</code> - offset into <code>result</code> where the quotient Packed Decimal is located</dd>
<dd><code>resultPrecision</code> - the length (number of digits) of the quotient Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>op1Decimal</code> - byte array that will hold the dividend Packed Decimal</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the dividend is located</dd>
<dd><code>op1Precision</code> - the length (number of digits) of the dividend Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>op2Decimal</code> - byte array that will hold the divisor</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the divisor is located</dd>
<dd><code>op2Precision</code> - the length (number of digits) of the divisor Packed Decimal. Maximum valid precision is 253</dd>
<dd><code>checkOverflow</code> - if set to true, Packed Decimals are validated before division and an
<code>IllegalArgumentException</code> or <code>ArithmeticException</code> may be thrown. If not, the
result can be invalid</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link" target="_blank">IllegalArgumentException</a></code> - if an overflow occurs during division</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if any of the Packed Decimal operands are invalid</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="remainderPackedDecimal(byte[],int,int,byte[],int,int,byte[],int,int,boolean)">
<h3>remainderPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">remainderPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;result,
int&nbsp;resultOffset,
int&nbsp;resultPrecision,
byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision,
boolean&nbsp;checkOverflow)</span></div>
<div class="block">Calculates the remainder resulting from the division of two Packed Decimals in byte arrays. The sign of an input
Packed Decimal is assumed to be positive unless the sign nibble contains one of the negative sign codes, in
which case the sign of the respective input Packed Decimal is interpreted as negative.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>result</code> - byte array that will hold the remainder Packed Decimal</dd>
<dd><code>resultOffset</code> - offset into <code>result</code> where the remainder Packed Decimal is located</dd>
<dd><code>resultPrecision</code> - number of Packed Decimal digits for the remainder. Maximum valid precision is 253</dd>
<dd><code>op1Decimal</code> - byte array that will hold the dividend Packed Decimal</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the dividend is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the dividend. Maximum valid precision is 253</dd>
<dd><code>op2Decimal</code> - byte array that will hold the divisor</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the divisor is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the divisor. Maximum valid precision is 253</dd>
<dd><code>checkOverflow</code> - if set to true, Packed Decimals are validated before division and an
<code>IllegalArgumentException</code> or <code>ArithmeticException</code> may be thrown. If not, the
result can be invalid</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link" target="_blank">IllegalArgumentException</a></code> - if an overflow occurs during division</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if any of the Packed Decimal operands are invalid</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lessThanPackedDecimal(byte[],int,int,byte[],int,int)">
<h3>lessThanPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">lessThanPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</span></div>
<div class="block">Checks if the first Packed Decimal operand is lesser than the second one.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand</dd>
<dt>Returns:</dt>
<dd>true if <code>op1Decimal &lt; op2Decimal</code>, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="lessThanOrEqualsPackedDecimal(byte[],int,int,byte[],int,int)">
<h3>lessThanOrEqualsPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">lessThanOrEqualsPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</span></div>
<div class="block">Checks if the first Packed Decimal operand is less than or equal to the second one.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand</dd>
<dt>Returns:</dt>
<dd>true if <code>op1Decimal &lt;= op2Decimal</code>, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="greaterThanPackedDecimal(byte[],int,int,byte[],int,int)">
<h3>greaterThanPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">greaterThanPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</span></div>
<div class="block">Checks if the first Packed Decimal operand is greater than the second one.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand</dd>
<dt>Returns:</dt>
<dd>true if <code>op1Decimal &gt; op2Decimal</code>, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="greaterThanOrEqualsPackedDecimal(byte[],int,int,byte[],int,int)">
<h3>greaterThanOrEqualsPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">greaterThanOrEqualsPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</span></div>
<div class="block">Checks if the first Packed Decimal operand is greater than or equal to the second one.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand</dd>
<dt>Returns:</dt>
<dd>true if <code>op1Decimal &gt;= op2Decimal</code>, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equalsPackedDecimal(byte[],int,int,byte[],int,int)">
<h3>equalsPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equalsPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</span></div>
<div class="block">Checks if the two Packed Decimal operands are equal.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand</dd>
<dt>Returns:</dt>
<dd>true if op1Decimal == op2Decimal, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="notEqualsPackedDecimal(byte[],int,int,byte[],int,int)">
<h3>notEqualsPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">notEqualsPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;op1Decimal,
int&nbsp;op1Offset,
int&nbsp;op1Precision,
byte[]&nbsp;op2Decimal,
int&nbsp;op2Offset,
int&nbsp;op2Precision)</span></div>
<div class="block">Checks if the two Packed Decimal operands are unequal.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>op1Decimal</code> - byte array that holds the first Packed Decimal operand</dd>
<dd><code>op1Offset</code> - offset into <code>op1Decimal</code> where the first operand is located</dd>
<dd><code>op1Precision</code> - number of Packed Decimal digits for the first operand</dd>
<dd><code>op2Decimal</code> - byte array that holds the second Packed Decimal operand</dd>
<dd><code>op2Offset</code> - offset into <code>op2Decimal</code> where the second operand is located</dd>
<dd><code>op2Precision</code> - number of Packed Decimal digits for the second operand</dd>
<dt>Returns:</dt>
<dd>true if op1Decimal != op2Decimal, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shiftRightPackedDecimal(byte[],int,int,byte[],int,int,int,boolean,boolean)">
<h3>shiftRightPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">shiftRightPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;destination,
int&nbsp;destinationOffset,
int&nbsp;destinationPrecision,
byte[]&nbsp;source,
int&nbsp;sourceOffset,
int&nbsp;sourcePrecision,
int&nbsp;shiftAmount,
boolean&nbsp;round,
boolean&nbsp;checkOverflow)</span></div>
<div class="block">Right shift, and optionally round, a Packed Decimal. If the resultant is zero,
it can either be a positive zero 0x0C or a negative zero 0x0D.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>destination</code> - byte array that holds the result of the right shift (and rounding)</dd>
<dd><code>destinationOffset</code> - offset into <code>destination</code> where the result Packed Decimal is located</dd>
<dd><code>destinationPrecision</code> - number of Packed Decimal digits in the destination</dd>
<dd><code>source</code> - byte array that holds the Packed Decimal operand to be right shifted</dd>
<dd><code>sourceOffset</code> - offset into <code>source</code> where the operand is located</dd>
<dd><code>sourcePrecision</code> - number of Packed Decimal digits in the operand</dd>
<dd><code>shiftAmount</code> - amount by which the source will be right shifted</dd>
<dd><code>round</code> - if set to true, causes rounding to occur</dd>
<dd><code>checkOverflow</code> - if set to true, check for overflow</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if a decimal overflow occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link" target="_blank">IllegalArgumentException</a></code> - if the <code>shiftAmount</code> or <code>sourcePrecision</code> parameter is invalid or
the <code>source</code> packed decimal contains invalid sign or digit code</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shiftLeftPackedDecimal(byte[],int,int,byte[],int,int,int,boolean)">
<h3>shiftLeftPackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">shiftLeftPackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;destination,
int&nbsp;destinationOffset,
int&nbsp;destinationPrecision,
byte[]&nbsp;source,
int&nbsp;sourceOffset,
int&nbsp;sourcePrecision,
int&nbsp;shiftAmount,
boolean&nbsp;checkOverflow)</span></div>
<div class="block">Left shift a Packed Decimal appending zeros to the right. In the absence of overflow, the sign
of a zero can either be positive 0x0C or negative 0x0D.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>destination</code> - byte array that holds the result of the left shift</dd>
<dd><code>destinationOffset</code> - offset into <code>destination</code> where the result Packed Decimal is located</dd>
<dd><code>destinationPrecision</code> - number of Packed Decimal digits in the destination</dd>
<dd><code>source</code> - byte array that holds the Packed Decimal operand to be left shifted</dd>
<dd><code>sourceOffset</code> - offset into <code>source</code> where the operand is located</dd>
<dd><code>sourcePrecision</code> - number of Packed Decimal digits in the operand</dd>
<dd><code>shiftAmount</code> - amount by which the source will be left shifted</dd>
<dd><code>checkOverflow</code> - if set to true, check for overflow</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if a decimal overflow occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link" target="_blank">IllegalArgumentException</a></code> - if the <code>shiftAmount</code> or <code>sourcePrecision</code> parameter is invalid or
the <code>source</code> packed decimal contains invalid sign or digit code</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="movePackedDecimal(byte[],int,int,byte[],int,int,boolean)">
<h3>movePackedDecimal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">movePackedDecimal</span>&#8203;<span class="parameters">(byte[]&nbsp;destination,
int&nbsp;destinationOffset,
int&nbsp;destinationPrecision,
byte[]&nbsp;source,
int&nbsp;sourceOffset,
int&nbsp;sourcePrecision,
boolean&nbsp;checkOverflow)</span></div>
<div class="block">Creates a copy of a Packed Decimal.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>destination</code> - byte array representing the destination</dd>
<dd><code>destinationOffset</code> - offset into destination <code>destination</code> where the Packed Decimal is located</dd>
<dd><code>destinationPrecision</code> - number of Packed Decimal digits for the destination</dd>
<dd><code>source</code> - byte array which holds the source Packed Decimal</dd>
<dd><code>sourceOffset</code> - offset into <code>source</code> where the Packed Decimal is located</dd>
<dd><code>sourcePrecision</code> - number of Packed Decimal digits for the source. Maximum valid precision is 253</dd>
<dd><code>checkOverflow</code> - if set to true, moved Packed Decimals are validated, and an <code>IllegalArgumentException</code> or
<code>ArithmeticException</code> is thrown if non-zero nibbles are truncated during the move
operation. If set to false, no validating is conducted.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link" target="_blank">NullPointerException</a></code> - if any of the byte arrays are null</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArrayIndexOutOfBoundsException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArrayIndexOutOfBoundsException</a></code> - if an invalid array access occurs</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link" target="_blank">IllegalArgumentException</a></code> - if the source Packed Decimal is invalid</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ArithmeticException.html" title="class or interface in java.lang" class="external-link" target="_blank">ArithmeticException</a></code> - if a decimal overflow occurs</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</div>
</div>
</body>
</html>