Skip to content

Conversation

@cbm755
Copy link
Owner

@cbm755 cbm755 commented Aug 9, 2025

Work-in-progress to get Chebfun working on Octave.

  • You'll need a very recent Octave (default branch from source as of August 2025).
  • May involves much rebased and/or cherry-picking.

@cbm755
Copy link
Owner Author

cbm755 commented Aug 19, 2025

@kolmanthomas head's up a force-pushed this on top of the latest main branch at upstream chebfun. I submitted your resetPointValues change upstream (slightly modified, chebfun#2478) and it was merged (so congrats on that milestone!)

@cbm755 cbm755 force-pushed the octave_dev branch 2 times, most recently from d3d98eb to 40170b9 Compare August 26, 2025 18:44
cbm755 and others added 26 commits September 28, 2025 15:22
This type of local functions are not supported in Octave (?)
Maybe this is a temporary hack so don't re-indent code (this
is to keep the diff smaller).
We cannot subclass double, which is causing lots of trouble for
"domain" (which is only a very thin wrapper around double).
TEMPORARY workaround for some fight between between subsref and
the .domain class property causing infinite loops.
Maybe this is just temporary?  I'm sure this is used in other places
so hopefully can fix it instead of working around with temp variables
like is done here.
On Octave calling fieldnames on a classdef is a warning.  Put that
case last in chebfun/get so that we don't trigger the warning when
accessing more common public properties.

I assume this is not recommended OOP practice so probably this is
a good change on Matlab too.  Or maybe it should raise a warning
on Matlab?
This was mostly a thin wrapper around double, but it did have some
methods that will probably need to be restored: "validate" and
"merge" maybe others...?
Either this needs some workaround in subsref or perhaps its an
Octave bug.  I think there are subtle differences about how this
sort of subsref chaining works b/w Octave and Matlab.
This reverts commit b5a9a93.

It wasn't the correct action to fix the 2*f issue, broke a lot of other behaviours like 'f + 2*f' et cetera.
This reverts commit 22aac25.

Issue was fixed in core Octave (hg id 34756:b12978fb1380) (see https://savannah.gnu.org/bugs/index.php?65179).
test_atan2 passes without error after this change.
Previously, calling `verLessThan('matlab', version)` caused an error on Octave. With this change, querying the `matlab` version will silently query the Octave version on Octave. All invocations of `verLessThan` must be changed to `compatible_verLessThan`.
Octave does not support bvpinit() as of now.
cbm755 and others added 29 commits September 28, 2025 15:22
They currently just crash anyway; hope to add them back later as the
Octave work matures a bit.
Tests for `verLessThan('matlab', ...)` give an error on Octave.
Use a helper function to check which platform we're on it.
This particular "new graphics mode" was added around Octave 8, but
but Chebfun only works on Octave >= 11 so no need for specific Octave
version checks.
I have checked all these in Octave as I made the changes.
Chebfun only supports Octave >= 11 so there is no need for a specific
version check on Octave.
We cannot subclass double, which is causing lots of trouble for
"domain" (which is only a very thin wrapper around double).
Uses a patched version of Octave that pulls from the GitHub Container
Registry.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants