## Cubic splines with descending x

In response to a recent comment, I have modified the CSpline2 spreadsheet so that the CSplineA and CHSplineA functions will accept x values list in descending order, as well as ascending.  For more details of the background to the functions, and how to use them see: Daily Download 22: Splines and Curves.  The new version can be downloaded from:

## CSpline2.zip

The code for the checking and reversing the x data is quite short:

```Function CheckAscX(Xa As Variant, Ya As Variant, n as Long) As Boolean
Dim Temp As Variant, i As Long
' If last x &lt; first x, reverse Xa and Ya and return True, else return False
If Xa(n, 1) &lt; Xa(1, 1) Then
Temp = Xa
For i = 1 To n
Xa(i, 1) = Temp(n - i + 1, 1)
Next i
Temp = Ya
For i = 1 To n
Ya(i, 1) = Temp(n - i + 1, 1)
Next i
CheckAscX = True
Exit Function
End If
CheckAscX = False
End Function
```

Then the CheckAscX function just needs to be called from the spline function:

```...
Xa = GetArray(Xa)
Ya = GetArray(Ya)

n = UBound(Xa)
RevX = CheckAscX(Xa, Ya, n)
...
```

The spline functions will now work with the X values sorted in either direction: This entry was posted in Excel, Maths, Newton, UDFs, VBA and tagged , , , , . Bookmark the permalink.

This site uses Akismet to reduce spam. Learn how your comment data is processed.