# Revision history [back]

### Implementing new CF class advice

My goal is to implement Gosper's algorithm for algebraic operations on continued fractions into Sage. To begin with, I would like to implement a functionality to perform a homographic transformation

$$x \rightarrow \frac{ax + b}{cx + d}$$

where $x$ is a CF.

The easiest way to do this is probably to create a new class in sage.rings.continued_fraction that would on inicialization accept the integer constants $a, b, c, d$ and a descendant of ContinuedFraction_base class. The most important method of this class would be next() or iter(), which would read the input $x$ until it can output new term using Gosper's algorithm.

Should this new class be a descendant of ContinuedFraction_base class, or some other? Maybe ContinuedFraction_infinite?

And most importantly, how do I create an instance of this class with proper arguments, when for example $(3*x + 1)/2$, where $x$ is a CF, is called from Sage?

Thank you very much for any advice on this!

### Implementing new CF class advice

My goal is to implement Gosper's algorithm for algebraic operations on continued fractions into Sage. To begin with, I would like to implement a functionality to perform a homographic transformation

$$x \rightarrow \frac{ax + b}{cx + d}$$

where $x$ is a CF.

The easiest way to do this is probably to create a new class in sage.rings.continued_fraction sage.rings.continued_fraction that would on inicialization accept the integer constants $a, b, c, d$ and a descendant of ContinuedFraction_base ContinuedFraction_base class. The most important method of this class would be next() or iter()_iter_(), which would read the input $x$ until it can output new term using Gosper's algorithm.

Should this new class be a descendant of ContinuedFraction_base class, or some other? Maybe ContinuedFraction_infinite?

And most importantly, how How do I create an instance of this class with proper arguments, when for example $(3*x + 1)/2$, where $x$ is a CF, is called from Sage?

Thank you very much for any advice on this!

### Implementing new CF class advice

My goal is to implement Gosper's algorithm for algebraic operations on continued fractions into Sage. To begin with, I would like to implement a functionality to perform a homographic transformation

$$x \rightarrow \frac{ax + b}{cx + d}$$

where $x$ is a CF.

The easiest way to do this is probably to create a new class in sage.rings.continued_fraction that would on inicialization accept the integer constants $a, b, c, d$ and a descendant of ContinuedFraction_base class. The most important method of this class would be next() or _iter_(), which would read the input $x$ until it can output new term using Gosper's algorithm.

How do I create an instance of this class with proper arguments, when for example $(3*x + 1)/2$, where $x$ is a CF, is called from Sage?

Thank you very much for any advice on this!

EDIT: I have just found this link. Hopefully I will find something useful in there.

### Implementing new CF class advice

My goal is to implement Gosper's algorithm for algebraic operations on continued fractions into Sage. To begin with, I would like to implement a functionality to perform a homographic transformation

$$x \rightarrow \frac{ax + b}{cx + d}$$

where $x$ is a CF.

The easiest way to do this is probably to create a new class in sage.rings.continued_fraction that would on inicialization accept the integer constants $a, b, c, d$ and a descendant of ContinuedFraction_base class. The most important method of this class would be next() or _iter_(), which would read the input $x$ until it can output new term using Gosper's algorithm.

How do I create an instance of this class with proper arguments, when for example $(3*x + 1)/2$, where $x$ is a CF, is called from Sage?Sage? (Instead of _mul_() being called, than _add_() and so on...)

Thank you very much for any advice on this!

EDIT: I have just found this promising link. Hopefully I will find something , but haven't found anything useful in there.there so far...

### Implementing new CF class advice

My goal is to implement Gosper's algorithm for algebraic operations on continued fractions into Sage. To begin with, I would like to implement a functionality to perform a homographic transformation

$$x \rightarrow \frac{ax + b}{cx + d}$$

where $x$ is a CF.

The easiest way to do this is probably to create a new class in sage.rings.continued_fraction that would on inicialization accept the integer constants $a, b, c, d$ and a descendant of ContinuedFraction_base class. The most important method of this class would be next() or _iter_(), which would read the input $x$ until it can output new term using Gosper's algorithm.

How do I create an instance of this class with proper arguments, when for example $(3*x + 1)/2$, where $x$ is a CF, is called from Sage? (Instead of _mul_() being called, than _add_() and so on...)

Simplifying using inbuilt Sage methods and then evaluating the expression as a string using regular expressions somehow (like this) might be a solution, but I am not sure if the best one.

Thank you very much for any advice on this!

EDIT: I have found this promising link, but haven't found anything useful in there so far...