public void decreaseKey(FibonacciHeapNode x, double k)
{
if (k > x.key) {
return;
// throw new IllegalArgumentException(
// "decreaseKey() got larger key value");
}

x.key = k;

FibonacciHeapNode y = x.parent;

if ((y != null) && (x.key < y.key)) {
cut(x, y);
cascadingCut(y);
}

if (x.key < minNode.key) {
minNode = x;
}
}