Re: Getting scipy.interpolate.pchip_interpolate to return the first derivative of a pchip interpolation

Samuel Dupree <[email protected]> Mon, 23 Jan 2023 18:28:04 -0500
Newsgroups gmane.comp.python.scientific.user
Organization XayDeltaOne
Message-ID <[email protected]>
QWZ0ZXIgc29tZSBhZGRpdGlvbmFsIHRob3VnaHQsIEkgZm9yZ290IHRoYXQgdHJpZ29ub21ldHJp
YyBkZXJpdmF0aXZlcyANCnJlcXVpcmUgdGhhdCB0aGUgaW5kZXBlbmRlbnQgdmFyaWFibGUgbXVz
dCBiZSBpbiByYWRpYW5zLiBJbiB1c2luZyANCmRlZ3JlZXMgYXMgdGhlIHVuaXRzIGZvciB0aGUg
aW5kZXBlbmRlbnQgdmFyaWFibGUsIHRoZSBpbnRlcnBvbGF0ZWQgDQpkZXJpdmF0aXZlIGlzIHNj
YWxlZCBieSB0aGUgZmFjdG9yIHBpLzE4MCB3aGVuIHRoZSBudW1lcmljYWwgZGVyaXZhdGl2ZSAN
CmlzIGNvbXB1dGVkLg0KDQpNeXN0ZXJ5IHNvbHZlZC4NCg0KU2FtIER1cHJlZS4NCg0KT24gMS8y
My8yMyAxODowNywgU2FtdWVsIER1cHJlZSB3cm90ZToNCj4gVGhhbmsgeW91IGZvciBhbGwgdGhl
IHJlc3BvbnNlcywgaG93ZXZlciBteSBxdWVzdGlvbiBzdGlsbCByZW1haW5zOiANCj4gaG93IGRv
ZXMgcGNoaXBfaW50ZXJwb2xhdGUga25vdyB0aGUgaWRlbnRpdHkgb2YgdGhlIGZ1bmN0aW9uIHRo
YXQgDQo+IGdlbmVyYXRlZCB0aGUgZGF0YSBhbmQgdGhlIGZpcnN0IGRlcml2YXRpdmUgdG8gYmUg
aW50ZXJwb2xhdGVkPyBJdCANCj4gY2FuJ3QgYmVjYXVzZSBhbGwgcGNoaXBfaW50ZXJwb2xhdGUg
Z2V0cyBpcyBhIGxpc3Qgb2YgbnVtYmVycy4gVGhlIA0KPiBpZGVudGl0eSBvZiB0aGUgZnVuY3Rp
b25zIGFyZSBub3QgcGFzc2VkIHRvIGl0IHVubGVzcyB0aGVyZSBpcyBhIHdheSANCj4gcGNoaXBf
aW50ZXJwb2xhdGUga25vd3MuDQo+DQo+IFNhbSBEdXByZWUuDQo+DQo+DQo+IE9uIDEvMjMvMjMg
MTQ6MzUsIHNjaXB5LXVzZXItcmVxdWVzdEBweXRob24ub3JnIHdyb3RlOg0KPj4gU2VuZCBTY2lQ
eS1Vc2VyIG1haWxpbmcgbGlzdCBzdWJtaXNzaW9ucyB0bw0KPj4gwqDCoMKgwqBzY2lweS11c2Vy
QHB5dGhvbi5vcmcNCj4+DQo+PiBUbyBzdWJzY3JpYmUgb3IgdW5zdWJzY3JpYmUgdmlhIHRoZSBX
b3JsZCBXaWRlIFdlYiwgdmlzaXQNCj4+IMKgwqDCoMKgaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcv
bWFpbG1hbjMvbGlzdHMvc2NpcHktdXNlci5weXRob24ub3JnLw0KPj4gb3IsIHZpYSBlbWFpbCwg
c2VuZCBhIG1lc3NhZ2Ugd2l0aCBzdWJqZWN0IG9yIGJvZHkgJ2hlbHAnIHRvDQo+PiDCoMKgwqDC
oHNjaXB5LXVzZXItcmVxdWVzdEBweXRob24ub3JnDQo+Pg0KPj4gWW91IGNhbiByZWFjaCB0aGUg
cGVyc29uIG1hbmFnaW5nIHRoZSBsaXN0IGF0DQo+PiDCoMKgwqDCoHNjaXB5LXVzZXItb3duZXJA
cHl0aG9uLm9yZw0KPj4NCj4+IFdoZW4gcmVwbHlpbmcsIHBsZWFzZSBlZGl0IHlvdXIgU3ViamVj
dCBsaW5lIHNvIGl0IGlzIG1vcmUgc3BlY2lmaWMNCj4+IHRoYW4gIlJlOiBDb250ZW50cyBvZiBT
Y2lQeS1Vc2VyIGRpZ2VzdC4uLiINCj4+DQo+PiBUb2RheSdzIFRvcGljczoNCj4+DQo+PiDCoMKg
wqAgMS4gUmU6IFNjaVB5LVVzZXIgRGlnZXN0LCBWb2wgMjMxLCBJc3N1ZSAxIChTYW11ZWwgRHVw
cmVlKQ0KPj4gwqDCoMKgIDIuIFJlOiBTY2lQeS1Vc2VyIERpZ2VzdCwgVm9sIDIzMSwgSXNzdWUg
MSAoRXZnZW5pIEJ1cm92c2tpKQ0KPj4gwqDCoMKgIDMuIFJlOiBTY2lQeS1Vc2VyIERpZ2VzdCwg
Vm9sIDIzMSwgSXNzdWUgMSAoUnVzdHkgR2VudGlsZSkNCj4+DQo+Pg0KPj4gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KPj4NCj4+IE1lc3NhZ2U6IDENCj4+IERhdGU6IE1vbiwgMjMgSmFuIDIwMjMgMTM6MjU6NTAg
LTA1MDANCj4+IEZyb206IFNhbXVlbCBEdXByZWUgPHNkdXByZWVAc3BlYWtlYXN5Lm5ldD4NCj4+
IFN1YmplY3Q6IFtTY2lQeS1Vc2VyXSBSZTogU2NpUHktVXNlciBEaWdlc3QsIFZvbCAyMzEsIElz
c3VlIDENCj4+IFRvOiBzY2lweS11c2VyQHB5dGhvbi5vcmcsIHNjaXB5LXVzZXItcmVxdWVzdEBw
eXRob24ub3JnDQo+PiBNZXNzYWdlLUlEOiA8ZWZiZjM3NTAtZjdkMy01NDY5LTE5NzgtODE4OGJl
ZmFlMTUwQHNwZWFrZWFzeS5uZXQ+DQo+PiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz
ZXQ9VVRGLTg7IGZvcm1hdD1mbG93ZWQNCj4+DQo+PiBUaGUgcHJvYmxlbSBJIGhhdmUgaXMgaWYg
dGhlIGludGVycG9sYXRvciBvbmx5IHNlZXMgbnVtYmVycy4gVW5sZXNzDQo+PiB0aGVyZSBpcyBz
b21lIHVuZGVyY292ZXIgbWVhbnMgYnkgd2hpY2ggdGhlIGludGVycG9sYXRvciBzZWVzIHRoZQ0K
Pj4gZnVuY3Rpb24gdXNlZCB0byBnZW5lcmF0ZSB0aGUgbnVtYmVycyBwYXNzZWQgdG8gaXQsIGhv
dyBkb2VzIGl0IGtub3cgdGhlDQo+PiBjb252ZXJzaW9uIGZhY3RvciBpcyB1c2VkIGFyZ3VtZW50
IHRvIHRoZSBzaW5lIGZ1bmN0aW9uPyBGdXJ0aGVybW9yZSwgSWYNCj4+IEkgd2VyZSB0byByZXdy
aXRlIHRoZSBwcm9ncmFtIGFzIGZvbGxvd3MsIEkgc3RpbGwgZ2V0IHRoZSBzYW1lIHJlc3VsdHMu
DQo+Pg0KPj4NCj4+DQo+PiBpbXBvcnQgbnVtcHkgYXMgbnANCj4+IGltcG9ydCBtYXRwbG90bGli
LnB5cGxvdCBhcyBwbHQNCj4+IGZyb20gc2NpcHkuaW50ZXJwb2xhdGUgaW1wb3J0IHBjaGlwX2lu
dGVycG9sYXRlDQo+Pg0KPj4geF9vYnNlcnZlZMKgwqDCoCA9IG5wLmxpbnNwYWNlKDAuMCwgMzYw
LjAsIDEwMCkNCj4+IHh4X29ic2VydmVkwqDCoCA9IG5wLnBpKnhfb2JzZXJ2ZWQvMTgwDQo+Pg0K
Pj4geV9vYnNlcnZlZMKgwqDCoCA9IG5wLnNpbih4eF9vYnNlcnZlZCkNCj4+IGR5ZHhfb2JzZXJ2
ZWQgPSBucC5jb3MoeHhfb2JzZXJ2ZWQpDQo+Pg0KPj4geMKgwqDCoCA9IG5wLmxpbnNwYWNlKG1p
bih4X29ic2VydmVkKSwgbWF4KHhfb2JzZXJ2ZWQpLCBudW09MTAwKQ0KPj4gecKgwqDCoCA9IHBj
aGlwX2ludGVycG9sYXRlKHhfb2JzZXJ2ZWQsIHlfb2JzZXJ2ZWQsIHgsIGRlcj0wLCBheGlzPTAp
DQo+PiBkeWR4ID0gcGNoaXBfaW50ZXJwb2xhdGUoeF9vYnNlcnZlZCwgeV9vYnNlcnZlZCwgeCwg
ZGVyPTEsIGF4aXM9MCkNCj4+DQo+Pg0KPj4gbmRpbSA9IGxlbiggZHlkeCApDQo+PiBwcmludCgp
DQo+PiBmb3IgaSBpbiByYW5nZSgwLG5kaW0pOg0KPj4gwqAgwqDCoMKgwqAgcHJpbnQoIGR5ZHhf
b2JzZXJ2ZWRbaV0sICLCoCAiLCBkeWR4W2ldICkNCj4+DQo+Pg0KPj4gcGx0LnBsb3QoeF9vYnNl
cnZlZCzCoMKgwqAgeV9vYnNlcnZlZCwgImJvIiAsIGxhYmVsPSJvYnNlcnZhdGlvbiBmdW5jdCIp
DQo+PiBwbHQucGxvdCh4X29ic2VydmVkLCBkeWR4X29ic2VydmVkLCAicngiICwgbGFiZWw9Im9i
c2VydmF0aW9uIGRlcml2IikNCj4+DQo+PiBwbHQucGxvdCh4wqDCoMKgwqDCoMKgwqDCoCAsIHnC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgICwgImMtIiwgbGFiZWw9InBjaGlwIGludGVycG9sYXRpb24g
DQo+PiBmdW5jdCIpDQo+PiBwbHQucGxvdCh4wqDCoMKgwqDCoMKgwqDCoCAsIGR5ZHjCoMKgwqDC
oMKgwqDCoMKgICwgImstIiwgbGFiZWw9InBjaGlwIGludGVycG9sYXRpb24gDQo+PiBkZXJpdiIp
DQo+PiBwbHQubGVnZW5kKCkNCj4+IHBsdC5ncmlkKCkNCj4+IHBsdC5zYXZlZmlnKCJwY2hpcF9l
eGFtcGxlXzAxLnBuZyIpDQo+PiBwbHQuc2hvdygpDQo+Pg0KPj4NCj4+IEFueSB0aG91Z2h0cz8N
Cj4+DQo+PiBTYW0gRHVwcmVlLg0KPj4NCj4+DQo+IHtzbmlwXQ0KPj4NCj4+IF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiBTY2lQeS1Vc2VyIG1haWxp
bmcgbGlzdCAtLSBzY2lweS11c2VyQHB5dGhvbi5vcmcNCj4+IFRvIHVuc3Vic2NyaWJlIHNlbmQg
YW4gZW1haWwgdG8gc2NpcHktdXNlci1sZWF2ZUBweXRob24ub3JnDQo+PiBodHRwczovL21haWwu
cHl0aG9uLm9yZy9tYWlsbWFuMy9saXN0cy9zY2lweS11c2VyLnB5dGhvbi5vcmcvDQo+Pg0KPj4N
Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4NCj4+IEVuZCBvZiBTY2lQeS1V
c2VyIERpZ2VzdCwgVm9sIDIzMSwgSXNzdWUgMg0KPj4gKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqIA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpTY2lQeS1Vc2VyIG1haWxpbmcgbGlzdCAtLSBzY2lweS11c2VyQHB5dGhv
bi5vcmcKVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBzY2lweS11c2VyLWxlYXZlQHB5
dGhvbi5vcmcKaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbjMvbGlzdHMvc2NpcHktdXNl
ci5weXRob24ub3JnLwpNZW1iZXIgYWRkcmVzczogZ2Nwc3Utc2NpcHktdXNlckBtLmdtYW5lLW14
Lm9yZwo=