diff --git a/dl_jars_and_render_stubs.py b/dl_jars_and_render_stubs.py
index 5f18f7a87b335bf6d46323ae1dc21ee0cebde4d7..9f32e0e68468c7186b972146c14690879618866a 100644
--- a/dl_jars_and_render_stubs.py
+++ b/dl_jars_and_render_stubs.py
@@ -17,8 +17,7 @@ if __name__ == '__main__':
         shutil.rmtree(javadoc_jar_folder)
 
     # Calling maven to download the JARs. Maven must be installed on your system
-    result = run(["mvn", "dependency:copy"],
-                  stdout=PIPE, stderr=PIPE, universal_newlines=True)
+    result = run(["mvn", "dependency:copy"], universal_newlines=True)
 
     jar_list = list(map(str, jar_folder.glob('**/*.jar')))
     javadoc_jar_list = list(map(str, javadoc_jar_folder.glob('**/*.jar')))
@@ -30,7 +29,7 @@ if __name__ == '__main__':
 ************* Now generating stubs *************
               """)
     else:
-        print(f"Maven called returned non-zero exit code {result.returncode}, with following stderr, exiting: {result.stderr}")
+        print(f"Maven called returned non-zero exit code {result.returncode}")
         sys.exit(result.returncode)
 
     # Removing old stubs folders
diff --git a/java-stubs/awt/__init__.pyi b/java-stubs/awt/__init__.pyi
index 20b6644c8fb5a0eba717ef19f2e0208a2ad26c9e..5142f4c34079ebcef7644a87b82a1772cf7c08a7 100644
--- a/java-stubs/awt/__init__.pyi
+++ b/java-stubs/awt/__init__.pyi
@@ -538,7 +538,6 @@ class EventQueue:
     def push(self, eventQueue: 'EventQueue') -> None: ...
 
 class FocusTraversalPolicy:
-    def __init__(self): ...
     def getComponentAfter(self, container: 'Container', component: 'Component') -> 'Component': ...
     def getComponentBefore(self, container: 'Container', component: 'Component') -> 'Component': ...
     def getDefaultComponent(self, container: 'Container') -> 'Component': ...
@@ -942,7 +941,6 @@ class Image:
     SCALE_SMOOTH: typing.ClassVar[int] = ...
     SCALE_REPLICATE: typing.ClassVar[int] = ...
     SCALE_AREA_AVERAGING: typing.ClassVar[int] = ...
-    def __init__(self): ...
     def flush(self) -> None: ...
     def getAccelerationPriority(self) -> float: ...
     def getCapabilities(self, graphicsConfiguration: GraphicsConfiguration) -> 'ImageCapabilities': ...
@@ -1105,7 +1103,6 @@ class PrintGraphics:
     def getPrintJob(self) -> 'PrintJob': ...
 
 class PrintJob:
-    def __init__(self): ...
     def end(self) -> None: ...
     def finalize(self) -> None: ...
     def getGraphics(self) -> Graphics: ...
@@ -1318,7 +1315,6 @@ class Taskbar:
         def values() -> typing.MutableSequence['Taskbar.State']: ...
 
 class Toolkit:
-    def __init__(self): ...
     def addAWTEventListener(self, aWTEventListener: typing.Union[java.awt.event.AWTEventListener, typing.Callable], long: int) -> None: ...
     def addPropertyChangeListener(self, string: str, propertyChangeListener: typing.Union[java.beans.PropertyChangeListener, typing.Callable]) -> None: ...
     def areExtraMouseButtonsEnabled(self) -> bool: ...
diff --git a/java-stubs/awt/dnd/__init__.pyi b/java-stubs/awt/dnd/__init__.pyi
index c03073298f5819be2b32a9151877f2556aa2c931..ef7b5bb600b89b2a5b1e4a55f6b5a4628edaa758 100644
--- a/java-stubs/awt/dnd/__init__.pyi
+++ b/java-stubs/awt/dnd/__init__.pyi
@@ -141,7 +141,6 @@ class InvalidDnDOperationException(java.lang.IllegalStateException):
     def __init__(self, string: str): ...
 
 class DragSourceAdapter(DragSourceListener, DragSourceMotionListener):
-    def __init__(self): ...
     def dragDropEnd(self, dragSourceDropEvent: 'DragSourceDropEvent') -> None: ...
     def dragEnter(self, dragSourceDragEvent: 'DragSourceDragEvent') -> None: ...
     def dragExit(self, dragSourceEvent: DragSourceEvent) -> None: ...
@@ -220,7 +219,6 @@ class DropTarget(DropTargetListener, java.io.Serializable):
     def setFlavorMap(self, flavorMap: java.awt.datatransfer.FlavorMap) -> None: ...
 
 class DropTargetAdapter(DropTargetListener):
-    def __init__(self): ...
     def dragEnter(self, dropTargetDragEvent: 'DropTargetDragEvent') -> None: ...
     def dragExit(self, dropTargetEvent: DropTargetEvent) -> None: ...
     def dragOver(self, dropTargetDragEvent: 'DropTargetDragEvent') -> None: ...
diff --git a/java-stubs/awt/event/__init__.pyi b/java-stubs/awt/event/__init__.pyi
index 2f2566391dbac9d2939142fb8a9125011b1f5fa4..3239e77cda6f9ddd25a20726d292f84e3204715d 100644
--- a/java-stubs/awt/event/__init__.pyi
+++ b/java-stubs/awt/event/__init__.pyi
@@ -219,14 +219,12 @@ class AWTEventListenerProxy(java.util.EventListenerProxy[AWTEventListener], AWTE
     def getEventMask(self) -> int: ...
 
 class ComponentAdapter(ComponentListener):
-    def __init__(self): ...
     def componentHidden(self, componentEvent: ComponentEvent) -> None: ...
     def componentMoved(self, componentEvent: ComponentEvent) -> None: ...
     def componentResized(self, componentEvent: ComponentEvent) -> None: ...
     def componentShown(self, componentEvent: ComponentEvent) -> None: ...
 
 class ContainerAdapter(ContainerListener):
-    def __init__(self): ...
     def componentAdded(self, containerEvent: 'ContainerEvent') -> None: ...
     def componentRemoved(self, containerEvent: 'ContainerEvent') -> None: ...
 
@@ -241,7 +239,6 @@ class ContainerEvent(ComponentEvent):
     def paramString(self) -> str: ...
 
 class FocusAdapter(FocusListener):
-    def __init__(self): ...
     def focusGained(self, focusEvent: 'FocusEvent') -> None: ...
     def focusLost(self, focusEvent: 'FocusEvent') -> None: ...
 
@@ -285,7 +282,6 @@ class FocusEvent(ComponentEvent):
         def values() -> typing.MutableSequence['FocusEvent.Cause']: ...
 
 class HierarchyBoundsAdapter(HierarchyBoundsListener):
-    def __init__(self): ...
     def ancestorMoved(self, hierarchyEvent: HierarchyEvent) -> None: ...
     def ancestorResized(self, hierarchyEvent: HierarchyEvent) -> None: ...
 
@@ -322,13 +318,11 @@ class InputEvent(ComponentEvent):
     def isShiftDown(self) -> bool: ...
 
 class KeyAdapter(KeyListener):
-    def __init__(self): ...
     def keyPressed(self, keyEvent: 'KeyEvent') -> None: ...
     def keyReleased(self, keyEvent: 'KeyEvent') -> None: ...
     def keyTyped(self, keyEvent: 'KeyEvent') -> None: ...
 
 class MouseAdapter(MouseListener, MouseWheelListener, MouseMotionListener):
-    def __init__(self): ...
     def mouseClicked(self, mouseEvent: 'MouseEvent') -> None: ...
     def mouseDragged(self, mouseEvent: 'MouseEvent') -> None: ...
     def mouseEntered(self, mouseEvent: 'MouseEvent') -> None: ...
@@ -339,7 +333,6 @@ class MouseAdapter(MouseListener, MouseWheelListener, MouseMotionListener):
     def mouseWheelMoved(self, mouseWheelEvent: 'MouseWheelEvent') -> None: ...
 
 class MouseMotionAdapter(MouseMotionListener):
-    def __init__(self): ...
     def mouseDragged(self, mouseEvent: 'MouseEvent') -> None: ...
     def mouseMoved(self, mouseEvent: 'MouseEvent') -> None: ...
 
@@ -354,7 +347,6 @@ class PaintEvent(ComponentEvent):
     def setUpdateRect(self, rectangle: java.awt.Rectangle) -> None: ...
 
 class WindowAdapter(WindowListener, WindowStateListener, WindowFocusListener):
-    def __init__(self): ...
     def windowActivated(self, windowEvent: 'WindowEvent') -> None: ...
     def windowClosed(self, windowEvent: 'WindowEvent') -> None: ...
     def windowClosing(self, windowEvent: 'WindowEvent') -> None: ...
diff --git a/java-stubs/awt/font/__init__.pyi b/java-stubs/awt/font/__init__.pyi
index 4653342144363a07e5520d68f5567a18c3c6c3e7..da7e73c2e4b017187da8194f099ed2064bb06e51 100644
--- a/java-stubs/awt/font/__init__.pyi
+++ b/java-stubs/awt/font/__init__.pyi
@@ -79,7 +79,6 @@ class GlyphVector(java.lang.Cloneable):
     FLAG_RUN_RTL: typing.ClassVar[int] = ...
     FLAG_COMPLEX_GLYPHS: typing.ClassVar[int] = ...
     FLAG_MASK: typing.ClassVar[int] = ...
-    def __init__(self): ...
     @typing.overload
     def equals(self, glyphVector: 'GlyphVector') -> bool: ...
     @typing.overload
@@ -131,7 +130,6 @@ class GraphicAttribute:
     def getOutline(self, affineTransform: java.awt.geom.AffineTransform) -> java.awt.Shape: ...
 
 class LayoutPath:
-    def __init__(self): ...
     def pathToPoint(self, point2D: java.awt.geom.Point2D, boolean: bool, point2D2: java.awt.geom.Point2D) -> None: ...
     def pointToPath(self, point2D: java.awt.geom.Point2D, point2D2: java.awt.geom.Point2D) -> bool: ...
 
@@ -154,7 +152,6 @@ class LineBreakMeasurer:
     def setPosition(self, int: int) -> None: ...
 
 class LineMetrics:
-    def __init__(self): ...
     def getAscent(self) -> float: ...
     def getBaselineIndex(self) -> int: ...
     def getBaselineOffsets(self) -> typing.MutableSequence[float]: ...
diff --git a/java-stubs/awt/image/__init__.pyi b/java-stubs/awt/image/__init__.pyi
index 803d73e51d3976bd830003f8a2dc04f89857e762..4d8e0dfc52cb77b3bb4dfba1efbfc4938efa5ca2 100644
--- a/java-stubs/awt/image/__init__.pyi
+++ b/java-stubs/awt/image/__init__.pyi
@@ -18,7 +18,6 @@ import typing
 
 
 class BufferStrategy:
-    def __init__(self): ...
     def contentsLost(self) -> bool: ...
     def contentsRestored(self) -> bool: ...
     def dispose(self) -> None: ...
@@ -397,7 +396,6 @@ class VolatileImage(java.awt.Image, java.awt.Transparency):
     IMAGE_OK: typing.ClassVar[int] = ...
     IMAGE_RESTORED: typing.ClassVar[int] = ...
     IMAGE_INCOMPATIBLE: typing.ClassVar[int] = ...
-    def __init__(self): ...
     def contentsLost(self) -> bool: ...
     def createGraphics(self) -> java.awt.Graphics2D: ...
     @typing.overload
@@ -419,7 +417,6 @@ class VolatileImage(java.awt.Image, java.awt.Transparency):
     def validate(self, graphicsConfiguration: java.awt.GraphicsConfiguration) -> int: ...
 
 class AbstractMultiResolutionImage(java.awt.Image, MultiResolutionImage):
-    def __init__(self): ...
     def getGraphics(self) -> java.awt.Graphics: ...
     def getHeight(self, imageObserver: typing.Union[ImageObserver, typing.Callable]) -> int: ...
     def getProperty(self, string: str, imageObserver: typing.Union[ImageObserver, typing.Callable]) -> typing.Any: ...
@@ -1456,7 +1453,6 @@ class PixelInterleavedSampleModel(ComponentSampleModel):
     def hashCode(self) -> int: ...
 
 class RGBImageFilter(ImageFilter):
-    def __init__(self): ...
     def filterIndexColorModel(self, indexColorModel: IndexColorModel) -> IndexColorModel: ...
     def filterRGB(self, int: int, int2: int, int3: int) -> int: ...
     def filterRGBPixels(self, int: int, int2: int, int3: int, int4: int, intArray: typing.Union[typing.List[int], jpype.JArray], int6: int, int7: int) -> None: ...
diff --git a/java-stubs/awt/peer/__init__.pyi b/java-stubs/awt/peer/__init__.pyi
index 70ebbf8cef41b7395f64660f37b818a302524a37..4172bbd0ab21735613e56ac546f0a4ce6de0ceb7 100644
--- a/java-stubs/awt/peer/__init__.pyi
+++ b/java-stubs/awt/peer/__init__.pyi
@@ -30,13 +30,9 @@ class ComponentPeer:
     DEFAULT_OPERATION: typing.ClassVar[int] = ...
     def applyShape(self, region: sun.java2d.pipe.Region) -> None: ...
     def canDetermineObscurity(self) -> bool: ...
-    def checkImage(self, image: java.awt.Image, int: int, int2: int, imageObserver: typing.Union[java.awt.image.ImageObserver, typing.Callable]) -> int: ...
     def coalescePaintEvent(self, paintEvent: java.awt.event.PaintEvent) -> None: ...
     def createBuffers(self, int: int, bufferCapabilities: java.awt.BufferCapabilities) -> None: ...
-    @typing.overload
     def createImage(self, int: int, int2: int) -> java.awt.Image: ...
-    @typing.overload
-    def createImage(self, imageProducer: java.awt.image.ImageProducer) -> java.awt.Image: ...
     def createVolatileImage(self, int: int, int2: int) -> java.awt.image.VolatileImage: ...
     def destroyBuffers(self) -> None: ...
     def dispose(self) -> None: ...
@@ -56,7 +52,6 @@ class ComponentPeer:
     def isReparentSupported(self) -> bool: ...
     def layout(self) -> None: ...
     def paint(self, graphics: java.awt.Graphics) -> None: ...
-    def prepareImage(self, image: java.awt.Image, int: int, int2: int, imageObserver: typing.Union[java.awt.image.ImageObserver, typing.Callable]) -> bool: ...
     def print_(self, graphics: java.awt.Graphics) -> None: ...
     def reparent(self, containerPeer: 'ContainerPeer') -> None: ...
     def requestFocus(self, component: java.awt.Component, boolean: bool, boolean2: bool, long: int, cause: java.awt.event.FocusEvent.Cause) -> bool: ...
@@ -224,7 +219,6 @@ class CheckboxMenuItemPeer(MenuItemPeer):
 
 class MenuPeer(MenuItemPeer):
     def addItem(self, menuItem: java.awt.MenuItem) -> None: ...
-    def addSeparator(self) -> None: ...
     def delItem(self, int: int) -> None: ...
 
 class PanelPeer(ContainerPeer): ...
diff --git a/java-stubs/beans/__init__.pyi b/java-stubs/beans/__init__.pyi
index 18b0d45a30ac915c5a8336cc824e259c9e1e1087..e5387ca376abeae2f17e5792e025c5dbc6f5c0a6 100644
--- a/java-stubs/beans/__init__.pyi
+++ b/java-stubs/beans/__init__.pyi
@@ -183,7 +183,6 @@ class JavaBean(java.lang.annotation.Annotation):
     def toString(self) -> str: ...
 
 class PersistenceDelegate:
-    def __init__(self): ...
     def writeObject(self, object: typing.Any, encoder: Encoder) -> None: ...
 
 class PropertyChangeEvent(java.util.EventObject):
diff --git a/java-stubs/io/__init__.pyi b/java-stubs/io/__init__.pyi
index 02e75fca391f8b03bc78e11301c189731a89a798..8ddeeca9d9604fd0826e5da6cb6a9c675e87ad72 100644
--- a/java-stubs/io/__init__.pyi
+++ b/java-stubs/io/__init__.pyi
@@ -6,6 +6,7 @@ else:
     from typing_extensions import Protocol
 
 import java.lang
+import java.lang.annotation
 import java.net
 import java.nio
 import java.nio.channels
@@ -13,6 +14,7 @@ import java.nio.charset
 import java.nio.file
 import java.security
 import java.util
+import java.util.function
 import java.util.stream
 import jpype
 import jpype.protocol
@@ -92,14 +94,26 @@ class IOException(java.lang.Exception):
     def __init__(self, throwable: java.lang.Throwable): ...
 
 class ObjectInputFilter:
+    @staticmethod
+    def allowFilter(predicate: typing.Union[java.util.function.Predicate[typing.Type[typing.Any]], typing.Callable[[typing.Type[typing.Any]], bool]], status: 'ObjectInputFilter.Status') -> 'ObjectInputFilter': ...
     def checkInput(self, filterInfo: 'ObjectInputFilter.FilterInfo') -> 'ObjectInputFilter.Status': ...
+    @staticmethod
+    def merge(objectInputFilter: typing.Union['ObjectInputFilter', typing.Callable], objectInputFilter2: typing.Union['ObjectInputFilter', typing.Callable]) -> 'ObjectInputFilter': ...
+    @staticmethod
+    def rejectFilter(predicate: typing.Union[java.util.function.Predicate[typing.Type[typing.Any]], typing.Callable[[typing.Type[typing.Any]], bool]], status: 'ObjectInputFilter.Status') -> 'ObjectInputFilter': ...
+    @staticmethod
+    def rejectUndecidedClass(objectInputFilter: typing.Union['ObjectInputFilter', typing.Callable]) -> 'ObjectInputFilter': ...
     class Config:
         @staticmethod
         def createFilter(string: str) -> 'ObjectInputFilter': ...
         @staticmethod
         def getSerialFilter() -> 'ObjectInputFilter': ...
         @staticmethod
+        def getSerialFilterFactory() -> java.util.function.BinaryOperator['ObjectInputFilter']: ...
+        @staticmethod
         def setSerialFilter(objectInputFilter: typing.Union['ObjectInputFilter', typing.Callable]) -> None: ...
+        @staticmethod
+        def setSerialFilterFactory(binaryOperator: typing.Union[java.util.function.BinaryOperator[typing.Union['ObjectInputFilter', typing.Callable]], typing.Callable]) -> None: ...
     class FilterInfo:
         def arrayLength(self) -> int: ...
         def depth(self) -> int: ...
@@ -170,6 +184,11 @@ class ObjectStreamField(java.lang.Comparable[typing.Any]):
     def isUnshared(self) -> bool: ...
     def toString(self) -> str: ...
 
+class Serial(java.lang.annotation.Annotation):
+    def equals(self, object: typing.Any) -> bool: ...
+    def hashCode(self) -> int: ...
+    def toString(self) -> str: ...
+
 class Serializable: ...
 
 class SerializablePermission(java.security.BasicPermission):
@@ -221,6 +240,7 @@ class CharConversionException(IOException):
     def __init__(self, string: str): ...
 
 class Console(Flushable):
+    def charset(self) -> java.nio.charset.Charset: ...
     def flush(self) -> None: ...
     def format(self, string: str, *object: typing.Any) -> 'Console': ...
     def printf(self, string: str, *object: typing.Any) -> 'Console': ...
@@ -360,6 +380,7 @@ class InputStream(Closeable):
     def readNBytes(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> int: ...
     def reset(self) -> None: ...
     def skip(self, long: int) -> int: ...
+    def skipNBytes(self, long: int) -> None: ...
     def transferTo(self, outputStream: 'OutputStream') -> int: ...
 
 class InterruptedIOException(IOException):
@@ -633,9 +654,9 @@ class CharArrayReader(Reader):
     @typing.overload
     def read(self, charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> int: ...
     @typing.overload
-    def read(self, charArray: typing.Union[typing.List[str], jpype.JArray]) -> int: ...
-    @typing.overload
     def read(self, charBuffer: java.nio.CharBuffer) -> int: ...
+    @typing.overload
+    def read(self, charArray: typing.Union[typing.List[str], jpype.JArray]) -> int: ...
     def ready(self) -> bool: ...
     def reset(self) -> None: ...
     def skip(self, long: int) -> int: ...
@@ -686,6 +707,11 @@ class FileInputStream(InputStream):
     def read(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> int: ...
     @typing.overload
     def read(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> int: ...
+    def readAllBytes(self) -> typing.MutableSequence[int]: ...
+    @typing.overload
+    def readNBytes(self, int: int) -> typing.MutableSequence[int]: ...
+    @typing.overload
+    def readNBytes(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> int: ...
     def skip(self, long: int) -> int: ...
 
 class FileOutputStream(OutputStream):
@@ -780,9 +806,9 @@ class InputStreamReader(Reader):
     @typing.overload
     def read(self, charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> int: ...
     @typing.overload
-    def read(self, charArray: typing.Union[typing.List[str], jpype.JArray]) -> int: ...
-    @typing.overload
     def read(self, charBuffer: java.nio.CharBuffer) -> int: ...
+    @typing.overload
+    def read(self, charArray: typing.Union[typing.List[str], jpype.JArray]) -> int: ...
     def ready(self) -> bool: ...
 
 class InvalidClassException(ObjectStreamException):
@@ -1424,6 +1450,7 @@ class PrintStream(FilterOutputStream, java.lang.Appendable, Closeable):
     def write(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> None: ...
     @typing.overload
     def write(self, int: int) -> None: ...
+    def writeBytes(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> None: ...
 
 class PushbackInputStream(FilterInputStream):
     @typing.overload
@@ -1546,6 +1573,7 @@ class __module_protocol__(Protocol):
     RandomAccessFile: typing.Type[RandomAccessFile]
     Reader: typing.Type[Reader]
     SequenceInputStream: typing.Type[SequenceInputStream]
+    Serial: typing.Type[Serial]
     Serializable: typing.Type[Serializable]
     SerializablePermission: typing.Type[SerializablePermission]
     StreamCorruptedException: typing.Type[StreamCorruptedException]
diff --git a/java-stubs/lang/__init__.pyi b/java-stubs/lang/__init__.pyi
index 3ae31a6dfcfb50592083b5d2a93a83d400e18815..48332f97adf2c84c58c397105fda3382dd812b70 100644
--- a/java-stubs/lang/__init__.pyi
+++ b/java-stubs/lang/__init__.pyi
@@ -14,12 +14,14 @@ from jpype._jthread import _JThread
 import java
 import java.io
 import java.lang.annotation
+import java.lang.constant
 import java.lang.instrument
 import java.lang.invoke
 import java.lang.management
 import java.lang.module
 import java.lang.ref
 import java.lang.reflect
+import java.lang.runtime
 import java.net
 import java.nio
 import java.nio.channels
@@ -53,15 +55,20 @@ class CharSequence:
     def codePoints(self) -> java.util.stream.IntStream: ...
     @staticmethod
     def compare(charSequence: typing.Union['CharSequence', str], charSequence2: typing.Union['CharSequence', str]) -> int: ...
+    def isEmpty(self) -> bool: ...
     def length(self) -> int: ...
     def subSequence(self, int: int, int2: int) -> 'CharSequence': ...
     def toString(self) -> str: ...
 
 _Class__T = typing.TypeVar('_Class__T')  # <T>
-class Class(java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lang.reflect.Type, java.lang.reflect.AnnotatedElement, typing.Generic[_Class__T]):
+class Class(java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lang.reflect.Type, java.lang.reflect.AnnotatedElement, java.lang.invoke.TypeDescriptor.OfField[typing.Type[typing.Any]], java.lang.constant.Constable, typing.Generic[_Class__T]):
+    def arrayType(self) -> typing.Type[typing.Any]: ...
     _asSubclass__U = typing.TypeVar('_asSubclass__U')  # <U>
     def asSubclass(self, class_: typing.Type[_asSubclass__U]) -> typing.Type[_asSubclass__U]: ...
     def cast(self, object: typing.Any) -> _Class__T: ...
+    def componentType(self) -> typing.Type[typing.Any]: ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.ClassDesc]: ...
+    def descriptorString(self) -> str: ...
     def desiredAssertionStatus(self) -> bool: ...
     @typing.overload
     @staticmethod
@@ -116,7 +123,9 @@ class Class(java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lan
     def getNestMembers(self) -> typing.MutableSequence[typing.Type[typing.Any]]: ...
     def getPackage(self) -> 'Package': ...
     def getPackageName(self) -> str: ...
+    def getPermittedSubclasses(self) -> typing.MutableSequence[typing.Type[typing.Any]]: ...
     def getProtectionDomain(self) -> java.security.ProtectionDomain: ...
+    def getRecordComponents(self) -> typing.MutableSequence[java.lang.reflect.RecordComponent]: ...
     def getResource(self, string: str) -> java.net.URL: ...
     def getResourceAsStream(self, string: str) -> java.io.InputStream: ...
     def getSigners(self) -> typing.MutableSequence[typing.Any]: ...
@@ -130,12 +139,15 @@ class Class(java.io.Serializable, java.lang.reflect.GenericDeclaration, java.lan
     def isArray(self) -> bool: ...
     def isAssignableFrom(self, class_: typing.Type[typing.Any]) -> bool: ...
     def isEnum(self) -> bool: ...
+    def isHidden(self) -> bool: ...
     def isInstance(self, object: typing.Any) -> bool: ...
     def isInterface(self) -> bool: ...
     def isLocalClass(self) -> bool: ...
     def isMemberClass(self) -> bool: ...
     def isNestmateOf(self, class_: typing.Type[typing.Any]) -> bool: ...
     def isPrimitive(self) -> bool: ...
+    def isRecord(self) -> bool: ...
+    def isSealed(self) -> bool: ...
     def isSynthetic(self) -> bool: ...
     def newInstance(self) -> _Class__T: ...
     def toGenericString(self) -> str: ...
@@ -226,6 +238,12 @@ class Math:
     @typing.overload
     @staticmethod
     def abs(long: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def absExact(int: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def absExact(long: int) -> int: ...
     @staticmethod
     def acos(double: float) -> float: ...
     @typing.overload
@@ -519,13 +537,25 @@ class Process:
     def descendants(self) -> java.util.stream.Stream['ProcessHandle']: ...
     def destroy(self) -> None: ...
     def destroyForcibly(self) -> 'Process': ...
+    @typing.overload
+    def errorReader(self) -> java.io.BufferedReader: ...
+    @typing.overload
+    def errorReader(self, charset: java.nio.charset.Charset) -> java.io.BufferedReader: ...
     def exitValue(self) -> int: ...
     def getErrorStream(self) -> java.io.InputStream: ...
     def getInputStream(self) -> java.io.InputStream: ...
     def getOutputStream(self) -> java.io.OutputStream: ...
     def info(self) -> 'ProcessHandle.Info': ...
+    @typing.overload
+    def inputReader(self) -> java.io.BufferedReader: ...
+    @typing.overload
+    def inputReader(self, charset: java.nio.charset.Charset) -> java.io.BufferedReader: ...
     def isAlive(self) -> bool: ...
     def onExit(self) -> java.util.concurrent.CompletableFuture['Process']: ...
+    @typing.overload
+    def outputWriter(self) -> java.io.BufferedWriter: ...
+    @typing.overload
+    def outputWriter(self, charset: java.nio.charset.Charset) -> java.io.BufferedWriter: ...
     def pid(self) -> int: ...
     def supportsNormalTermination(self) -> bool: ...
     def toHandle(self) -> 'ProcessHandle': ...
@@ -537,6 +567,11 @@ class Process:
 class Readable:
     def read(self, charBuffer: java.nio.CharBuffer) -> int: ...
 
+class Record:
+    def equals(self, object: typing.Any) -> bool: ...
+    def hashCode(self) -> int: ...
+    def toString(self) -> str: ...
+
 class Runnable:
     def run(self) -> None: ...
 
@@ -630,6 +665,12 @@ class StrictMath:
     @typing.overload
     @staticmethod
     def abs(long: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def absExact(int: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def absExact(long: int) -> int: ...
     @staticmethod
     def acos(double: float) -> float: ...
     @typing.overload
@@ -658,6 +699,12 @@ class StrictMath:
     def cos(double: float) -> float: ...
     @staticmethod
     def cosh(double: float) -> float: ...
+    @typing.overload
+    @staticmethod
+    def decrementExact(int: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def decrementExact(long: int) -> int: ...
     @staticmethod
     def exp(double: float) -> float: ...
     @staticmethod
@@ -696,6 +743,12 @@ class StrictMath:
     def getExponent(float: float) -> int: ...
     @staticmethod
     def hypot(double: float, double2: float) -> float: ...
+    @typing.overload
+    @staticmethod
+    def incrementExact(int: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def incrementExact(long: int) -> int: ...
     @staticmethod
     def log(double: float) -> float: ...
     @staticmethod
@@ -741,6 +794,12 @@ class StrictMath:
     def multiplyHigh(long: int, long2: int) -> int: ...
     @typing.overload
     @staticmethod
+    def negateExact(int: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def negateExact(long: int) -> int: ...
+    @typing.overload
+    @staticmethod
     def nextAfter(double: float, double2: float) -> float: ...
     @typing.overload
     @staticmethod
@@ -855,7 +914,7 @@ class Throwable(java.io.Serializable, JException):
 class Void:
     TYPE: typing.ClassVar[typing.Type] = ...
 
-class Boolean(java.io.Serializable, Comparable[bool]):
+class Boolean(java.io.Serializable, Comparable[bool], java.lang.constant.Constable):
     TRUE: typing.ClassVar[bool] = ...
     FALSE: typing.ClassVar[bool] = ...
     TYPE: typing.ClassVar[typing.Type] = ...
@@ -867,6 +926,7 @@ class Boolean(java.io.Serializable, Comparable[bool]):
     @staticmethod
     def compare(boolean: bool, boolean2: bool) -> int: ...
     def compareTo(self, boolean: bool) -> int: ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.DynamicConstantDesc[bool]]: ...
     def equals(self, object: typing.Any) -> bool: ...
     @staticmethod
     def getBoolean(string: str) -> bool: ...
@@ -895,7 +955,7 @@ class Boolean(java.io.Serializable, Comparable[bool]):
     @staticmethod
     def valueOf(string: str) -> bool: ...
 
-class Byte(Number, Comparable[int]):
+class Byte(Number, Comparable[int], java.lang.constant.Constable):
     MIN_VALUE: typing.ClassVar[int] = ...
     MAX_VALUE: typing.ClassVar[int] = ...
     TYPE: typing.ClassVar[typing.Type] = ...
@@ -913,6 +973,7 @@ class Byte(Number, Comparable[int]):
     def compareUnsigned(byte: int, byte2: int) -> int: ...
     @staticmethod
     def decode(string: str) -> int: ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.DynamicConstantDesc[int]]: ...
     def doubleValue(self) -> float: ...
     def equals(self, object: typing.Any) -> bool: ...
     def floatValue(self) -> float: ...
@@ -949,7 +1010,7 @@ class Byte(Number, Comparable[int]):
     @staticmethod
     def valueOf(string: str, int: int) -> int: ...
 
-class Double(Number, Comparable[float]):
+class Double(Number, Comparable[float], java.lang.constant.Constable, java.lang.constant.ConstantDesc):
     POSITIVE_INFINITY: typing.ClassVar[float] = ...
     NEGATIVE_INFINITY: typing.ClassVar[float] = ...
     NaN: typing.ClassVar[float] = ...
@@ -969,6 +1030,7 @@ class Double(Number, Comparable[float]):
     @staticmethod
     def compare(double: float, double2: float) -> int: ...
     def compareTo(self, double: float) -> int: ...
+    def describeConstable(self) -> java.util.Optional[float]: ...
     @staticmethod
     def doubleToLongBits(double: float) -> int: ...
     @staticmethod
@@ -1003,6 +1065,7 @@ class Double(Number, Comparable[float]):
     def min(double: float, double2: float) -> float: ...
     @staticmethod
     def parseDouble(string: str) -> float: ...
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> float: ...
     def shortValue(self) -> int: ...
     @staticmethod
     def sum(double: float, double2: float) -> float: ...
@@ -1020,9 +1083,11 @@ class Double(Number, Comparable[float]):
     @staticmethod
     def valueOf(string: str) -> float: ...
 
+_Enum__EnumDesc__E = typing.TypeVar('_Enum__EnumDesc__E', bound='Enum')  # <E>
 _Enum__E = typing.TypeVar('_Enum__E', bound='Enum')  # <E>
-class Enum(Comparable[_Enum__E], java.io.Serializable, typing.Generic[_Enum__E]):
+class Enum(java.lang.constant.Constable, Comparable[_Enum__E], java.io.Serializable, typing.Generic[_Enum__E]):
     def compareTo(self, e: _Enum__E) -> int: ...
+    def describeConstable(self) -> java.util.Optional['Enum.EnumDesc'[_Enum__E]]: ...
     def equals(self, object: typing.Any) -> bool: ...
     def getDeclaringClass(self) -> typing.Type[_Enum__E]: ...
     def hashCode(self) -> int: ...
@@ -1032,6 +1097,21 @@ class Enum(Comparable[_Enum__E], java.io.Serializable, typing.Generic[_Enum__E])
     _valueOf__T = typing.TypeVar('_valueOf__T', bound='Enum')  # <T>
     @staticmethod
     def valueOf(class_: typing.Type[_valueOf__T], string: str) -> _valueOf__T: ...
+    class EnumDesc(java.lang.constant.DynamicConstantDesc[_Enum__EnumDesc__E], typing.Generic[_Enum__EnumDesc__E]):
+        _of_0__E = typing.TypeVar('_of_0__E', bound='Enum')  # <E>
+        _of_1__T = typing.TypeVar('_of_1__T')  # <T>
+        _of_2__T = typing.TypeVar('_of_2__T')  # <T>
+        @typing.overload
+        @staticmethod
+        def of(classDesc: java.lang.constant.ClassDesc, string: str) -> 'Enum.EnumDesc'[_of_0__E]: ...
+        @typing.overload
+        @staticmethod
+        def of(directMethodHandleDesc: java.lang.constant.DirectMethodHandleDesc) -> java.lang.constant.DynamicConstantDesc[_of_1__T]: ...
+        @typing.overload
+        @staticmethod
+        def of(directMethodHandleDesc: java.lang.constant.DirectMethodHandleDesc, *constantDesc: java.lang.constant.ConstantDesc) -> java.lang.constant.DynamicConstantDesc[_of_2__T]: ...
+        def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> _Enum__EnumDesc__E: ...
+        def toString(self) -> str: ...
 
 class Error(Throwable):
     @typing.overload
@@ -1053,7 +1133,7 @@ class Exception(Throwable):
     @typing.overload
     def __init__(self, throwable: Throwable): ...
 
-class Float(Number, Comparable[float]):
+class Float(Number, Comparable[float], java.lang.constant.Constable, java.lang.constant.ConstantDesc):
     POSITIVE_INFINITY: typing.ClassVar[float] = ...
     NEGATIVE_INFINITY: typing.ClassVar[float] = ...
     NaN: typing.ClassVar[float] = ...
@@ -1075,6 +1155,7 @@ class Float(Number, Comparable[float]):
     @staticmethod
     def compare(float: float, float2: float) -> int: ...
     def compareTo(self, float: float) -> int: ...
+    def describeConstable(self) -> java.util.Optional[float]: ...
     def doubleValue(self) -> float: ...
     def equals(self, object: typing.Any) -> bool: ...
     @staticmethod
@@ -1109,6 +1190,7 @@ class Float(Number, Comparable[float]):
     def min(float: float, float2: float) -> float: ...
     @staticmethod
     def parseFloat(string: str) -> float: ...
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> float: ...
     def shortValue(self) -> int: ...
     @staticmethod
     def sum(float: float, float2: float) -> float: ...
@@ -1130,7 +1212,7 @@ _InheritableThreadLocal__T = typing.TypeVar('_InheritableThreadLocal__T')  # <T>
 class InheritableThreadLocal(ThreadLocal[_InheritableThreadLocal__T], typing.Generic[_InheritableThreadLocal__T]):
     def __init__(self): ...
 
-class Integer(Number, Comparable[int]):
+class Integer(Number, Comparable[int], java.lang.constant.Constable, java.lang.constant.ConstantDesc):
     MIN_VALUE: typing.ClassVar[int] = ...
     MAX_VALUE: typing.ClassVar[int] = ...
     TYPE: typing.ClassVar[typing.Type] = ...
@@ -1150,6 +1232,7 @@ class Integer(Number, Comparable[int]):
     def compareUnsigned(int: int, int2: int) -> int: ...
     @staticmethod
     def decode(string: str) -> int: ...
+    def describeConstable(self) -> java.util.Optional[int]: ...
     @staticmethod
     def divideUnsigned(int: int, int2: int) -> int: ...
     def doubleValue(self) -> float: ...
@@ -1203,6 +1286,7 @@ class Integer(Number, Comparable[int]):
     def parseUnsignedInt(string: str, int: int) -> int: ...
     @staticmethod
     def remainderUnsigned(int: int, int2: int) -> int: ...
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> int: ...
     @staticmethod
     def reverse(int: int) -> int: ...
     @staticmethod
@@ -1248,7 +1332,7 @@ class Integer(Number, Comparable[int]):
     @staticmethod
     def valueOf(string: str, int: int) -> int: ...
 
-class Long(Number, Comparable[int]):
+class Long(Number, Comparable[int], java.lang.constant.Constable, java.lang.constant.ConstantDesc):
     MIN_VALUE: typing.ClassVar[int] = ...
     MAX_VALUE: typing.ClassVar[int] = ...
     TYPE: typing.ClassVar[typing.Type] = ...
@@ -1268,6 +1352,7 @@ class Long(Number, Comparable[int]):
     def compareUnsigned(long: int, long2: int) -> int: ...
     @staticmethod
     def decode(string: str) -> int: ...
+    def describeConstable(self) -> java.util.Optional[int]: ...
     @staticmethod
     def divideUnsigned(long: int, long2: int) -> int: ...
     def doubleValue(self) -> float: ...
@@ -1321,6 +1406,7 @@ class Long(Number, Comparable[int]):
     def parseUnsignedLong(string: str, int: int) -> int: ...
     @staticmethod
     def remainderUnsigned(long: int, long2: int) -> int: ...
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> int: ...
     @staticmethod
     def reverse(long: int) -> int: ...
     @staticmethod
@@ -1417,8 +1503,6 @@ class Runtime(_JRuntime):
     def maxMemory(self) -> int: ...
     def runFinalization(self) -> None: ...
     def totalMemory(self) -> int: ...
-    def traceInstructions(self, boolean: bool) -> None: ...
-    def traceMethodCalls(self, boolean: bool) -> None: ...
     @staticmethod
     def version() -> 'Runtime.Version': ...
     class Version(Comparable['Runtime.Version']):
@@ -1442,7 +1526,7 @@ class Runtime(_JRuntime):
         def update(self) -> int: ...
         def version(self) -> java.util.List[int]: ...
 
-class Short(Number, Comparable[int]):
+class Short(Number, Comparable[int], java.lang.constant.Constable):
     MIN_VALUE: typing.ClassVar[int] = ...
     MAX_VALUE: typing.ClassVar[int] = ...
     TYPE: typing.ClassVar[typing.Type] = ...
@@ -1460,6 +1544,7 @@ class Short(Number, Comparable[int]):
     def compareUnsigned(short: int, short2: int) -> int: ...
     @staticmethod
     def decode(string: str) -> int: ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.DynamicConstantDesc[int]]: ...
     def doubleValue(self) -> float: ...
     def equals(self, object: typing.Any) -> bool: ...
     def floatValue(self) -> float: ...
@@ -1498,7 +1583,7 @@ class Short(Number, Comparable[int]):
     @staticmethod
     def valueOf(short: int) -> int: ...
 
-class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto):
+class String(java.io.Serializable, Comparable[str], CharSequence, java.lang.constant.Constable, java.lang.constant.ConstantDesc, _JStringProto):
     CASE_INSENSITIVE_ORDER: typing.ClassVar[java.util.Comparator] = ...
     @typing.overload
     def __init__(self): ...
@@ -1550,6 +1635,7 @@ class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto)
     @typing.overload
     @staticmethod
     def copyValueOf(charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> str: ...
+    def describeConstable(self) -> java.util.Optional[str]: ...
     def endsWith(self, string: str) -> bool: ...
     def equals(self, object: typing.Any) -> bool: ...
     def equalsIgnoreCase(self, string: str) -> bool: ...
@@ -1559,6 +1645,7 @@ class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto)
     @typing.overload
     @staticmethod
     def format(locale: java.util.Locale, string: str, *object: typing.Any) -> str: ...
+    def formatted(self, *object: typing.Any) -> str: ...
     @typing.overload
     def getBytes(self) -> typing.MutableSequence[int]: ...
     @typing.overload
@@ -1569,6 +1656,7 @@ class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto)
     def getBytes(self, int: int, int2: int, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int3: int) -> None: ...
     def getChars(self, int: int, int2: int, charArray: typing.Union[typing.List[str], jpype.JArray], int3: int) -> None: ...
     def hashCode(self) -> int: ...
+    def indent(self, int: int) -> str: ...
     @typing.overload
     def indexOf(self, int: int) -> int: ...
     @typing.overload
@@ -1609,6 +1697,7 @@ class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto)
     def replace(self, charSequence: typing.Union[CharSequence, str], charSequence2: typing.Union[CharSequence, str]) -> str: ...
     def replaceAll(self, string: str, string2: str) -> str: ...
     def replaceFirst(self, string: str, string2: str) -> str: ...
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> str: ...
     @typing.overload
     def split(self, string: str) -> typing.MutableSequence[str]: ...
     @typing.overload
@@ -1618,6 +1707,7 @@ class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto)
     @typing.overload
     def startsWith(self, string: str, int: int) -> bool: ...
     def strip(self) -> str: ...
+    def stripIndent(self) -> str: ...
     def stripLeading(self) -> str: ...
     def stripTrailing(self) -> str: ...
     def subSequence(self, int: int, int2: int) -> CharSequence: ...
@@ -1635,6 +1725,9 @@ class String(java.io.Serializable, Comparable[str], CharSequence, _JStringProto)
     def toUpperCase(self) -> str: ...
     @typing.overload
     def toUpperCase(self, locale: java.util.Locale) -> str: ...
+    _transform__R = typing.TypeVar('_transform__R')  # <R>
+    def transform(self, function: typing.Union[java.util.function.Function[str, _transform__R], typing.Callable[[str], _transform__R]]) -> _transform__R: ...
+    def translateEscapes(self) -> str: ...
     def trim(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -2108,7 +2201,6 @@ class ClassNotFoundException(ReflectiveOperationException):
     def __init__(self, string: str): ...
     @typing.overload
     def __init__(self, string: str, throwable: Throwable): ...
-    def getCause(self) -> Throwable: ...
     def getException(self) -> Throwable: ...
 
 class EnumConstantNotPresentException(RuntimeException):
@@ -2123,7 +2215,6 @@ class ExceptionInInitializerError(LinkageError):
     def __init__(self, string: str): ...
     @typing.overload
     def __init__(self, throwable: Throwable): ...
-    def getCause(self) -> Throwable: ...
     def getException(self) -> Throwable: ...
 
 class IllegalAccessException(ReflectiveOperationException):
@@ -2181,6 +2272,8 @@ class IndexOutOfBoundsException(RuntimeException):
     def __init__(self, int: int): ...
     @typing.overload
     def __init__(self, string: str): ...
+    @typing.overload
+    def __init__(self, long: int): ...
 
 class InstantiationException(ReflectiveOperationException):
     @typing.overload
@@ -2237,6 +2330,8 @@ class NullPointerException(RuntimeException):
     def __init__(self): ...
     @typing.overload
     def __init__(self, string: str): ...
+    def fillInStackTrace(self) -> Throwable: ...
+    def getMessage(self) -> str: ...
 
 class OutOfMemoryError(VirtualMachineError):
     @typing.overload
@@ -2390,7 +2485,7 @@ class UnsupportedClassVersionError(ClassFormatError):
     @typing.overload
     def __init__(self, string: str): ...
 
-class Character(java.io.Serializable, Comparable[str]):
+class Character(java.io.Serializable, Comparable[str], java.lang.constant.Constable):
     MIN_RADIX: typing.ClassVar[int] = ...
     MAX_RADIX: typing.ClassVar[int] = ...
     MIN_VALUE: typing.ClassVar[str] = ...
@@ -2494,6 +2589,7 @@ class Character(java.io.Serializable, Comparable[str]):
     @staticmethod
     def compare(char: str, char2: str) -> int: ...
     def compareTo(self, character: str) -> int: ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.DynamicConstantDesc[str]]: ...
     @typing.overload
     @staticmethod
     def digit(char: str, int: int) -> int: ...
@@ -2982,6 +3078,34 @@ class Character(java.io.Serializable, Comparable[str]):
         SOYOMBO: typing.ClassVar['Character.UnicodeBlock'] = ...
         BHAIKSUKI: typing.ClassVar['Character.UnicodeBlock'] = ...
         CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F: typing.ClassVar['Character.UnicodeBlock'] = ...
+        GEORGIAN_EXTENDED: typing.ClassVar['Character.UnicodeBlock'] = ...
+        HANIFI_ROHINGYA: typing.ClassVar['Character.UnicodeBlock'] = ...
+        OLD_SOGDIAN: typing.ClassVar['Character.UnicodeBlock'] = ...
+        SOGDIAN: typing.ClassVar['Character.UnicodeBlock'] = ...
+        DOGRA: typing.ClassVar['Character.UnicodeBlock'] = ...
+        GUNJALA_GONDI: typing.ClassVar['Character.UnicodeBlock'] = ...
+        MAKASAR: typing.ClassVar['Character.UnicodeBlock'] = ...
+        MEDEFAIDRIN: typing.ClassVar['Character.UnicodeBlock'] = ...
+        MAYAN_NUMERALS: typing.ClassVar['Character.UnicodeBlock'] = ...
+        INDIC_SIYAQ_NUMBERS: typing.ClassVar['Character.UnicodeBlock'] = ...
+        CHESS_SYMBOLS: typing.ClassVar['Character.UnicodeBlock'] = ...
+        ELYMAIC: typing.ClassVar['Character.UnicodeBlock'] = ...
+        NANDINAGARI: typing.ClassVar['Character.UnicodeBlock'] = ...
+        TAMIL_SUPPLEMENT: typing.ClassVar['Character.UnicodeBlock'] = ...
+        EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS: typing.ClassVar['Character.UnicodeBlock'] = ...
+        SMALL_KANA_EXTENSION: typing.ClassVar['Character.UnicodeBlock'] = ...
+        NYIAKENG_PUACHUE_HMONG: typing.ClassVar['Character.UnicodeBlock'] = ...
+        WANCHO: typing.ClassVar['Character.UnicodeBlock'] = ...
+        OTTOMAN_SIYAQ_NUMBERS: typing.ClassVar['Character.UnicodeBlock'] = ...
+        SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A: typing.ClassVar['Character.UnicodeBlock'] = ...
+        YEZIDI: typing.ClassVar['Character.UnicodeBlock'] = ...
+        CHORASMIAN: typing.ClassVar['Character.UnicodeBlock'] = ...
+        DIVES_AKURU: typing.ClassVar['Character.UnicodeBlock'] = ...
+        LISU_SUPPLEMENT: typing.ClassVar['Character.UnicodeBlock'] = ...
+        KHITAN_SMALL_SCRIPT: typing.ClassVar['Character.UnicodeBlock'] = ...
+        TANGUT_SUPPLEMENT: typing.ClassVar['Character.UnicodeBlock'] = ...
+        SYMBOLS_FOR_LEGACY_COMPUTING: typing.ClassVar['Character.UnicodeBlock'] = ...
+        CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G: typing.ClassVar['Character.UnicodeBlock'] = ...
         @staticmethod
         def forName(string: str) -> 'Character.UnicodeBlock': ...
         @typing.overload
@@ -3132,6 +3256,21 @@ class Character(java.io.Serializable, Comparable[str]):
         NUSHU: typing.ClassVar['Character.UnicodeScript'] = ...
         SOYOMBO: typing.ClassVar['Character.UnicodeScript'] = ...
         ZANABAZAR_SQUARE: typing.ClassVar['Character.UnicodeScript'] = ...
+        HANIFI_ROHINGYA: typing.ClassVar['Character.UnicodeScript'] = ...
+        OLD_SOGDIAN: typing.ClassVar['Character.UnicodeScript'] = ...
+        SOGDIAN: typing.ClassVar['Character.UnicodeScript'] = ...
+        DOGRA: typing.ClassVar['Character.UnicodeScript'] = ...
+        GUNJALA_GONDI: typing.ClassVar['Character.UnicodeScript'] = ...
+        MAKASAR: typing.ClassVar['Character.UnicodeScript'] = ...
+        MEDEFAIDRIN: typing.ClassVar['Character.UnicodeScript'] = ...
+        ELYMAIC: typing.ClassVar['Character.UnicodeScript'] = ...
+        NANDINAGARI: typing.ClassVar['Character.UnicodeScript'] = ...
+        NYIAKENG_PUACHUE_HMONG: typing.ClassVar['Character.UnicodeScript'] = ...
+        WANCHO: typing.ClassVar['Character.UnicodeScript'] = ...
+        YEZIDI: typing.ClassVar['Character.UnicodeScript'] = ...
+        CHORASMIAN: typing.ClassVar['Character.UnicodeScript'] = ...
+        DIVES_AKURU: typing.ClassVar['Character.UnicodeScript'] = ...
+        KHITAN_SMALL_SCRIPT: typing.ClassVar['Character.UnicodeScript'] = ...
         UNKNOWN: typing.ClassVar['Character.UnicodeScript'] = ...
         @staticmethod
         def forName(string: str) -> 'Character.UnicodeScript': ...
@@ -3426,6 +3565,7 @@ class __module_protocol__(Protocol):
     ProcessBuilder: typing.Type[ProcessBuilder]
     ProcessHandle: typing.Type[ProcessHandle]
     Readable: typing.Type[Readable]
+    Record: typing.Type[Record]
     ReflectiveOperationException: typing.Type[ReflectiveOperationException]
     Runnable: typing.Type[Runnable]
     Runtime: typing.Type[Runtime]
@@ -3459,9 +3599,11 @@ class __module_protocol__(Protocol):
     VirtualMachineError: typing.Type[VirtualMachineError]
     Void: typing.Type[Void]
     annotation: java.lang.annotation.__module_protocol__
+    constant: java.lang.constant.__module_protocol__
     instrument: java.lang.instrument.__module_protocol__
     invoke: java.lang.invoke.__module_protocol__
     management: java.lang.management.__module_protocol__
     module: java.lang.module.__module_protocol__
     ref: java.lang.ref.__module_protocol__
     reflect: java.lang.reflect.__module_protocol__
+    runtime: java.lang.runtime.__module_protocol__
diff --git a/java-stubs/lang/annotation/__init__.pyi b/java-stubs/lang/annotation/__init__.pyi
index a653fb9e16284349d85c39e5cadccf5e07ef8d6c..9364f32702b65f91e5a2baa8cd549e13209f266f 100644
--- a/java-stubs/lang/annotation/__init__.pyi
+++ b/java-stubs/lang/annotation/__init__.pyi
@@ -42,6 +42,7 @@ class ElementType(java.lang.Enum['ElementType']):
     TYPE_PARAMETER: typing.ClassVar['ElementType'] = ...
     TYPE_USE: typing.ClassVar['ElementType'] = ...
     MODULE: typing.ClassVar['ElementType'] = ...
+    RECORD_COMPONENT: typing.ClassVar['ElementType'] = ...
     _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
     @typing.overload
     @staticmethod
diff --git a/java-stubs/lang/constant/__init__.pyi b/java-stubs/lang/constant/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..02b2db79c1c3fbd5a44e7c799f648a0c0dd19214
--- /dev/null
+++ b/java-stubs/lang/constant/__init__.pyi
@@ -0,0 +1,241 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import java.lang
+import java.lang.invoke
+import java.util
+import jpype
+import typing
+
+
+
+class Constable:
+    def describeConstable(self) -> java.util.Optional['ConstantDesc']: ...
+
+class ConstantDesc:
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> typing.Any: ...
+
+class ConstantDescs:
+    DEFAULT_NAME: typing.ClassVar[str] = ...
+    CD_Object: typing.ClassVar['ClassDesc'] = ...
+    CD_String: typing.ClassVar['ClassDesc'] = ...
+    CD_Class: typing.ClassVar['ClassDesc'] = ...
+    CD_Number: typing.ClassVar['ClassDesc'] = ...
+    CD_Integer: typing.ClassVar['ClassDesc'] = ...
+    CD_Long: typing.ClassVar['ClassDesc'] = ...
+    CD_Float: typing.ClassVar['ClassDesc'] = ...
+    CD_Double: typing.ClassVar['ClassDesc'] = ...
+    CD_Short: typing.ClassVar['ClassDesc'] = ...
+    CD_Byte: typing.ClassVar['ClassDesc'] = ...
+    CD_Character: typing.ClassVar['ClassDesc'] = ...
+    CD_Boolean: typing.ClassVar['ClassDesc'] = ...
+    CD_Void: typing.ClassVar['ClassDesc'] = ...
+    CD_Throwable: typing.ClassVar['ClassDesc'] = ...
+    CD_Exception: typing.ClassVar['ClassDesc'] = ...
+    CD_Enum: typing.ClassVar['ClassDesc'] = ...
+    CD_VarHandle: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodHandles: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodHandles_Lookup: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodHandle: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodType: typing.ClassVar['ClassDesc'] = ...
+    CD_CallSite: typing.ClassVar['ClassDesc'] = ...
+    CD_Collection: typing.ClassVar['ClassDesc'] = ...
+    CD_List: typing.ClassVar['ClassDesc'] = ...
+    CD_Set: typing.ClassVar['ClassDesc'] = ...
+    CD_Map: typing.ClassVar['ClassDesc'] = ...
+    CD_ConstantDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_ClassDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_EnumDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodTypeDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodHandleDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_DirectMethodHandleDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_VarHandleDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_MethodHandleDesc_Kind: typing.ClassVar['ClassDesc'] = ...
+    CD_DynamicConstantDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_DynamicCallSiteDesc: typing.ClassVar['ClassDesc'] = ...
+    CD_ConstantBootstraps: typing.ClassVar['ClassDesc'] = ...
+    BSM_PRIMITIVE_CLASS: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_ENUM_CONSTANT: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_GET_STATIC_FINAL: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_NULL_CONSTANT: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_VARHANDLE_FIELD: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_VARHANDLE_STATIC_FIELD: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_VARHANDLE_ARRAY: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_INVOKE: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    BSM_EXPLICIT_CAST: typing.ClassVar['DirectMethodHandleDesc'] = ...
+    CD_int: typing.ClassVar['ClassDesc'] = ...
+    CD_long: typing.ClassVar['ClassDesc'] = ...
+    CD_float: typing.ClassVar['ClassDesc'] = ...
+    CD_double: typing.ClassVar['ClassDesc'] = ...
+    CD_short: typing.ClassVar['ClassDesc'] = ...
+    CD_byte: typing.ClassVar['ClassDesc'] = ...
+    CD_char: typing.ClassVar['ClassDesc'] = ...
+    CD_boolean: typing.ClassVar['ClassDesc'] = ...
+    CD_void: typing.ClassVar['ClassDesc'] = ...
+    NULL: typing.ClassVar[ConstantDesc] = ...
+    TRUE: typing.ClassVar['DynamicConstantDesc'] = ...
+    FALSE: typing.ClassVar['DynamicConstantDesc'] = ...
+    @staticmethod
+    def ofCallsiteBootstrap(classDesc: 'ClassDesc', string: str, classDesc2: 'ClassDesc', *classDesc3: 'ClassDesc') -> 'DirectMethodHandleDesc': ...
+    @staticmethod
+    def ofConstantBootstrap(classDesc: 'ClassDesc', string: str, classDesc2: 'ClassDesc', *classDesc3: 'ClassDesc') -> 'DirectMethodHandleDesc': ...
+
+class DynamicCallSiteDesc:
+    def bootstrapArgs(self) -> typing.MutableSequence[ConstantDesc]: ...
+    def bootstrapMethod(self) -> 'MethodHandleDesc': ...
+    def equals(self, object: typing.Any) -> bool: ...
+    def hashCode(self) -> int: ...
+    def invocationName(self) -> str: ...
+    def invocationType(self) -> 'MethodTypeDesc': ...
+    @typing.overload
+    @staticmethod
+    def of(directMethodHandleDesc: 'DirectMethodHandleDesc', string: str, methodTypeDesc: 'MethodTypeDesc') -> 'DynamicCallSiteDesc': ...
+    @typing.overload
+    @staticmethod
+    def of(directMethodHandleDesc: 'DirectMethodHandleDesc', string: str, methodTypeDesc: 'MethodTypeDesc', *constantDesc: ConstantDesc) -> 'DynamicCallSiteDesc': ...
+    @typing.overload
+    @staticmethod
+    def of(directMethodHandleDesc: 'DirectMethodHandleDesc', methodTypeDesc: 'MethodTypeDesc') -> 'DynamicCallSiteDesc': ...
+    def resolveCallSiteDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> java.lang.invoke.CallSite: ...
+    def toString(self) -> str: ...
+    def withArgs(self, *constantDesc: ConstantDesc) -> 'DynamicCallSiteDesc': ...
+    def withNameAndType(self, string: str, methodTypeDesc: 'MethodTypeDesc') -> 'DynamicCallSiteDesc': ...
+
+class ClassDesc(ConstantDesc, java.lang.invoke.TypeDescriptor.OfField['ClassDesc']):
+    @typing.overload
+    def arrayType(self) -> 'ClassDesc': ...
+    @typing.overload
+    def arrayType(self, int: int) -> 'ClassDesc': ...
+    def componentType(self) -> 'ClassDesc': ...
+    def descriptorString(self) -> str: ...
+    def displayName(self) -> str: ...
+    def equals(self, object: typing.Any) -> bool: ...
+    def isArray(self) -> bool: ...
+    def isClassOrInterface(self) -> bool: ...
+    def isPrimitive(self) -> bool: ...
+    @typing.overload
+    def nested(self, string: str) -> 'ClassDesc': ...
+    @typing.overload
+    def nested(self, string: str, *string2: str) -> 'ClassDesc': ...
+    @typing.overload
+    @staticmethod
+    def of(string: str) -> 'ClassDesc': ...
+    @typing.overload
+    @staticmethod
+    def of(string: str, string2: str) -> 'ClassDesc': ...
+    @staticmethod
+    def ofDescriptor(string: str) -> 'ClassDesc': ...
+    def packageName(self) -> str: ...
+
+_DynamicConstantDesc__T = typing.TypeVar('_DynamicConstantDesc__T')  # <T>
+class DynamicConstantDesc(ConstantDesc, typing.Generic[_DynamicConstantDesc__T]):
+    def bootstrapArgs(self) -> typing.MutableSequence[ConstantDesc]: ...
+    def bootstrapArgsList(self) -> java.util.List[ConstantDesc]: ...
+    def bootstrapMethod(self) -> 'DirectMethodHandleDesc': ...
+    def constantName(self) -> str: ...
+    def constantType(self) -> ClassDesc: ...
+    def equals(self, object: typing.Any) -> bool: ...
+    def hashCode(self) -> int: ...
+    _of_0__T = typing.TypeVar('_of_0__T')  # <T>
+    _of_1__T = typing.TypeVar('_of_1__T')  # <T>
+    @typing.overload
+    @staticmethod
+    def of(directMethodHandleDesc: 'DirectMethodHandleDesc') -> 'DynamicConstantDesc'[_of_0__T]: ...
+    @typing.overload
+    @staticmethod
+    def of(directMethodHandleDesc: 'DirectMethodHandleDesc', *constantDesc: ConstantDesc) -> 'DynamicConstantDesc'[_of_1__T]: ...
+    _ofCanonical__T = typing.TypeVar('_ofCanonical__T')  # <T>
+    @staticmethod
+    def ofCanonical(directMethodHandleDesc: 'DirectMethodHandleDesc', string: str, classDesc: ClassDesc, constantDescArray: typing.Union[typing.List[ConstantDesc], jpype.JArray]) -> ConstantDesc: ...
+    _ofNamed__T = typing.TypeVar('_ofNamed__T')  # <T>
+    @staticmethod
+    def ofNamed(directMethodHandleDesc: 'DirectMethodHandleDesc', string: str, classDesc: ClassDesc, *constantDesc: ConstantDesc) -> 'DynamicConstantDesc'[_ofNamed__T]: ...
+    def resolveConstantDesc(self, lookup: java.lang.invoke.MethodHandles.Lookup) -> _DynamicConstantDesc__T: ...
+    def toString(self) -> str: ...
+
+class MethodHandleDesc(ConstantDesc):
+    def asType(self, methodTypeDesc: 'MethodTypeDesc') -> 'MethodHandleDesc': ...
+    def equals(self, object: typing.Any) -> bool: ...
+    def invocationType(self) -> 'MethodTypeDesc': ...
+    @staticmethod
+    def of(kind: 'DirectMethodHandleDesc.Kind', classDesc: ClassDesc, string: str, string2: str) -> 'DirectMethodHandleDesc': ...
+    @staticmethod
+    def ofConstructor(classDesc: ClassDesc, *classDesc2: ClassDesc) -> 'DirectMethodHandleDesc': ...
+    @staticmethod
+    def ofField(kind: 'DirectMethodHandleDesc.Kind', classDesc: ClassDesc, string: str, classDesc2: ClassDesc) -> 'DirectMethodHandleDesc': ...
+    @staticmethod
+    def ofMethod(kind: 'DirectMethodHandleDesc.Kind', classDesc: ClassDesc, string: str, methodTypeDesc: 'MethodTypeDesc') -> 'DirectMethodHandleDesc': ...
+
+class MethodTypeDesc(ConstantDesc, java.lang.invoke.TypeDescriptor.OfMethod[ClassDesc, 'MethodTypeDesc']):
+    def changeParameterType(self, int: int, classDesc: ClassDesc) -> 'MethodTypeDesc': ...
+    def changeReturnType(self, classDesc: ClassDesc) -> 'MethodTypeDesc': ...
+    def descriptorString(self) -> str: ...
+    def displayDescriptor(self) -> str: ...
+    def dropParameterTypes(self, int: int, int2: int) -> 'MethodTypeDesc': ...
+    def equals(self, object: typing.Any) -> bool: ...
+    def insertParameterTypes(self, int: int, *classDesc: ClassDesc) -> 'MethodTypeDesc': ...
+    @staticmethod
+    def of(classDesc: ClassDesc, *classDesc2: ClassDesc) -> 'MethodTypeDesc': ...
+    @staticmethod
+    def ofDescriptor(string: str) -> 'MethodTypeDesc': ...
+    def parameterArray(self) -> typing.MutableSequence[ClassDesc]: ...
+    def parameterCount(self) -> int: ...
+    def parameterList(self) -> java.util.List[ClassDesc]: ...
+    def parameterType(self, int: int) -> ClassDesc: ...
+    def returnType(self) -> ClassDesc: ...
+
+class DirectMethodHandleDesc(MethodHandleDesc):
+    def equals(self, object: typing.Any) -> bool: ...
+    def isOwnerInterface(self) -> bool: ...
+    def kind(self) -> 'DirectMethodHandleDesc.Kind': ...
+    def lookupDescriptor(self) -> str: ...
+    def methodName(self) -> str: ...
+    def owner(self) -> ClassDesc: ...
+    def refKind(self) -> int: ...
+    class Kind(java.lang.Enum['DirectMethodHandleDesc.Kind']):
+        STATIC: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        INTERFACE_STATIC: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        VIRTUAL: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        INTERFACE_VIRTUAL: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        SPECIAL: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        INTERFACE_SPECIAL: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        CONSTRUCTOR: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        GETTER: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        SETTER: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        STATIC_GETTER: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        STATIC_SETTER: typing.ClassVar['DirectMethodHandleDesc.Kind'] = ...
+        refKind: int = ...
+        isInterface: bool = ...
+        _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+        @typing.overload
+        @staticmethod
+        def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+        @typing.overload
+        @staticmethod
+        def valueOf(int: int) -> 'DirectMethodHandleDesc.Kind': ...
+        @typing.overload
+        @staticmethod
+        def valueOf(int: int, boolean: bool) -> 'DirectMethodHandleDesc.Kind': ...
+        @typing.overload
+        @staticmethod
+        def valueOf(string: str) -> 'DirectMethodHandleDesc.Kind': ...
+        @staticmethod
+        def values() -> typing.MutableSequence['DirectMethodHandleDesc.Kind']: ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("java.lang.constant")``.
+
+    ClassDesc: typing.Type[ClassDesc]
+    Constable: typing.Type[Constable]
+    ConstantDesc: typing.Type[ConstantDesc]
+    ConstantDescs: typing.Type[ConstantDescs]
+    DirectMethodHandleDesc: typing.Type[DirectMethodHandleDesc]
+    DynamicCallSiteDesc: typing.Type[DynamicCallSiteDesc]
+    DynamicConstantDesc: typing.Type[DynamicConstantDesc]
+    MethodHandleDesc: typing.Type[MethodHandleDesc]
+    MethodTypeDesc: typing.Type[MethodTypeDesc]
diff --git a/java-stubs/lang/invoke/__init__.pyi b/java-stubs/lang/invoke/__init__.pyi
index cf67caf83f20d0119853a84345fac412dab600ce..b51db8dd3d7d25696609c2200b5a34822e6afb38 100644
--- a/java-stubs/lang/invoke/__init__.pyi
+++ b/java-stubs/lang/invoke/__init__.pyi
@@ -5,8 +5,10 @@ if sys.version_info >= (3, 8):
 else:
     from typing_extensions import Protocol
 
+import java
 import java.io
 import java.lang
+import java.lang.constant
 import java.lang.reflect
 import java.nio
 import java.util
@@ -22,13 +24,14 @@ class CallSite:
     def type(self) -> 'MethodType': ...
 
 class ConstantBootstraps:
-    def __init__(self): ...
     @staticmethod
     def arrayVarHandle(lookup: 'MethodHandles.Lookup', string: str, class_: typing.Type['VarHandle'], class2: typing.Type[typing.Any]) -> 'VarHandle': ...
     _enumConstant__E = typing.TypeVar('_enumConstant__E', bound=java.lang.Enum)  # <E>
     @staticmethod
     def enumConstant(lookup: 'MethodHandles.Lookup', string: str, class_: typing.Type[_enumConstant__E]) -> _enumConstant__E: ...
     @staticmethod
+    def explicitCast(lookup: 'MethodHandles.Lookup', string: str, class_: typing.Type[typing.Any], object: typing.Any) -> typing.Any: ...
+    @staticmethod
     def fieldVarHandle(lookup: 'MethodHandles.Lookup', string: str, class_: typing.Type['VarHandle'], class2: typing.Type[typing.Any], class3: typing.Type[typing.Any]) -> 'VarHandle': ...
     @typing.overload
     @staticmethod
@@ -66,7 +69,7 @@ class LambdaMetafactory:
     @staticmethod
     def metafactory(lookup: 'MethodHandles.Lookup', string: str, methodType: 'MethodType', methodType2: 'MethodType', methodHandle: 'MethodHandle', methodType3: 'MethodType') -> CallSite: ...
 
-class MethodHandle:
+class MethodHandle(java.lang.constant.Constable):
     @typing.overload
     def asCollector(self, int: int, class_: typing.Type[typing.Any], int2: int) -> 'MethodHandle': ...
     @typing.overload
@@ -79,6 +82,7 @@ class MethodHandle:
     def asType(self, methodType: 'MethodType') -> 'MethodHandle': ...
     def asVarargsCollector(self, class_: typing.Type[typing.Any]) -> 'MethodHandle': ...
     def bindTo(self, object: typing.Any) -> 'MethodHandle': ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.MethodHandleDesc]: ...
     def invoke(self, *object: typing.Any) -> typing.Any: ...
     def invokeExact(self, *object: typing.Any) -> typing.Any: ...
     @typing.overload
@@ -141,6 +145,12 @@ class MethodHandles:
     def byteBufferViewVarHandle(class_: typing.Type[typing.Any], byteOrder: java.nio.ByteOrder) -> 'VarHandle': ...
     @staticmethod
     def catchException(methodHandle: MethodHandle, class_: typing.Type[java.lang.Throwable], methodHandle2: MethodHandle) -> MethodHandle: ...
+    _classData__T = typing.TypeVar('_classData__T')  # <T>
+    @staticmethod
+    def classData(lookup: 'MethodHandles.Lookup', string: str, class_: typing.Type[_classData__T]) -> _classData__T: ...
+    _classDataAt__T = typing.TypeVar('_classDataAt__T')  # <T>
+    @staticmethod
+    def classDataAt(lookup: 'MethodHandles.Lookup', string: str, class_: typing.Type[_classDataAt__T], int: int) -> _classDataAt__T: ...
     @staticmethod
     def collectArguments(methodHandle: MethodHandle, int: int, methodHandle2: MethodHandle) -> MethodHandle: ...
     @staticmethod
@@ -162,6 +172,8 @@ class MethodHandles:
     @staticmethod
     def dropArgumentsToMatch(methodHandle: MethodHandle, int: int, list: java.util.List[typing.Type[typing.Any]], int2: int) -> MethodHandle: ...
     @staticmethod
+    def dropReturn(methodHandle: MethodHandle) -> MethodHandle: ...
+    @staticmethod
     def empty(methodType: 'MethodType') -> MethodHandle: ...
     @staticmethod
     def exactInvoker(methodType: 'MethodType') -> MethodHandle: ...
@@ -203,6 +215,8 @@ class MethodHandles:
     @staticmethod
     def spreadInvoker(methodType: 'MethodType', int: int) -> MethodHandle: ...
     @staticmethod
+    def tableSwitch(methodHandle: MethodHandle, *methodHandle2: MethodHandle) -> MethodHandle: ...
+    @staticmethod
     def throwException(class_: typing.Type[typing.Any], class2: typing.Type[java.lang.Throwable]) -> MethodHandle: ...
     @staticmethod
     def tryFinally(methodHandle: MethodHandle, methodHandle2: MethodHandle) -> MethodHandle: ...
@@ -221,10 +235,14 @@ class MethodHandles:
         PACKAGE: typing.ClassVar[int] = ...
         MODULE: typing.ClassVar[int] = ...
         UNCONDITIONAL: typing.ClassVar[int] = ...
+        ORIGINAL: typing.ClassVar[int] = ...
         def accessClass(self, class_: typing.Type[typing.Any]) -> typing.Type[typing.Any]: ...
         def bind(self, object: typing.Any, string: str, methodType: 'MethodType') -> MethodHandle: ...
         def defineClass(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> typing.Type[typing.Any]: ...
+        def defineHiddenClass(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], boolean: bool, *classOption: 'MethodHandles.Lookup.ClassOption') -> 'MethodHandles.Lookup': ...
+        def defineHiddenClassWithClassData(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], object: typing.Any, boolean: bool, *classOption: 'MethodHandles.Lookup.ClassOption') -> 'MethodHandles.Lookup': ...
         def dropLookupMode(self, int: int) -> 'MethodHandles.Lookup': ...
+        def ensureInitialized(self, class_: typing.Type[typing.Any]) -> typing.Type[typing.Any]: ...
         def findClass(self, string: str) -> typing.Type[typing.Any]: ...
         def findConstructor(self, class_: typing.Type[typing.Any], methodType: 'MethodType') -> MethodHandle: ...
         def findGetter(self, class_: typing.Type[typing.Any], string: str, class2: typing.Type[typing.Any]) -> MethodHandle: ...
@@ -236,10 +254,12 @@ class MethodHandles:
         def findStaticVarHandle(self, class_: typing.Type[typing.Any], string: str, class2: typing.Type[typing.Any]) -> 'VarHandle': ...
         def findVarHandle(self, class_: typing.Type[typing.Any], string: str, class2: typing.Type[typing.Any]) -> 'VarHandle': ...
         def findVirtual(self, class_: typing.Type[typing.Any], string: str, methodType: 'MethodType') -> MethodHandle: ...
+        def hasFullPrivilegeAccess(self) -> bool: ...
         def hasPrivateAccess(self) -> bool: ...
         def in_(self, class_: typing.Type[typing.Any]) -> 'MethodHandles.Lookup': ...
         def lookupClass(self) -> typing.Type[typing.Any]: ...
         def lookupModes(self) -> int: ...
+        def previousLookupClass(self) -> typing.Type[typing.Any]: ...
         def revealDirect(self, methodHandle: MethodHandle) -> MethodHandleInfo: ...
         def toString(self) -> str: ...
         def unreflect(self, method: java.lang.reflect.Method) -> MethodHandle: ...
@@ -248,61 +268,18 @@ class MethodHandles:
         def unreflectSetter(self, field: java.lang.reflect.Field) -> MethodHandle: ...
         def unreflectSpecial(self, method: java.lang.reflect.Method, class_: typing.Type[typing.Any]) -> MethodHandle: ...
         def unreflectVarHandle(self, field: java.lang.reflect.Field) -> 'VarHandle': ...
-
-class MethodType(java.io.Serializable):
-    @typing.overload
-    def appendParameterTypes(self, *class_: typing.Type[typing.Any]) -> 'MethodType': ...
-    @typing.overload
-    def appendParameterTypes(self, list: java.util.List[typing.Type[typing.Any]]) -> 'MethodType': ...
-    def changeParameterType(self, int: int, class_: typing.Type[typing.Any]) -> 'MethodType': ...
-    def changeReturnType(self, class_: typing.Type[typing.Any]) -> 'MethodType': ...
-    def dropParameterTypes(self, int: int, int2: int) -> 'MethodType': ...
-    def equals(self, object: typing.Any) -> bool: ...
-    def erase(self) -> 'MethodType': ...
-    @staticmethod
-    def fromMethodDescriptorString(string: str, classLoader: java.lang.ClassLoader) -> 'MethodType': ...
-    def generic(self) -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def genericMethodType(int: int) -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def genericMethodType(int: int, boolean: bool) -> 'MethodType': ...
-    def hasPrimitives(self) -> bool: ...
-    def hasWrappers(self) -> bool: ...
-    def hashCode(self) -> int: ...
-    @typing.overload
-    def insertParameterTypes(self, int: int, *class_: typing.Type[typing.Any]) -> 'MethodType': ...
-    @typing.overload
-    def insertParameterTypes(self, int: int, list: java.util.List[typing.Type[typing.Any]]) -> 'MethodType': ...
-    def lastParameterType(self) -> typing.Type[typing.Any]: ...
-    @typing.overload
-    @staticmethod
-    def methodType(class_: typing.Type[typing.Any]) -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def methodType(class_: typing.Type[typing.Any], class2: typing.Type[typing.Any]) -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def methodType(class_: typing.Type[typing.Any], class2: typing.Type[typing.Any], *class3: typing.Type[typing.Any]) -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def methodType(class_: typing.Type[typing.Any], classArray: typing.Union[typing.List[typing.Type[typing.Any]], jpype.JArray]) -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def methodType(class_: typing.Type[typing.Any], methodType: 'MethodType') -> 'MethodType': ...
-    @typing.overload
-    @staticmethod
-    def methodType(class_: typing.Type[typing.Any], list: java.util.List[typing.Type[typing.Any]]) -> 'MethodType': ...
-    def parameterArray(self) -> typing.MutableSequence[typing.Type[typing.Any]]: ...
-    def parameterCount(self) -> int: ...
-    def parameterList(self) -> java.util.List[typing.Type[typing.Any]]: ...
-    def parameterType(self, int: int) -> typing.Type[typing.Any]: ...
-    def returnType(self) -> typing.Type[typing.Any]: ...
-    def toMethodDescriptorString(self) -> str: ...
-    def toString(self) -> str: ...
-    def unwrap(self) -> 'MethodType': ...
-    def wrap(self) -> 'MethodType': ...
+        class ClassOption(java.lang.Enum['MethodHandles.Lookup.ClassOption']):
+            NESTMATE: typing.ClassVar['MethodHandles.Lookup.ClassOption'] = ...
+            STRONG: typing.ClassVar['MethodHandles.Lookup.ClassOption'] = ...
+            _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+            @typing.overload
+            @staticmethod
+            def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+            @typing.overload
+            @staticmethod
+            def valueOf(string: str) -> 'MethodHandles.Lookup.ClassOption': ...
+            @staticmethod
+            def values() -> typing.MutableSequence['MethodHandles.Lookup.ClassOption']: ...
 
 class SerializedLambda(java.io.Serializable):
     def __init__(self, class_: typing.Type[typing.Any], string: str, string2: str, string3: str, int: int, string4: str, string5: str, string6: str, string7: str, objectArray: typing.Union[typing.List[typing.Any], jpype.JArray]): ...
@@ -327,9 +304,9 @@ class StringConcatException(java.lang.Exception):
 
 class StringConcatFactory:
     @staticmethod
-    def makeConcat(lookup: MethodHandles.Lookup, string: str, methodType: MethodType) -> CallSite: ...
+    def makeConcat(lookup: MethodHandles.Lookup, string: str, methodType: 'MethodType') -> CallSite: ...
     @staticmethod
-    def makeConcatWithConstants(lookup: MethodHandles.Lookup, string: str, methodType: MethodType, string2: str, *object: typing.Any) -> CallSite: ...
+    def makeConcatWithConstants(lookup: MethodHandles.Lookup, string: str, methodType: 'MethodType', string2: str, *object: typing.Any) -> CallSite: ...
 
 class SwitchPoint:
     def __init__(self): ...
@@ -338,8 +315,11 @@ class SwitchPoint:
     @staticmethod
     def invalidateAll(switchPointArray: typing.Union[typing.List['SwitchPoint'], jpype.JArray]) -> None: ...
 
-class VarHandle:
-    def accessModeType(self, accessMode: 'VarHandle.AccessMode') -> MethodType: ...
+class TypeDescriptor:
+    def descriptorString(self) -> str: ...
+
+class VarHandle(java.lang.constant.Constable):
+    def accessModeType(self, accessMode: 'VarHandle.AccessMode') -> 'MethodType': ...
     @staticmethod
     def acquireFence() -> None: ...
     def compareAndExchange(self, *object: typing.Any) -> typing.Any: ...
@@ -347,6 +327,7 @@ class VarHandle:
     def compareAndExchangeRelease(self, *object: typing.Any) -> typing.Any: ...
     def compareAndSet(self, *object: typing.Any) -> bool: ...
     def coordinateTypes(self) -> java.util.List[typing.Type[typing.Any]]: ...
+    def describeConstable(self) -> java.util.Optional['VarHandle.VarHandleDesc']: ...
     @staticmethod
     def fullFence() -> None: ...
     def get(self, *object: typing.Any) -> typing.Any: ...
@@ -368,6 +349,7 @@ class VarHandle:
     def getAndSetRelease(self, *object: typing.Any) -> typing.Any: ...
     def getOpaque(self, *object: typing.Any) -> typing.Any: ...
     def getVolatile(self, *object: typing.Any) -> typing.Any: ...
+    def hasInvokeExactBehavior(self) -> bool: ...
     def isAccessModeSupported(self, accessMode: 'VarHandle.AccessMode') -> bool: ...
     @staticmethod
     def loadLoadFence() -> None: ...
@@ -380,11 +362,14 @@ class VarHandle:
     @staticmethod
     def storeStoreFence() -> None: ...
     def toMethodHandle(self, accessMode: 'VarHandle.AccessMode') -> MethodHandle: ...
+    def toString(self) -> str: ...
     def varType(self) -> typing.Type[typing.Any]: ...
     def weakCompareAndSet(self, *object: typing.Any) -> bool: ...
     def weakCompareAndSetAcquire(self, *object: typing.Any) -> bool: ...
     def weakCompareAndSetPlain(self, *object: typing.Any) -> bool: ...
     def weakCompareAndSetRelease(self, *object: typing.Any) -> bool: ...
+    def withInvokeBehavior(self) -> 'VarHandle': ...
+    def withInvokeExactBehavior(self) -> 'VarHandle': ...
     class AccessMode(java.lang.Enum['VarHandle.AccessMode']):
         GET: typing.ClassVar['VarHandle.AccessMode'] = ...
         SET: typing.ClassVar['VarHandle.AccessMode'] = ...
@@ -429,6 +414,16 @@ class VarHandle:
         def valueOf(string: str) -> 'VarHandle.AccessMode': ...
         @staticmethod
         def values() -> typing.MutableSequence['VarHandle.AccessMode']: ...
+    class VarHandleDesc(java.lang.constant.DynamicConstantDesc['VarHandle']):
+        @staticmethod
+        def ofArray(classDesc: java.lang.constant.ClassDesc) -> 'VarHandle.VarHandleDesc': ...
+        @staticmethod
+        def ofField(classDesc: java.lang.constant.ClassDesc, string: str, classDesc2: java.lang.constant.ClassDesc) -> 'VarHandle.VarHandleDesc': ...
+        @staticmethod
+        def ofStaticField(classDesc: java.lang.constant.ClassDesc, string: str, classDesc2: java.lang.constant.ClassDesc) -> 'VarHandle.VarHandleDesc': ...
+        def resolveConstantDesc(self, lookup: MethodHandles.Lookup) -> 'VarHandle': ...
+        def toString(self) -> str: ...
+        def varType(self) -> java.lang.constant.ClassDesc: ...
 
 class WrongMethodTypeException(java.lang.RuntimeException):
     @typing.overload
@@ -446,7 +441,7 @@ class MutableCallSite(CallSite):
     @typing.overload
     def __init__(self, methodHandle: MethodHandle): ...
     @typing.overload
-    def __init__(self, methodType: MethodType): ...
+    def __init__(self, methodType: 'MethodType'): ...
     def dynamicInvoker(self) -> MethodHandle: ...
     def getTarget(self) -> MethodHandle: ...
     def setTarget(self, methodHandle: MethodHandle) -> None: ...
@@ -457,11 +452,68 @@ class VolatileCallSite(CallSite):
     @typing.overload
     def __init__(self, methodHandle: MethodHandle): ...
     @typing.overload
-    def __init__(self, methodType: MethodType): ...
+    def __init__(self, methodType: 'MethodType'): ...
     def dynamicInvoker(self) -> MethodHandle: ...
     def getTarget(self) -> MethodHandle: ...
     def setTarget(self, methodHandle: MethodHandle) -> None: ...
 
+class MethodType(java.lang.constant.Constable, java.lang.invoke.TypeDescriptor.OfMethod[typing.Type[typing.Any], 'MethodType'], java.io.Serializable):
+    @typing.overload
+    def appendParameterTypes(self, *class_: typing.Type[typing.Any]) -> 'MethodType': ...
+    @typing.overload
+    def appendParameterTypes(self, list: java.util.List[typing.Type[typing.Any]]) -> 'MethodType': ...
+    def changeParameterType(self, int: int, class_: typing.Type[typing.Any]) -> 'MethodType': ...
+    def changeReturnType(self, class_: typing.Type[typing.Any]) -> 'MethodType': ...
+    def describeConstable(self) -> java.util.Optional[java.lang.constant.MethodTypeDesc]: ...
+    def descriptorString(self) -> str: ...
+    def dropParameterTypes(self, int: int, int2: int) -> 'MethodType': ...
+    def equals(self, object: typing.Any) -> bool: ...
+    def erase(self) -> 'MethodType': ...
+    @staticmethod
+    def fromMethodDescriptorString(string: str, classLoader: java.lang.ClassLoader) -> 'MethodType': ...
+    def generic(self) -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def genericMethodType(int: int) -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def genericMethodType(int: int, boolean: bool) -> 'MethodType': ...
+    def hasPrimitives(self) -> bool: ...
+    def hasWrappers(self) -> bool: ...
+    def hashCode(self) -> int: ...
+    @typing.overload
+    def insertParameterTypes(self, int: int, *class_: typing.Type[typing.Any]) -> 'MethodType': ...
+    @typing.overload
+    def insertParameterTypes(self, int: int, list: java.util.List[typing.Type[typing.Any]]) -> 'MethodType': ...
+    def lastParameterType(self) -> typing.Type[typing.Any]: ...
+    @typing.overload
+    @staticmethod
+    def methodType(class_: typing.Type[typing.Any]) -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def methodType(class_: typing.Type[typing.Any], class2: typing.Type[typing.Any]) -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def methodType(class_: typing.Type[typing.Any], class2: typing.Type[typing.Any], *class3: typing.Type[typing.Any]) -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def methodType(class_: typing.Type[typing.Any], classArray: typing.Union[typing.List[typing.Type[typing.Any]], jpype.JArray]) -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def methodType(class_: typing.Type[typing.Any], methodType: 'MethodType') -> 'MethodType': ...
+    @typing.overload
+    @staticmethod
+    def methodType(class_: typing.Type[typing.Any], list: java.util.List[typing.Type[typing.Any]]) -> 'MethodType': ...
+    def parameterArray(self) -> typing.MutableSequence[typing.Type[typing.Any]]: ...
+    def parameterCount(self) -> int: ...
+    def parameterList(self) -> java.util.List[typing.Type[typing.Any]]: ...
+    def parameterType(self, int: int) -> typing.Type[typing.Any]: ...
+    def returnType(self) -> typing.Type[typing.Any]: ...
+    def toMethodDescriptorString(self) -> str: ...
+    def toString(self) -> str: ...
+    def unwrap(self) -> 'MethodType': ...
+    def wrap(self) -> 'MethodType': ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("java.lang.invoke")``.
@@ -481,6 +533,7 @@ class __module_protocol__(Protocol):
     StringConcatException: typing.Type[StringConcatException]
     StringConcatFactory: typing.Type[StringConcatFactory]
     SwitchPoint: typing.Type[SwitchPoint]
+    TypeDescriptor: typing.Type[TypeDescriptor]
     VarHandle: typing.Type[VarHandle]
     VolatileCallSite: typing.Type[VolatileCallSite]
     WrongMethodTypeException: typing.Type[WrongMethodTypeException]
diff --git a/java-stubs/lang/ref/__init__.pyi b/java-stubs/lang/ref/__init__.pyi
index e94b5f2cd39cacc8d7a31dc97543d1ff02e807da..459fae2cf2d2962ca8dd06512052670f41f4b2e4 100644
--- a/java-stubs/lang/ref/__init__.pyi
+++ b/java-stubs/lang/ref/__init__.pyi
@@ -30,6 +30,7 @@ class Reference(typing.Generic[_Reference__T]):
     def isEnqueued(self) -> bool: ...
     @staticmethod
     def reachabilityFence(object: typing.Any) -> None: ...
+    def refersTo(self, t: _Reference__T) -> bool: ...
 
 _ReferenceQueue__T = typing.TypeVar('_ReferenceQueue__T')  # <T>
 class ReferenceQueue(typing.Generic[_ReferenceQueue__T]):
diff --git a/java-stubs/lang/reflect/__init__.pyi b/java-stubs/lang/reflect/__init__.pyi
index 67a3cb83dc287e10e2ed42c65a69f2f0c7885be9..e1dc934d5e82b194d8e12e0056fbde7f930be226 100644
--- a/java-stubs/lang/reflect/__init__.pyi
+++ b/java-stubs/lang/reflect/__init__.pyi
@@ -87,6 +87,8 @@ class InaccessibleObjectException(java.lang.RuntimeException):
 
 class InvocationHandler:
     def invoke(self, object: typing.Any, method: 'Method', objectArray: typing.Union[typing.List[typing.Any], jpype.JArray]) -> typing.Any: ...
+    @staticmethod
+    def invokeDefault(object: typing.Any, method: 'Method', *object2: typing.Any) -> typing.Any: ...
 
 class InvocationTargetException(java.lang.ReflectiveOperationException):
     @typing.overload
@@ -129,7 +131,6 @@ class Modifier:
     INTERFACE: typing.ClassVar[int] = ...
     ABSTRACT: typing.ClassVar[int] = ...
     STRICT: typing.ClassVar[int] = ...
-    def __init__(self): ...
     @staticmethod
     def classModifiers() -> int: ...
     @staticmethod
@@ -196,7 +197,6 @@ class UndeclaredThrowableException(java.lang.RuntimeException):
     def __init__(self, throwable: java.lang.Throwable): ...
     @typing.overload
     def __init__(self, throwable: java.lang.Throwable, string: str): ...
-    def getCause(self) -> java.lang.Throwable: ...
     def getUndeclaredThrowable(self) -> java.lang.Throwable: ...
 
 class AccessibleObject(AnnotatedElement):
@@ -222,6 +222,10 @@ class AccessibleObject(AnnotatedElement):
 
 class AnnotatedType(AnnotatedElement):
     def getAnnotatedOwnerType(self) -> 'AnnotatedType': ...
+    _getAnnotation__T = typing.TypeVar('_getAnnotation__T', bound=java.lang.annotation.Annotation)  # <T>
+    def getAnnotation(self, class_: typing.Type[_getAnnotation__T]) -> _getAnnotation__T: ...
+    def getAnnotations(self) -> typing.MutableSequence[java.lang.annotation.Annotation]: ...
+    def getDeclaredAnnotations(self) -> typing.MutableSequence[java.lang.annotation.Annotation]: ...
     def getType(self) -> Type: ...
 
 class GenericArrayType(Type):
@@ -260,6 +264,20 @@ class ParameterizedType(Type):
     def getOwnerType(self) -> Type: ...
     def getRawType(self) -> Type: ...
 
+class RecordComponent(AnnotatedElement):
+    def getAccessor(self) -> 'Method': ...
+    def getAnnotatedType(self) -> AnnotatedType: ...
+    _getAnnotation__T = typing.TypeVar('_getAnnotation__T', bound=java.lang.annotation.Annotation)  # <T>
+    def getAnnotation(self, class_: typing.Type[_getAnnotation__T]) -> _getAnnotation__T: ...
+    def getAnnotations(self) -> typing.MutableSequence[java.lang.annotation.Annotation]: ...
+    def getDeclaredAnnotations(self) -> typing.MutableSequence[java.lang.annotation.Annotation]: ...
+    def getDeclaringRecord(self) -> typing.Type[typing.Any]: ...
+    def getGenericSignature(self) -> str: ...
+    def getGenericType(self) -> Type: ...
+    def getName(self) -> str: ...
+    def getType(self) -> typing.Type[typing.Any]: ...
+    def toString(self) -> str: ...
+
 _TypeVariable__D = typing.TypeVar('_TypeVariable__D', bound=GenericDeclaration)  # <D>
 class TypeVariable(Type, AnnotatedElement, typing.Generic[_TypeVariable__D]):
     def getAnnotatedBounds(self) -> typing.MutableSequence[AnnotatedType]: ...
@@ -447,6 +465,7 @@ class __module_protocol__(Protocol):
     Parameter: typing.Type[Parameter]
     ParameterizedType: typing.Type[ParameterizedType]
     Proxy: typing.Type[Proxy]
+    RecordComponent: typing.Type[RecordComponent]
     ReflectPermission: typing.Type[ReflectPermission]
     Type: typing.Type[Type]
     TypeVariable: typing.Type[TypeVariable]
diff --git a/java-stubs/lang/runtime/__init__.pyi b/java-stubs/lang/runtime/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..f860a22d63420ffdbfa258fcbedf5dd4e12a62a9
--- /dev/null
+++ b/java-stubs/lang/runtime/__init__.pyi
@@ -0,0 +1,28 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import java.lang.invoke
+import typing
+
+
+
+class ObjectMethods:
+    @staticmethod
+    def bootstrap(lookup: java.lang.invoke.MethodHandles.Lookup, string: str, typeDescriptor: typing.Union[java.lang.invoke.TypeDescriptor, typing.Callable], class_: typing.Type[typing.Any], string2: str, *methodHandle: java.lang.invoke.MethodHandle) -> typing.Any: ...
+
+class SwitchBootstraps:
+    @staticmethod
+    def enumSwitch(lookup: java.lang.invoke.MethodHandles.Lookup, string: str, methodType: java.lang.invoke.MethodType, *object: typing.Any) -> java.lang.invoke.CallSite: ...
+    @staticmethod
+    def typeSwitch(lookup: java.lang.invoke.MethodHandles.Lookup, string: str, methodType: java.lang.invoke.MethodType, *object: typing.Any) -> java.lang.invoke.CallSite: ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("java.lang.runtime")``.
+
+    ObjectMethods: typing.Type[ObjectMethods]
+    SwitchBootstraps: typing.Type[SwitchBootstraps]
diff --git a/java-stubs/net/__init__.pyi b/java-stubs/net/__init__.pyi
index 140ac8ca993b9219ee3c466c6fc816a7beb2329e..38a0b63f0fa492565dcdd9f6c172b51607ec7468 100644
--- a/java-stubs/net/__init__.pyi
+++ b/java-stubs/net/__init__.pyi
@@ -11,12 +11,15 @@ import java.net.http
 import java.net.spi
 import java.nio.channels
 import java.nio.charset
+import java.nio.file
 import java.security
 import java.security.cert
 import java.util
 import java.util.jar
 import java.util.stream
+import javax.net.ssl
 import jpype
+import jpype.protocol
 import typing
 
 
@@ -158,6 +161,8 @@ class DatagramSocket(java.io.Closeable):
     def isBound(self) -> bool: ...
     def isClosed(self) -> bool: ...
     def isConnected(self) -> bool: ...
+    def joinGroup(self, socketAddress: 'SocketAddress', networkInterface: 'NetworkInterface') -> None: ...
+    def leaveGroup(self, socketAddress: 'SocketAddress', networkInterface: 'NetworkInterface') -> None: ...
     def receive(self, datagramPacket: DatagramPacket) -> None: ...
     def send(self, datagramPacket: DatagramPacket) -> None: ...
     def setBroadcast(self, boolean: bool) -> None: ...
@@ -744,7 +749,6 @@ class URLConnection:
     def toString(self) -> str: ...
 
 class URLDecoder:
-    def __init__(self): ...
     @typing.overload
     @staticmethod
     def decode(string: str) -> str: ...
@@ -987,7 +991,6 @@ class MulticastSocket(DatagramSocket):
     def setNetworkInterface(self, networkInterface: NetworkInterface) -> None: ...
     def setTTL(self, byte: int) -> None: ...
     def setTimeToLive(self, int: int) -> None: ...
-    def supportedOptions(self) -> java.util.Set[SocketOption[typing.Any]]: ...
 
 class NoRouteToHostException(SocketException):
     @typing.overload
@@ -1007,6 +1010,7 @@ class SecureCacheResponse(CacheResponse):
     def getLocalCertificateChain(self) -> java.util.List[java.security.cert.Certificate]: ...
     def getLocalPrincipal(self) -> java.security.Principal: ...
     def getPeerPrincipal(self) -> java.security.Principal: ...
+    def getSSLSession(self) -> java.util.Optional[javax.net.ssl.SSLSession]: ...
     def getServerCertificateChain(self) -> java.util.List[java.security.cert.Certificate]: ...
 
 class SocketImpl(SocketOptions):
@@ -1016,6 +1020,7 @@ class SocketImpl(SocketOptions):
 class StandardProtocolFamily(java.lang.Enum['StandardProtocolFamily'], ProtocolFamily):
     INET: typing.ClassVar['StandardProtocolFamily'] = ...
     INET6: typing.ClassVar['StandardProtocolFamily'] = ...
+    UNIX: typing.ClassVar['StandardProtocolFamily'] = ...
     _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
     @typing.overload
     @staticmethod
@@ -1026,6 +1031,18 @@ class StandardProtocolFamily(java.lang.Enum['StandardProtocolFamily'], ProtocolF
     @staticmethod
     def values() -> typing.MutableSequence['StandardProtocolFamily']: ...
 
+class UnixDomainSocketAddress(SocketAddress):
+    def equals(self, object: typing.Any) -> bool: ...
+    def getPath(self) -> java.nio.file.Path: ...
+    def hashCode(self) -> int: ...
+    @typing.overload
+    @staticmethod
+    def of(string: str) -> 'UnixDomainSocketAddress': ...
+    @typing.overload
+    @staticmethod
+    def of(path: typing.Union[java.nio.file.Path, jpype.protocol.SupportsPath]) -> 'UnixDomainSocketAddress': ...
+    def toString(self) -> str: ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("java.net")``.
@@ -1091,6 +1108,7 @@ class __module_protocol__(Protocol):
     URLPermission: typing.Type[URLPermission]
     URLStreamHandler: typing.Type[URLStreamHandler]
     URLStreamHandlerFactory: typing.Type[URLStreamHandlerFactory]
+    UnixDomainSocketAddress: typing.Type[UnixDomainSocketAddress]
     UnknownHostException: typing.Type[UnknownHostException]
     UnknownServiceException: typing.Type[UnknownServiceException]
     http: java.net.http.__module_protocol__
diff --git a/java-stubs/net/http/__init__.pyi b/java-stubs/net/http/__init__.pyi
index bcc69120b102ade537303227fdd6947e34c09bf4..eb93bcadde69930485bead8100a5ff4c663b2814 100644
--- a/java-stubs/net/http/__init__.pyi
+++ b/java-stubs/net/http/__init__.pyi
@@ -109,12 +109,17 @@ class HttpRequest:
     @typing.overload
     @staticmethod
     def newBuilder(uRI: java.net.URI) -> 'HttpRequest.Builder': ...
+    @typing.overload
+    @staticmethod
+    def newBuilder(httpRequest: 'HttpRequest', biPredicate: typing.Union[java.util.function.BiPredicate[str, str], typing.Callable[[str, str], bool]]) -> 'HttpRequest.Builder': ...
     def timeout(self) -> java.util.Optional[java.time.Duration]: ...
     def uri(self) -> java.net.URI: ...
     def version(self) -> java.util.Optional[HttpClient.Version]: ...
     class BodyPublisher(java.util.concurrent.Flow.Publisher[java.nio.ByteBuffer]):
         def contentLength(self) -> int: ...
     class BodyPublishers:
+        @staticmethod
+        def concat(*bodyPublisher: 'HttpRequest.BodyPublisher') -> 'HttpRequest.BodyPublisher': ...
         @typing.overload
         @staticmethod
         def fromPublisher(publisher: typing.Union[java.util.concurrent.Flow.Publisher[java.nio.ByteBuffer], typing.Callable[[java.util.concurrent.Flow.Subscriber[typing.Any]], None]]) -> 'HttpRequest.BodyPublisher': ...
diff --git a/java-stubs/nio/__init__.pyi b/java-stubs/nio/__init__.pyi
index 08f8cdd67b5490d7bf9d03cd957b54fcbcbc980c..7450d8174fc992f1329922d94ac9c364b8a9d9d7 100644
--- a/java-stubs/nio/__init__.pyi
+++ b/java-stubs/nio/__init__.pyi
@@ -38,7 +38,10 @@ class Buffer:
     def remaining(self) -> int: ...
     def reset(self) -> 'Buffer': ...
     def rewind(self) -> 'Buffer': ...
+    @typing.overload
     def slice(self) -> 'Buffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'Buffer': ...
 
 class BufferOverflowException(java.lang.RuntimeException):
     def __init__(self): ...
@@ -90,6 +93,10 @@ class ByteBuffer(Buffer, java.lang.Comparable['ByteBuffer']):
     @typing.overload
     def get(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> 'ByteBuffer': ...
     @typing.overload
+    def get(self, int: int, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> 'ByteBuffer': ...
+    @typing.overload
+    def get(self, int: int, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int2: int, int3: int) -> 'ByteBuffer': ...
+    @typing.overload
     def getChar(self) -> str: ...
     @typing.overload
     def getChar(self, int: int) -> str: ...
@@ -139,6 +146,12 @@ class ByteBuffer(Buffer, java.lang.Comparable['ByteBuffer']):
     @typing.overload
     def put(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> 'ByteBuffer': ...
     @typing.overload
+    def put(self, int: int, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> 'ByteBuffer': ...
+    @typing.overload
+    def put(self, int: int, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int2: int, int3: int) -> 'ByteBuffer': ...
+    @typing.overload
+    def put(self, int: int, byteBuffer: 'ByteBuffer', int2: int, int3: int) -> 'ByteBuffer': ...
+    @typing.overload
     def put(self, byteBuffer: 'ByteBuffer') -> 'ByteBuffer': ...
     @typing.overload
     def putChar(self, char: str) -> 'ByteBuffer': ...
@@ -166,7 +179,10 @@ class ByteBuffer(Buffer, java.lang.Comparable['ByteBuffer']):
     def putShort(self, short: int) -> 'ByteBuffer': ...
     def reset(self) -> 'ByteBuffer': ...
     def rewind(self) -> 'ByteBuffer': ...
+    @typing.overload
     def slice(self) -> 'ByteBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'ByteBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -203,9 +219,14 @@ class CharBuffer(Buffer, java.lang.Comparable['CharBuffer'], java.lang.Appendabl
     def get(self, charArray: typing.Union[typing.List[str], jpype.JArray]) -> 'CharBuffer': ...
     @typing.overload
     def get(self, charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> 'CharBuffer': ...
+    @typing.overload
+    def get(self, int: int, charArray: typing.Union[typing.List[str], jpype.JArray]) -> 'CharBuffer': ...
+    @typing.overload
+    def get(self, int: int, charArray: typing.Union[typing.List[str], jpype.JArray], int2: int, int3: int) -> 'CharBuffer': ...
     def hasArray(self) -> bool: ...
     def hashCode(self) -> int: ...
     def isDirect(self) -> bool: ...
+    def isEmpty(self) -> bool: ...
     def length(self) -> int: ...
     @typing.overload
     def limit(self) -> int: ...
@@ -229,13 +250,22 @@ class CharBuffer(Buffer, java.lang.Comparable['CharBuffer'], java.lang.Appendabl
     @typing.overload
     def put(self, charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> 'CharBuffer': ...
     @typing.overload
+    def put(self, int: int, charArray: typing.Union[typing.List[str], jpype.JArray]) -> 'CharBuffer': ...
+    @typing.overload
+    def put(self, int: int, charArray: typing.Union[typing.List[str], jpype.JArray], int2: int, int3: int) -> 'CharBuffer': ...
+    @typing.overload
+    def put(self, int: int, charBuffer: 'CharBuffer', int2: int, int3: int) -> 'CharBuffer': ...
+    @typing.overload
     def put(self, string: str, int: int, int2: int) -> 'CharBuffer': ...
     @typing.overload
     def put(self, charBuffer: 'CharBuffer') -> 'CharBuffer': ...
     def read(self, charBuffer: 'CharBuffer') -> int: ...
     def reset(self) -> 'CharBuffer': ...
     def rewind(self) -> 'CharBuffer': ...
+    @typing.overload
     def slice(self) -> 'CharBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'CharBuffer': ...
     def subSequence(self, int: int, int2: int) -> 'CharBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
@@ -271,6 +301,10 @@ class DoubleBuffer(Buffer, java.lang.Comparable['DoubleBuffer']):
     def get(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> 'DoubleBuffer': ...
     @typing.overload
     def get(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], int: int, int2: int) -> 'DoubleBuffer': ...
+    @typing.overload
+    def get(self, int: int, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> 'DoubleBuffer': ...
+    @typing.overload
+    def get(self, int: int, doubleArray: typing.Union[typing.List[float], jpype.JArray], int2: int, int3: int) -> 'DoubleBuffer': ...
     def hasArray(self) -> bool: ...
     def hashCode(self) -> int: ...
     def isDirect(self) -> bool: ...
@@ -294,10 +328,19 @@ class DoubleBuffer(Buffer, java.lang.Comparable['DoubleBuffer']):
     @typing.overload
     def put(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], int: int, int2: int) -> 'DoubleBuffer': ...
     @typing.overload
+    def put(self, int: int, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> 'DoubleBuffer': ...
+    @typing.overload
+    def put(self, int: int, doubleArray: typing.Union[typing.List[float], jpype.JArray], int2: int, int3: int) -> 'DoubleBuffer': ...
+    @typing.overload
+    def put(self, int: int, doubleBuffer: 'DoubleBuffer', int2: int, int3: int) -> 'DoubleBuffer': ...
+    @typing.overload
     def put(self, doubleBuffer: 'DoubleBuffer') -> 'DoubleBuffer': ...
     def reset(self) -> 'DoubleBuffer': ...
     def rewind(self) -> 'DoubleBuffer': ...
+    @typing.overload
     def slice(self) -> 'DoubleBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'DoubleBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -326,6 +369,10 @@ class FloatBuffer(Buffer, java.lang.Comparable['FloatBuffer']):
     def get(self, floatArray: typing.Union[typing.List[float], jpype.JArray]) -> 'FloatBuffer': ...
     @typing.overload
     def get(self, floatArray: typing.Union[typing.List[float], jpype.JArray], int: int, int2: int) -> 'FloatBuffer': ...
+    @typing.overload
+    def get(self, int: int, floatArray: typing.Union[typing.List[float], jpype.JArray]) -> 'FloatBuffer': ...
+    @typing.overload
+    def get(self, int: int, floatArray: typing.Union[typing.List[float], jpype.JArray], int2: int, int3: int) -> 'FloatBuffer': ...
     def hasArray(self) -> bool: ...
     def hashCode(self) -> int: ...
     def isDirect(self) -> bool: ...
@@ -349,10 +396,19 @@ class FloatBuffer(Buffer, java.lang.Comparable['FloatBuffer']):
     @typing.overload
     def put(self, floatArray: typing.Union[typing.List[float], jpype.JArray], int: int, int2: int) -> 'FloatBuffer': ...
     @typing.overload
+    def put(self, int: int, floatArray: typing.Union[typing.List[float], jpype.JArray]) -> 'FloatBuffer': ...
+    @typing.overload
+    def put(self, int: int, floatArray: typing.Union[typing.List[float], jpype.JArray], int2: int, int3: int) -> 'FloatBuffer': ...
+    @typing.overload
+    def put(self, int: int, floatBuffer: 'FloatBuffer', int2: int, int3: int) -> 'FloatBuffer': ...
+    @typing.overload
     def put(self, floatBuffer: 'FloatBuffer') -> 'FloatBuffer': ...
     def reset(self) -> 'FloatBuffer': ...
     def rewind(self) -> 'FloatBuffer': ...
+    @typing.overload
     def slice(self) -> 'FloatBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'FloatBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -378,6 +434,10 @@ class IntBuffer(Buffer, java.lang.Comparable['IntBuffer']):
     @typing.overload
     def get(self, int: int) -> int: ...
     @typing.overload
+    def get(self, int: int, intArray: typing.Union[typing.List[int], jpype.JArray]) -> 'IntBuffer': ...
+    @typing.overload
+    def get(self, int: int, intArray: typing.Union[typing.List[int], jpype.JArray], int3: int, int4: int) -> 'IntBuffer': ...
+    @typing.overload
     def get(self, intArray: typing.Union[typing.List[int], jpype.JArray]) -> 'IntBuffer': ...
     @typing.overload
     def get(self, intArray: typing.Union[typing.List[int], jpype.JArray], int2: int, int3: int) -> 'IntBuffer': ...
@@ -402,12 +462,21 @@ class IntBuffer(Buffer, java.lang.Comparable['IntBuffer']):
     @typing.overload
     def put(self, intArray: typing.Union[typing.List[int], jpype.JArray]) -> 'IntBuffer': ...
     @typing.overload
+    def put(self, int: int, intArray: typing.Union[typing.List[int], jpype.JArray]) -> 'IntBuffer': ...
+    @typing.overload
+    def put(self, int: int, intArray: typing.Union[typing.List[int], jpype.JArray], int3: int, int4: int) -> 'IntBuffer': ...
+    @typing.overload
+    def put(self, int: int, intBuffer: 'IntBuffer', int3: int, int4: int) -> 'IntBuffer': ...
+    @typing.overload
     def put(self, intArray: typing.Union[typing.List[int], jpype.JArray], int2: int, int3: int) -> 'IntBuffer': ...
     @typing.overload
     def put(self, intBuffer: 'IntBuffer') -> 'IntBuffer': ...
     def reset(self) -> 'IntBuffer': ...
     def rewind(self) -> 'IntBuffer': ...
+    @typing.overload
     def slice(self) -> 'IntBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'IntBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -433,6 +502,10 @@ class LongBuffer(Buffer, java.lang.Comparable['LongBuffer']):
     @typing.overload
     def get(self, int: int) -> int: ...
     @typing.overload
+    def get(self, int: int, longArray: typing.Union[typing.List[int], jpype.JArray]) -> 'LongBuffer': ...
+    @typing.overload
+    def get(self, int: int, longArray: typing.Union[typing.List[int], jpype.JArray], int2: int, int3: int) -> 'LongBuffer': ...
+    @typing.overload
     def get(self, longArray: typing.Union[typing.List[int], jpype.JArray]) -> 'LongBuffer': ...
     @typing.overload
     def get(self, longArray: typing.Union[typing.List[int], jpype.JArray], int: int, int2: int) -> 'LongBuffer': ...
@@ -457,12 +530,21 @@ class LongBuffer(Buffer, java.lang.Comparable['LongBuffer']):
     @typing.overload
     def put(self, longArray: typing.Union[typing.List[int], jpype.JArray]) -> 'LongBuffer': ...
     @typing.overload
+    def put(self, int: int, longBuffer: 'LongBuffer', int2: int, int3: int) -> 'LongBuffer': ...
+    @typing.overload
+    def put(self, int: int, longArray: typing.Union[typing.List[int], jpype.JArray]) -> 'LongBuffer': ...
+    @typing.overload
+    def put(self, int: int, longArray: typing.Union[typing.List[int], jpype.JArray], int2: int, int3: int) -> 'LongBuffer': ...
+    @typing.overload
     def put(self, longBuffer: 'LongBuffer') -> 'LongBuffer': ...
     @typing.overload
     def put(self, longArray: typing.Union[typing.List[int], jpype.JArray], int: int, int2: int) -> 'LongBuffer': ...
     def reset(self) -> 'LongBuffer': ...
     def rewind(self) -> 'LongBuffer': ...
+    @typing.overload
     def slice(self) -> 'LongBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'LongBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -488,6 +570,10 @@ class ShortBuffer(Buffer, java.lang.Comparable['ShortBuffer']):
     @typing.overload
     def get(self, int: int) -> int: ...
     @typing.overload
+    def get(self, int: int, shortArray: typing.Union[typing.List[int], jpype.JArray]) -> 'ShortBuffer': ...
+    @typing.overload
+    def get(self, int: int, shortArray: typing.Union[typing.List[int], jpype.JArray], int2: int, int3: int) -> 'ShortBuffer': ...
+    @typing.overload
     def get(self, shortArray: typing.Union[typing.List[int], jpype.JArray]) -> 'ShortBuffer': ...
     @typing.overload
     def get(self, shortArray: typing.Union[typing.List[int], jpype.JArray], int: int, int2: int) -> 'ShortBuffer': ...
@@ -512,12 +598,21 @@ class ShortBuffer(Buffer, java.lang.Comparable['ShortBuffer']):
     @typing.overload
     def put(self, shortArray: typing.Union[typing.List[int], jpype.JArray]) -> 'ShortBuffer': ...
     @typing.overload
+    def put(self, int: int, shortBuffer: 'ShortBuffer', int2: int, int3: int) -> 'ShortBuffer': ...
+    @typing.overload
+    def put(self, int: int, shortArray: typing.Union[typing.List[int], jpype.JArray]) -> 'ShortBuffer': ...
+    @typing.overload
+    def put(self, int: int, shortArray: typing.Union[typing.List[int], jpype.JArray], int2: int, int3: int) -> 'ShortBuffer': ...
+    @typing.overload
     def put(self, shortBuffer: 'ShortBuffer') -> 'ShortBuffer': ...
     @typing.overload
     def put(self, shortArray: typing.Union[typing.List[int], jpype.JArray], int: int, int2: int) -> 'ShortBuffer': ...
     def reset(self) -> 'ShortBuffer': ...
     def rewind(self) -> 'ShortBuffer': ...
+    @typing.overload
     def slice(self) -> 'ShortBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'ShortBuffer': ...
     def toString(self) -> str: ...
     @typing.overload
     @staticmethod
@@ -528,8 +623,13 @@ class ShortBuffer(Buffer, java.lang.Comparable['ShortBuffer']):
 
 class MappedByteBuffer(ByteBuffer):
     def clear(self) -> 'MappedByteBuffer': ...
+    def compact(self) -> 'MappedByteBuffer': ...
+    def duplicate(self) -> 'MappedByteBuffer': ...
     def flip(self) -> 'MappedByteBuffer': ...
+    @typing.overload
     def force(self) -> 'MappedByteBuffer': ...
+    @typing.overload
+    def force(self, int: int, int2: int) -> 'MappedByteBuffer': ...
     def isLoaded(self) -> bool: ...
     @typing.overload
     def limit(self) -> int: ...
@@ -543,6 +643,10 @@ class MappedByteBuffer(ByteBuffer):
     def position(self, int: int) -> 'MappedByteBuffer': ...
     def reset(self) -> 'MappedByteBuffer': ...
     def rewind(self) -> 'MappedByteBuffer': ...
+    @typing.overload
+    def slice(self) -> 'MappedByteBuffer': ...
+    @typing.overload
+    def slice(self, int: int, int2: int) -> 'MappedByteBuffer': ...
 
 
 class __module_protocol__(Protocol):
diff --git a/java-stubs/nio/channels/__init__.pyi b/java-stubs/nio/channels/__init__.pyi
index 302510f7614446004e3bb49b2d5c3830ded2c3fb..fcf80a22e2d5e1f4a15e6d0e458c91e1bf089cec 100644
--- a/java-stubs/nio/channels/__init__.pyi
+++ b/java-stubs/nio/channels/__init__.pyi
@@ -360,8 +360,12 @@ class ServerSocketChannel(java.nio.channels.spi.AbstractSelectableChannel, Netwo
     @typing.overload
     def bind(self, socketAddress: java.net.SocketAddress) -> 'ServerSocketChannel': ...
     def getLocalAddress(self) -> java.net.SocketAddress: ...
+    @typing.overload
     @staticmethod
     def open() -> 'ServerSocketChannel': ...
+    @typing.overload
+    @staticmethod
+    def open(protocolFamily: typing.Union[java.net.ProtocolFamily, typing.Callable]) -> 'ServerSocketChannel': ...
     _setOption__T = typing.TypeVar('_setOption__T')  # <T>
     def setOption(self, socketOption: java.net.SocketOption[_setOption__T], t: _setOption__T) -> 'ServerSocketChannel': ...
     def socket(self) -> java.net.ServerSocket: ...
@@ -475,6 +479,9 @@ class SocketChannel(java.nio.channels.spi.AbstractSelectableChannel, ByteChannel
     def open() -> 'SocketChannel': ...
     @typing.overload
     @staticmethod
+    def open(protocolFamily: typing.Union[java.net.ProtocolFamily, typing.Callable]) -> 'SocketChannel': ...
+    @typing.overload
+    @staticmethod
     def open(socketAddress: java.net.SocketAddress) -> 'SocketChannel': ...
     @typing.overload
     def read(self, byteBuffer: java.nio.ByteBuffer) -> int: ...
diff --git a/java-stubs/nio/channels/spi/__init__.pyi b/java-stubs/nio/channels/spi/__init__.pyi
index 995868a340cbc59d11afa47b0bc70fbd12d500f8..788b5b4880fc8008d53c3000af0e434e5a1daf0f 100644
--- a/java-stubs/nio/channels/spi/__init__.pyi
+++ b/java-stubs/nio/channels/spi/__init__.pyi
@@ -55,8 +55,14 @@ class SelectorProvider:
     def openDatagramChannel(self, protocolFamily: typing.Union[java.net.ProtocolFamily, typing.Callable]) -> java.nio.channels.DatagramChannel: ...
     def openPipe(self) -> java.nio.channels.Pipe: ...
     def openSelector(self) -> AbstractSelector: ...
+    @typing.overload
     def openServerSocketChannel(self) -> java.nio.channels.ServerSocketChannel: ...
+    @typing.overload
+    def openServerSocketChannel(self, protocolFamily: typing.Union[java.net.ProtocolFamily, typing.Callable]) -> java.nio.channels.ServerSocketChannel: ...
+    @typing.overload
     def openSocketChannel(self) -> java.nio.channels.SocketChannel: ...
+    @typing.overload
+    def openSocketChannel(self, protocolFamily: typing.Union[java.net.ProtocolFamily, typing.Callable]) -> java.nio.channels.SocketChannel: ...
     @staticmethod
     def provider() -> 'SelectorProvider': ...
 
diff --git a/java-stubs/nio/file/__init__.pyi b/java-stubs/nio/file/__init__.pyi
index 0fc6a68f119cacf19664032b9c203785c57bddef..0f1d62731824bcc8e2ccb6034e6a425ee62bfd1a 100644
--- a/java-stubs/nio/file/__init__.pyi
+++ b/java-stubs/nio/file/__init__.pyi
@@ -124,7 +124,16 @@ class FileSystems:
     def newFileSystem(uRI: java.net.URI, map: typing.Union[java.util.Map[str, typing.Any], typing.Mapping[str, typing.Any]], classLoader: java.lang.ClassLoader) -> FileSystem: ...
     @typing.overload
     @staticmethod
+    def newFileSystem(path: typing.Union['Path', jpype.protocol.SupportsPath]) -> FileSystem: ...
+    @typing.overload
+    @staticmethod
     def newFileSystem(path: typing.Union['Path', jpype.protocol.SupportsPath], classLoader: java.lang.ClassLoader) -> FileSystem: ...
+    @typing.overload
+    @staticmethod
+    def newFileSystem(path: typing.Union['Path', jpype.protocol.SupportsPath], map: typing.Union[java.util.Map[str, typing.Any], typing.Mapping[str, typing.Any]]) -> FileSystem: ...
+    @typing.overload
+    @staticmethod
+    def newFileSystem(path: typing.Union['Path', jpype.protocol.SupportsPath], map: typing.Union[java.util.Map[str, typing.Any], typing.Mapping[str, typing.Any]], classLoader: java.lang.ClassLoader) -> FileSystem: ...
 
 class FileVisitOption(java.lang.Enum['FileVisitOption']):
     FOLLOW_LINKS: typing.ClassVar['FileVisitOption'] = ...
@@ -238,6 +247,8 @@ class Files:
     @staticmethod
     def list(path: typing.Union['Path', jpype.protocol.SupportsPath]) -> java.util.stream.Stream['Path']: ...
     @staticmethod
+    def mismatch(path: typing.Union['Path', jpype.protocol.SupportsPath], path2: typing.Union['Path', jpype.protocol.SupportsPath]) -> int: ...
+    @staticmethod
     def move(path: typing.Union['Path', jpype.protocol.SupportsPath], path2: typing.Union['Path', jpype.protocol.SupportsPath], *copyOption: CopyOption) -> 'Path': ...
     @typing.overload
     @staticmethod
diff --git a/java-stubs/rmi/__init__.pyi b/java-stubs/rmi/__init__.pyi
index 262c2a69b6f707417a5e400a1daeeaff1cd793c6..b62901173a3cc6ea2f3e399c685bc45a158368ae 100644
--- a/java-stubs/rmi/__init__.pyi
+++ b/java-stubs/rmi/__init__.pyi
@@ -7,7 +7,6 @@ else:
 
 import java.io
 import java.lang
-import java.rmi.activation
 import java.rmi.dgc
 import java.rmi.registry
 import java.rmi.server
@@ -155,7 +154,6 @@ class __module_protocol__(Protocol):
     UnexpectedException: typing.Type[UnexpectedException]
     UnknownHostException: typing.Type[UnknownHostException]
     UnmarshalException: typing.Type[UnmarshalException]
-    activation: java.rmi.activation.__module_protocol__
     dgc: java.rmi.dgc.__module_protocol__
     registry: java.rmi.registry.__module_protocol__
     server: java.rmi.server.__module_protocol__
diff --git a/java-stubs/rmi/activation/__init__.pyi b/java-stubs/rmi/activation/__init__.pyi
deleted file mode 100644
index 347ec638f025d8b0ce4578a2c2aceb73564a5e6f..0000000000000000000000000000000000000000
--- a/java-stubs/rmi/activation/__init__.pyi
+++ /dev/null
@@ -1,169 +0,0 @@
-
-import sys
-if sys.version_info >= (3, 8):
-    from typing import Protocol
-else:
-    from typing_extensions import Protocol
-
-import java.io
-import java.lang
-import java.rmi
-import java.rmi.server
-import java.util
-import jpype
-import typing
-
-
-
-class Activatable(java.rmi.server.RemoteServer):
-    @typing.overload
-    @staticmethod
-    def exportObject(remote: java.rmi.Remote, activationID: 'ActivationID', int: int) -> java.rmi.Remote: ...
-    @typing.overload
-    @staticmethod
-    def exportObject(remote: java.rmi.Remote, activationID: 'ActivationID', int: int, rMIClientSocketFactory: typing.Union[java.rmi.server.RMIClientSocketFactory, typing.Callable], rMIServerSocketFactory: typing.Union[java.rmi.server.RMIServerSocketFactory, typing.Callable]) -> java.rmi.Remote: ...
-    @typing.overload
-    @staticmethod
-    def exportObject(remote: java.rmi.Remote, string: str, marshalledObject: java.rmi.MarshalledObject[typing.Any], boolean: bool, int: int) -> 'ActivationID': ...
-    @typing.overload
-    @staticmethod
-    def exportObject(remote: java.rmi.Remote, string: str, marshalledObject: java.rmi.MarshalledObject[typing.Any], boolean: bool, int: int, rMIClientSocketFactory: typing.Union[java.rmi.server.RMIClientSocketFactory, typing.Callable], rMIServerSocketFactory: typing.Union[java.rmi.server.RMIServerSocketFactory, typing.Callable]) -> 'ActivationID': ...
-    @staticmethod
-    def inactive(activationID: 'ActivationID') -> bool: ...
-    @staticmethod
-    def register(activationDesc: 'ActivationDesc') -> java.rmi.Remote: ...
-    @staticmethod
-    def unexportObject(remote: java.rmi.Remote, boolean: bool) -> bool: ...
-    @staticmethod
-    def unregister(activationID: 'ActivationID') -> None: ...
-
-class ActivateFailedException(java.rmi.RemoteException):
-    @typing.overload
-    def __init__(self, string: str): ...
-    @typing.overload
-    def __init__(self, string: str, exception: java.lang.Exception): ...
-
-class ActivationDesc(java.io.Serializable):
-    @typing.overload
-    def __init__(self, string: str, string2: str, marshalledObject: java.rmi.MarshalledObject[typing.Any]): ...
-    @typing.overload
-    def __init__(self, string: str, string2: str, marshalledObject: java.rmi.MarshalledObject[typing.Any], boolean: bool): ...
-    @typing.overload
-    def __init__(self, activationGroupID: 'ActivationGroupID', string: str, string2: str, marshalledObject: java.rmi.MarshalledObject[typing.Any]): ...
-    @typing.overload
-    def __init__(self, activationGroupID: 'ActivationGroupID', string: str, string2: str, marshalledObject: java.rmi.MarshalledObject[typing.Any], boolean: bool): ...
-    def equals(self, object: typing.Any) -> bool: ...
-    def getClassName(self) -> str: ...
-    def getData(self) -> java.rmi.MarshalledObject[typing.Any]: ...
-    def getGroupID(self) -> 'ActivationGroupID': ...
-    def getLocation(self) -> str: ...
-    def getRestartMode(self) -> bool: ...
-    def hashCode(self) -> int: ...
-
-class ActivationException(java.lang.Exception):
-    detail: java.lang.Throwable = ...
-    @typing.overload
-    def __init__(self): ...
-    @typing.overload
-    def __init__(self, string: str): ...
-    @typing.overload
-    def __init__(self, string: str, throwable: java.lang.Throwable): ...
-    def getCause(self) -> java.lang.Throwable: ...
-    def getMessage(self) -> str: ...
-
-class ActivationGroupDesc(java.io.Serializable):
-    @typing.overload
-    def __init__(self, string: str, string2: str, marshalledObject: java.rmi.MarshalledObject[typing.Any], properties: java.util.Properties, commandEnvironment: 'ActivationGroupDesc.CommandEnvironment'): ...
-    @typing.overload
-    def __init__(self, properties: java.util.Properties, commandEnvironment: 'ActivationGroupDesc.CommandEnvironment'): ...
-    def equals(self, object: typing.Any) -> bool: ...
-    def getClassName(self) -> str: ...
-    def getCommandEnvironment(self) -> 'ActivationGroupDesc.CommandEnvironment': ...
-    def getData(self) -> java.rmi.MarshalledObject[typing.Any]: ...
-    def getLocation(self) -> str: ...
-    def getPropertyOverrides(self) -> java.util.Properties: ...
-    def hashCode(self) -> int: ...
-    class CommandEnvironment(java.io.Serializable):
-        def __init__(self, string: str, stringArray: typing.Union[typing.List[str], jpype.JArray]): ...
-        def equals(self, object: typing.Any) -> bool: ...
-        def getCommandOptions(self) -> typing.MutableSequence[str]: ...
-        def getCommandPath(self) -> str: ...
-        def hashCode(self) -> int: ...
-
-class ActivationGroupID(java.io.Serializable):
-    def __init__(self, activationSystem: 'ActivationSystem'): ...
-    def equals(self, object: typing.Any) -> bool: ...
-    def getSystem(self) -> 'ActivationSystem': ...
-    def hashCode(self) -> int: ...
-
-class ActivationID(java.io.Serializable):
-    def __init__(self, activator: typing.Union['Activator', typing.Callable]): ...
-    def activate(self, boolean: bool) -> java.rmi.Remote: ...
-    def equals(self, object: typing.Any) -> bool: ...
-    def hashCode(self) -> int: ...
-
-class ActivationInstantiator(java.rmi.Remote):
-    def newInstance(self, activationID: ActivationID, activationDesc: ActivationDesc) -> java.rmi.MarshalledObject[java.rmi.Remote]: ...
-
-class ActivationMonitor(java.rmi.Remote):
-    def activeObject(self, activationID: ActivationID, marshalledObject: java.rmi.MarshalledObject[java.rmi.Remote]) -> None: ...
-    def inactiveGroup(self, activationGroupID: ActivationGroupID, long: int) -> None: ...
-    def inactiveObject(self, activationID: ActivationID) -> None: ...
-
-class ActivationSystem(java.rmi.Remote):
-    SYSTEM_PORT: typing.ClassVar[int] = ...
-    def activeGroup(self, activationGroupID: ActivationGroupID, activationInstantiator: typing.Union[ActivationInstantiator, typing.Callable], long: int) -> ActivationMonitor: ...
-    def getActivationDesc(self, activationID: ActivationID) -> ActivationDesc: ...
-    def getActivationGroupDesc(self, activationGroupID: ActivationGroupID) -> ActivationGroupDesc: ...
-    def registerGroup(self, activationGroupDesc: ActivationGroupDesc) -> ActivationGroupID: ...
-    def registerObject(self, activationDesc: ActivationDesc) -> ActivationID: ...
-    def setActivationDesc(self, activationID: ActivationID, activationDesc: ActivationDesc) -> ActivationDesc: ...
-    def setActivationGroupDesc(self, activationGroupID: ActivationGroupID, activationGroupDesc: ActivationGroupDesc) -> ActivationGroupDesc: ...
-    def shutdown(self) -> None: ...
-    def unregisterGroup(self, activationGroupID: ActivationGroupID) -> None: ...
-    def unregisterObject(self, activationID: ActivationID) -> None: ...
-
-class Activator(java.rmi.Remote):
-    def activate(self, activationID: ActivationID, boolean: bool) -> java.rmi.MarshalledObject[java.rmi.Remote]: ...
-
-class ActivationGroup(java.rmi.server.UnicastRemoteObject, ActivationInstantiator):
-    def activeObject(self, activationID: ActivationID, remote: java.rmi.Remote) -> None: ...
-    @staticmethod
-    def createGroup(activationGroupID: ActivationGroupID, activationGroupDesc: ActivationGroupDesc, long: int) -> 'ActivationGroup': ...
-    @staticmethod
-    def currentGroupID() -> ActivationGroupID: ...
-    @staticmethod
-    def getSystem() -> ActivationSystem: ...
-    def inactiveObject(self, activationID: ActivationID) -> bool: ...
-    @staticmethod
-    def setSystem(activationSystem: ActivationSystem) -> None: ...
-
-class ActivationGroup_Stub(java.rmi.server.RemoteStub, ActivationInstantiator, java.rmi.Remote):
-    def __init__(self, remoteRef: java.rmi.server.RemoteRef): ...
-    def newInstance(self, activationID: ActivationID, activationDesc: ActivationDesc) -> java.rmi.MarshalledObject: ...
-
-class UnknownGroupException(ActivationException):
-    def __init__(self, string: str): ...
-
-class UnknownObjectException(ActivationException):
-    def __init__(self, string: str): ...
-
-
-class __module_protocol__(Protocol):
-    # A module protocol which reflects the result of ``jp.JPackage("java.rmi.activation")``.
-
-    Activatable: typing.Type[Activatable]
-    ActivateFailedException: typing.Type[ActivateFailedException]
-    ActivationDesc: typing.Type[ActivationDesc]
-    ActivationException: typing.Type[ActivationException]
-    ActivationGroup: typing.Type[ActivationGroup]
-    ActivationGroupDesc: typing.Type[ActivationGroupDesc]
-    ActivationGroupID: typing.Type[ActivationGroupID]
-    ActivationGroup_Stub: typing.Type[ActivationGroup_Stub]
-    ActivationID: typing.Type[ActivationID]
-    ActivationInstantiator: typing.Type[ActivationInstantiator]
-    ActivationMonitor: typing.Type[ActivationMonitor]
-    ActivationSystem: typing.Type[ActivationSystem]
-    Activator: typing.Type[Activator]
-    UnknownGroupException: typing.Type[UnknownGroupException]
-    UnknownObjectException: typing.Type[UnknownObjectException]
diff --git a/java-stubs/security/__init__.pyi b/java-stubs/security/__init__.pyi
index fe76649a7d707bea4cbe8432fa1055c3e1ce475e..170a4186ee7165c2cef54d344b5da7e333533a51 100644
--- a/java-stubs/security/__init__.pyi
+++ b/java-stubs/security/__init__.pyi
@@ -10,7 +10,6 @@ import java.io
 import java.lang
 import java.net
 import java.nio
-import java.security.acl
 import java.security.cert
 import java.security.interfaces
 import java.security.spec
@@ -55,22 +54,22 @@ class AccessController:
     _doPrivileged_5__T = typing.TypeVar('_doPrivileged_5__T')  # <T>
     @typing.overload
     @staticmethod
-    def doPrivileged(privilegedAction: typing.Union['PrivilegedAction'[_doPrivileged_0__T], typing.Callable[[], _doPrivileged_0__T]], accessControlContext: AccessControlContext, *permission: 'Permission') -> _doPrivileged_0__T: ...
+    def doPrivileged(privilegedAction: typing.Union['PrivilegedAction'[_doPrivileged_0__T], typing.Callable[[], _doPrivileged_0__T]]) -> _doPrivileged_0__T: ...
     @typing.overload
     @staticmethod
-    def doPrivileged(privilegedExceptionAction: typing.Union['PrivilegedExceptionAction'[_doPrivileged_1__T], typing.Callable[[], _doPrivileged_1__T]], accessControlContext: AccessControlContext, *permission: 'Permission') -> _doPrivileged_1__T: ...
+    def doPrivileged(privilegedAction: typing.Union['PrivilegedAction'[_doPrivileged_1__T], typing.Callable[[], _doPrivileged_1__T]], accessControlContext: AccessControlContext) -> _doPrivileged_1__T: ...
     @typing.overload
     @staticmethod
-    def doPrivileged(privilegedAction: typing.Union['PrivilegedAction'[_doPrivileged_2__T], typing.Callable[[], _doPrivileged_2__T]]) -> _doPrivileged_2__T: ...
+    def doPrivileged(privilegedAction: typing.Union['PrivilegedAction'[_doPrivileged_2__T], typing.Callable[[], _doPrivileged_2__T]], accessControlContext: AccessControlContext, *permission: 'Permission') -> _doPrivileged_2__T: ...
     @typing.overload
     @staticmethod
-    def doPrivileged(privilegedAction: typing.Union['PrivilegedAction'[_doPrivileged_3__T], typing.Callable[[], _doPrivileged_3__T]], accessControlContext: AccessControlContext) -> _doPrivileged_3__T: ...
+    def doPrivileged(privilegedExceptionAction: typing.Union['PrivilegedExceptionAction'[_doPrivileged_3__T], typing.Callable[[], _doPrivileged_3__T]]) -> _doPrivileged_3__T: ...
     @typing.overload
     @staticmethod
-    def doPrivileged(privilegedExceptionAction: typing.Union['PrivilegedExceptionAction'[_doPrivileged_4__T], typing.Callable[[], _doPrivileged_4__T]]) -> _doPrivileged_4__T: ...
+    def doPrivileged(privilegedExceptionAction: typing.Union['PrivilegedExceptionAction'[_doPrivileged_4__T], typing.Callable[[], _doPrivileged_4__T]], accessControlContext: AccessControlContext) -> _doPrivileged_4__T: ...
     @typing.overload
     @staticmethod
-    def doPrivileged(privilegedExceptionAction: typing.Union['PrivilegedExceptionAction'[_doPrivileged_5__T], typing.Callable[[], _doPrivileged_5__T]], accessControlContext: AccessControlContext) -> _doPrivileged_5__T: ...
+    def doPrivileged(privilegedExceptionAction: typing.Union['PrivilegedExceptionAction'[_doPrivileged_5__T], typing.Callable[[], _doPrivileged_5__T]], accessControlContext: AccessControlContext, *permission: 'Permission') -> _doPrivileged_5__T: ...
     _doPrivilegedWithCombiner_0__T = typing.TypeVar('_doPrivilegedWithCombiner_0__T')  # <T>
     _doPrivilegedWithCombiner_1__T = typing.TypeVar('_doPrivilegedWithCombiner_1__T')  # <T>
     _doPrivilegedWithCombiner_2__T = typing.TypeVar('_doPrivilegedWithCombiner_2__T')  # <T>
@@ -399,7 +398,6 @@ class PrivilegedAction(typing.Generic[_PrivilegedAction__T]):
 
 class PrivilegedActionException(java.lang.Exception):
     def __init__(self, exception: java.lang.Exception): ...
-    def getCause(self) -> java.lang.Throwable: ...
     def getException(self) -> java.lang.Exception: ...
     def toString(self) -> str: ...
 
@@ -1154,7 +1152,6 @@ class __module_protocol__(Protocol):
     UnrecoverableEntryException: typing.Type[UnrecoverableEntryException]
     UnrecoverableKeyException: typing.Type[UnrecoverableKeyException]
     UnresolvedPermission: typing.Type[UnresolvedPermission]
-    acl: java.security.acl.__module_protocol__
     cert: java.security.cert.__module_protocol__
     interfaces: java.security.interfaces.__module_protocol__
     spec: java.security.spec.__module_protocol__
diff --git a/java-stubs/security/acl/__init__.pyi b/java-stubs/security/acl/__init__.pyi
deleted file mode 100644
index 377cc2ab45a134b28ce204477b127708a84f6f75..0000000000000000000000000000000000000000
--- a/java-stubs/security/acl/__init__.pyi
+++ /dev/null
@@ -1,75 +0,0 @@
-
-import sys
-if sys.version_info >= (3, 8):
-    from typing import Protocol
-else:
-    from typing_extensions import Protocol
-
-import java.lang
-import java.security
-import java.util
-import typing
-
-
-
-class AclEntry(java.lang.Cloneable):
-    def addPermission(self, permission: 'Permission') -> bool: ...
-    def checkPermission(self, permission: 'Permission') -> bool: ...
-    def clone(self) -> typing.Any: ...
-    def getPrincipal(self) -> java.security.Principal: ...
-    def isNegative(self) -> bool: ...
-    def permissions(self) -> java.util.Enumeration['Permission']: ...
-    def removePermission(self, permission: 'Permission') -> bool: ...
-    def setNegativePermissions(self) -> None: ...
-    def setPrincipal(self, principal: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-    def toString(self) -> str: ...
-
-class AclNotFoundException(java.lang.Exception):
-    def __init__(self): ...
-
-class Group(java.security.Principal):
-    def addMember(self, principal: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-    def equals(self, object: typing.Any) -> bool: ...
-    def hashCode(self) -> int: ...
-    def isMember(self, principal: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-    def members(self) -> java.util.Enumeration[java.security.Principal]: ...
-    def removeMember(self, principal: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-    def toString(self) -> str: ...
-
-class LastOwnerException(java.lang.Exception):
-    def __init__(self): ...
-
-class NotOwnerException(java.lang.Exception):
-    def __init__(self): ...
-
-class Owner:
-    def addOwner(self, principal: typing.Union[java.security.Principal, typing.Callable], principal2: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-    def deleteOwner(self, principal: typing.Union[java.security.Principal, typing.Callable], principal2: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-    def isOwner(self, principal: typing.Union[java.security.Principal, typing.Callable]) -> bool: ...
-
-class Permission:
-    def equals(self, object: typing.Any) -> bool: ...
-    def toString(self) -> str: ...
-
-class Acl(Owner):
-    def addEntry(self, principal: typing.Union[java.security.Principal, typing.Callable], aclEntry: AclEntry) -> bool: ...
-    def checkPermission(self, principal: typing.Union[java.security.Principal, typing.Callable], permission: Permission) -> bool: ...
-    def entries(self) -> java.util.Enumeration[AclEntry]: ...
-    def getName(self) -> str: ...
-    def getPermissions(self, principal: typing.Union[java.security.Principal, typing.Callable]) -> java.util.Enumeration[Permission]: ...
-    def removeEntry(self, principal: typing.Union[java.security.Principal, typing.Callable], aclEntry: AclEntry) -> bool: ...
-    def setName(self, principal: typing.Union[java.security.Principal, typing.Callable], string: str) -> None: ...
-    def toString(self) -> str: ...
-
-
-class __module_protocol__(Protocol):
-    # A module protocol which reflects the result of ``jp.JPackage("java.security.acl")``.
-
-    Acl: typing.Type[Acl]
-    AclEntry: typing.Type[AclEntry]
-    AclNotFoundException: typing.Type[AclNotFoundException]
-    Group: typing.Type[Group]
-    LastOwnerException: typing.Type[LastOwnerException]
-    NotOwnerException: typing.Type[NotOwnerException]
-    Owner: typing.Type[Owner]
-    Permission: typing.Type[Permission]
diff --git a/java-stubs/security/interfaces/__init__.pyi b/java-stubs/security/interfaces/__init__.pyi
index 04d6498d29ebbc0991fc68db7e7fb40c19fd95f0..0b9e5f80232721069521b1a21a77ce7b2a8885da 100644
--- a/java-stubs/security/interfaces/__init__.pyi
+++ b/java-stubs/security/interfaces/__init__.pyi
@@ -30,6 +30,9 @@ class DSAParams:
 class ECKey:
     def getParams(self) -> java.security.spec.ECParameterSpec: ...
 
+class EdECKey:
+    def getParams(self) -> java.security.spec.NamedParameterSpec: ...
+
 class RSAKey:
     def getModulus(self) -> java.math.BigInteger: ...
     def getParams(self) -> java.security.spec.AlgorithmParameterSpec: ...
@@ -53,6 +56,12 @@ class ECPublicKey(java.security.PublicKey, ECKey):
     serialVersionUID: typing.ClassVar[int] = ...
     def getW(self) -> java.security.spec.ECPoint: ...
 
+class EdECPrivateKey(EdECKey, java.security.PrivateKey):
+    def getBytes(self) -> java.util.Optional[typing.MutableSequence[int]]: ...
+
+class EdECPublicKey(EdECKey, java.security.PublicKey):
+    def getPoint(self) -> java.security.spec.EdECPoint: ...
+
 class RSAPrivateKey(java.security.PrivateKey, RSAKey):
     serialVersionUID: typing.ClassVar[int] = ...
     def getPrivateExponent(self) -> java.math.BigInteger: ...
@@ -98,6 +107,9 @@ class __module_protocol__(Protocol):
     ECKey: typing.Type[ECKey]
     ECPrivateKey: typing.Type[ECPrivateKey]
     ECPublicKey: typing.Type[ECPublicKey]
+    EdECKey: typing.Type[EdECKey]
+    EdECPrivateKey: typing.Type[EdECPrivateKey]
+    EdECPublicKey: typing.Type[EdECPublicKey]
     RSAKey: typing.Type[RSAKey]
     RSAMultiPrimePrivateCrtKey: typing.Type[RSAMultiPrimePrivateCrtKey]
     RSAPrivateCrtKey: typing.Type[RSAPrivateCrtKey]
diff --git a/java-stubs/security/spec/__init__.pyi b/java-stubs/security/spec/__init__.pyi
index 88bd9337c78ef4cd964ad077c02e90626600e769..73abd49ca4f2b28732cb0826adb5c62aef4a20e7 100644
--- a/java-stubs/security/spec/__init__.pyi
+++ b/java-stubs/security/spec/__init__.pyi
@@ -9,6 +9,7 @@ import java.lang
 import java.math
 import java.security
 import java.security.interfaces
+import java.util
 import jpype
 import typing
 
@@ -27,6 +28,11 @@ class ECPoint:
     def getAffineY(self) -> java.math.BigInteger: ...
     def hashCode(self) -> int: ...
 
+class EdECPoint:
+    def __init__(self, boolean: bool, bigInteger: java.math.BigInteger): ...
+    def getY(self) -> java.math.BigInteger: ...
+    def isXOdd(self) -> bool: ...
+
 class EllipticCurve:
     @typing.overload
     def __init__(self, eCField: typing.Union[ECField, typing.Callable], bigInteger: java.math.BigInteger, bigInteger2: java.math.BigInteger): ...
@@ -130,6 +136,24 @@ class ECPublicKeySpec(KeySpec):
     def getParams(self) -> ECParameterSpec: ...
     def getW(self) -> ECPoint: ...
 
+class EdDSAParameterSpec(AlgorithmParameterSpec):
+    @typing.overload
+    def __init__(self, boolean: bool): ...
+    @typing.overload
+    def __init__(self, boolean: bool, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]): ...
+    def getContext(self) -> java.util.Optional[typing.MutableSequence[int]]: ...
+    def isPrehash(self) -> bool: ...
+
+class EdECPrivateKeySpec(KeySpec):
+    def __init__(self, namedParameterSpec: 'NamedParameterSpec', byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]): ...
+    def getBytes(self) -> typing.MutableSequence[int]: ...
+    def getParams(self) -> 'NamedParameterSpec': ...
+
+class EdECPublicKeySpec(KeySpec):
+    def __init__(self, namedParameterSpec: 'NamedParameterSpec', edECPoint: EdECPoint): ...
+    def getParams(self) -> 'NamedParameterSpec': ...
+    def getPoint(self) -> EdECPoint: ...
+
 class EncodedKeySpec(KeySpec):
     def __init__(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]): ...
     def getAlgorithm(self) -> str: ...
@@ -144,12 +168,19 @@ class MGF1ParameterSpec(AlgorithmParameterSpec):
     SHA512: typing.ClassVar['MGF1ParameterSpec'] = ...
     SHA512_224: typing.ClassVar['MGF1ParameterSpec'] = ...
     SHA512_256: typing.ClassVar['MGF1ParameterSpec'] = ...
+    SHA3_224: typing.ClassVar['MGF1ParameterSpec'] = ...
+    SHA3_256: typing.ClassVar['MGF1ParameterSpec'] = ...
+    SHA3_384: typing.ClassVar['MGF1ParameterSpec'] = ...
+    SHA3_512: typing.ClassVar['MGF1ParameterSpec'] = ...
     def __init__(self, string: str): ...
     def getDigestAlgorithm(self) -> str: ...
+    def toString(self) -> str: ...
 
 class NamedParameterSpec(AlgorithmParameterSpec):
     X25519: typing.ClassVar['NamedParameterSpec'] = ...
     X448: typing.ClassVar['NamedParameterSpec'] = ...
+    ED25519: typing.ClassVar['NamedParameterSpec'] = ...
+    ED448: typing.ClassVar['NamedParameterSpec'] = ...
     def __init__(self, string: str): ...
     def getName(self) -> str: ...
 
@@ -267,6 +298,10 @@ class __module_protocol__(Protocol):
     ECPoint: typing.Type[ECPoint]
     ECPrivateKeySpec: typing.Type[ECPrivateKeySpec]
     ECPublicKeySpec: typing.Type[ECPublicKeySpec]
+    EdDSAParameterSpec: typing.Type[EdDSAParameterSpec]
+    EdECPoint: typing.Type[EdECPoint]
+    EdECPrivateKeySpec: typing.Type[EdECPrivateKeySpec]
+    EdECPublicKeySpec: typing.Type[EdECPublicKeySpec]
     EllipticCurve: typing.Type[EllipticCurve]
     EncodedKeySpec: typing.Type[EncodedKeySpec]
     InvalidKeySpecException: typing.Type[InvalidKeySpecException]
diff --git a/java-stubs/text/__init__.pyi b/java-stubs/text/__init__.pyi
index 64fb765413eafb3c8434c056113cde324f537993..efe5f8c03f5da951c8076bc7f0dd05298cad801b 100644
--- a/java-stubs/text/__init__.pyi
+++ b/java-stubs/text/__init__.pyi
@@ -245,6 +245,7 @@ class DecimalFormatSymbols(java.lang.Cloneable, java.io.Serializable):
     def getInternationalCurrencySymbol(self) -> str: ...
     def getMinusSign(self) -> str: ...
     def getMonetaryDecimalSeparator(self) -> str: ...
+    def getMonetaryGroupingSeparator(self) -> str: ...
     def getNaN(self) -> str: ...
     def getPatternSeparator(self) -> str: ...
     def getPerMill(self) -> str: ...
@@ -261,6 +262,7 @@ class DecimalFormatSymbols(java.lang.Cloneable, java.io.Serializable):
     def setInternationalCurrencySymbol(self, string: str) -> None: ...
     def setMinusSign(self, char: str) -> None: ...
     def setMonetaryDecimalSeparator(self, char: str) -> None: ...
+    def setMonetaryGroupingSeparator(self, char: str) -> None: ...
     def setNaN(self, string: str) -> None: ...
     def setPatternSeparator(self, char: str) -> None: ...
     def setPerMill(self, char: str) -> None: ...
@@ -558,6 +560,12 @@ class NumberFormat(Format):
     def format(self, object: typing.Any, stringBuffer: java.lang.StringBuffer, fieldPosition: FieldPosition) -> java.lang.StringBuffer: ...
     @staticmethod
     def getAvailableLocales() -> typing.MutableSequence[java.util.Locale]: ...
+    @typing.overload
+    @staticmethod
+    def getCompactNumberInstance() -> 'NumberFormat': ...
+    @typing.overload
+    @staticmethod
+    def getCompactNumberInstance(locale: java.util.Locale, style: 'NumberFormat.Style') -> 'NumberFormat': ...
     def getCurrency(self) -> java.util.Currency: ...
     @typing.overload
     @staticmethod
@@ -625,6 +633,20 @@ class NumberFormat(Format):
         PERMILLE: typing.ClassVar['NumberFormat.Field'] = ...
         CURRENCY: typing.ClassVar['NumberFormat.Field'] = ...
         EXPONENT_SIGN: typing.ClassVar['NumberFormat.Field'] = ...
+        PREFIX: typing.ClassVar['NumberFormat.Field'] = ...
+        SUFFIX: typing.ClassVar['NumberFormat.Field'] = ...
+    class Style(java.lang.Enum['NumberFormat.Style']):
+        SHORT: typing.ClassVar['NumberFormat.Style'] = ...
+        LONG: typing.ClassVar['NumberFormat.Style'] = ...
+        _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+        @typing.overload
+        @staticmethod
+        def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+        @typing.overload
+        @staticmethod
+        def valueOf(string: str) -> 'NumberFormat.Style': ...
+        @staticmethod
+        def values() -> typing.MutableSequence['NumberFormat.Style']: ...
 
 class ChoiceFormat(NumberFormat):
     @typing.overload
@@ -664,6 +686,46 @@ class ChoiceFormat(NumberFormat):
     def setChoices(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], stringArray: typing.Union[typing.List[str], jpype.JArray]) -> None: ...
     def toPattern(self) -> str: ...
 
+class CompactNumberFormat(NumberFormat):
+    @typing.overload
+    def __init__(self, string: str, decimalFormatSymbols: DecimalFormatSymbols, stringArray: typing.Union[typing.List[str], jpype.JArray]): ...
+    @typing.overload
+    def __init__(self, string: str, decimalFormatSymbols: DecimalFormatSymbols, stringArray: typing.Union[typing.List[str], jpype.JArray], string3: str): ...
+    def clone(self) -> 'CompactNumberFormat': ...
+    def equals(self, object: typing.Any) -> bool: ...
+    @typing.overload
+    def format(self, object: typing.Any) -> str: ...
+    @typing.overload
+    def format(self, double: float) -> str: ...
+    @typing.overload
+    def format(self, long: int) -> str: ...
+    @typing.overload
+    def format(self, object: typing.Any, stringBuffer: java.lang.StringBuffer, fieldPosition: FieldPosition) -> java.lang.StringBuffer: ...
+    @typing.overload
+    def format(self, double: float, stringBuffer: java.lang.StringBuffer, fieldPosition: FieldPosition) -> java.lang.StringBuffer: ...
+    @typing.overload
+    def format(self, long: int, stringBuffer: java.lang.StringBuffer, fieldPosition: FieldPosition) -> java.lang.StringBuffer: ...
+    def formatToCharacterIterator(self, object: typing.Any) -> AttributedCharacterIterator: ...
+    def getGroupingSize(self) -> int: ...
+    def getRoundingMode(self) -> java.math.RoundingMode: ...
+    def hashCode(self) -> int: ...
+    def isGroupingUsed(self) -> bool: ...
+    def isParseBigDecimal(self) -> bool: ...
+    def isParseIntegerOnly(self) -> bool: ...
+    @typing.overload
+    def parse(self, string: str, parsePosition: ParsePosition) -> java.lang.Number: ...
+    @typing.overload
+    def parse(self, string: str) -> java.lang.Number: ...
+    def setGroupingSize(self, int: int) -> None: ...
+    def setGroupingUsed(self, boolean: bool) -> None: ...
+    def setMaximumFractionDigits(self, int: int) -> None: ...
+    def setMaximumIntegerDigits(self, int: int) -> None: ...
+    def setMinimumFractionDigits(self, int: int) -> None: ...
+    def setMinimumIntegerDigits(self, int: int) -> None: ...
+    def setParseBigDecimal(self, boolean: bool) -> None: ...
+    def setParseIntegerOnly(self, boolean: bool) -> None: ...
+    def setRoundingMode(self, roundingMode: java.math.RoundingMode) -> None: ...
+
 class DecimalFormat(NumberFormat):
     @typing.overload
     def __init__(self): ...
@@ -775,6 +837,7 @@ class __module_protocol__(Protocol):
     CollationElementIterator: typing.Type[CollationElementIterator]
     CollationKey: typing.Type[CollationKey]
     Collator: typing.Type[Collator]
+    CompactNumberFormat: typing.Type[CompactNumberFormat]
     DateFormat: typing.Type[DateFormat]
     DateFormatSymbols: typing.Type[DateFormatSymbols]
     DecimalFormat: typing.Type[DecimalFormat]
diff --git a/java-stubs/text/spi/__init__.pyi b/java-stubs/text/spi/__init__.pyi
index 50f4cfed198cd87d4a906c7f5c95950954226e20..146469c695ee76215e660c70cf6acfa1bf5b2d30 100644
--- a/java-stubs/text/spi/__init__.pyi
+++ b/java-stubs/text/spi/__init__.pyi
@@ -33,6 +33,7 @@ class DecimalFormatSymbolsProvider(java.util.spi.LocaleServiceProvider):
     def getInstance(self, locale: java.util.Locale) -> java.text.DecimalFormatSymbols: ...
 
 class NumberFormatProvider(java.util.spi.LocaleServiceProvider):
+    def getCompactNumberInstance(self, locale: java.util.Locale, style: java.text.NumberFormat.Style) -> java.text.NumberFormat: ...
     def getCurrencyInstance(self, locale: java.util.Locale) -> java.text.NumberFormat: ...
     def getIntegerInstance(self, locale: java.util.Locale) -> java.text.NumberFormat: ...
     def getNumberInstance(self, locale: java.util.Locale) -> java.text.NumberFormat: ...
diff --git a/java-stubs/time/__init__.pyi b/java-stubs/time/__init__.pyi
index b6873b9e1c6fdedeb078fd907808077813561740..84910a6a73b881a824555583edea636d7c25bfec 100644
--- a/java-stubs/time/__init__.pyi
+++ b/java-stubs/time/__init__.pyi
@@ -18,32 +18,6 @@ import typing
 
 
 
-class Clock:
-    def equals(self, object: typing.Any) -> bool: ...
-    @staticmethod
-    def fixed(instant: typing.Union['Instant', datetime.datetime], zoneId: 'ZoneId') -> 'Clock': ...
-    def getZone(self) -> 'ZoneId': ...
-    def hashCode(self) -> int: ...
-    def instant(self) -> 'Instant': ...
-    def millis(self) -> int: ...
-    @staticmethod
-    def offset(clock: 'Clock', duration: 'Duration') -> 'Clock': ...
-    @staticmethod
-    def system(zoneId: 'ZoneId') -> 'Clock': ...
-    @staticmethod
-    def systemDefaultZone() -> 'Clock': ...
-    @staticmethod
-    def systemUTC() -> 'Clock': ...
-    @staticmethod
-    def tick(clock: 'Clock', duration: 'Duration') -> 'Clock': ...
-    @staticmethod
-    def tickMillis(zoneId: 'ZoneId') -> 'Clock': ...
-    @staticmethod
-    def tickMinutes(zoneId: 'ZoneId') -> 'Clock': ...
-    @staticmethod
-    def tickSeconds(zoneId: 'ZoneId') -> 'Clock': ...
-    def withZone(self, zoneId: 'ZoneId') -> 'Clock': ...
-
 class DateTimeException(java.lang.RuntimeException):
     @typing.overload
     def __init__(self, string: str): ...
@@ -198,7 +172,7 @@ class Instant(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster,
     def now() -> 'Instant': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'Instant': ...
+    def now(clock: 'Clock') -> 'Instant': ...
     @staticmethod
     def ofEpochMilli(long: int) -> 'Instant': ...
     @typing.overload
@@ -228,6 +202,19 @@ class Instant(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster,
     @typing.overload
     def with_(self, temporalField: java.time.temporal.TemporalField, long: int) -> 'Instant': ...
 
+class InstantSource:
+    @staticmethod
+    def fixed(instant: typing.Union[Instant, datetime.datetime]) -> 'InstantSource': ...
+    def instant(self) -> Instant: ...
+    def millis(self) -> int: ...
+    @staticmethod
+    def offset(instantSource: typing.Union['InstantSource', typing.Callable], duration: Duration) -> 'InstantSource': ...
+    @staticmethod
+    def system() -> 'InstantSource': ...
+    @staticmethod
+    def tick(instantSource: typing.Union['InstantSource', typing.Callable], duration: Duration) -> 'InstantSource': ...
+    def withZone(self, zoneId: 'ZoneId') -> 'Clock': ...
+
 class LocalDate(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster, java.time.chrono.ChronoLocalDate, java.io.Serializable):
     MIN: typing.ClassVar['LocalDate'] = ...
     MAX: typing.ClassVar['LocalDate'] = ...
@@ -290,7 +277,7 @@ class LocalDate(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster
     def now() -> 'LocalDate': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'LocalDate': ...
+    def now(clock: 'Clock') -> 'LocalDate': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'LocalDate': ...
@@ -387,7 +374,7 @@ class LocalDateTime(java.time.temporal.Temporal, java.time.temporal.TemporalAdju
     def now() -> 'LocalDateTime': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'LocalDateTime': ...
+    def now(clock: 'Clock') -> 'LocalDateTime': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'LocalDateTime': ...
@@ -494,7 +481,7 @@ class LocalTime(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster
     def now() -> 'LocalTime': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'LocalTime': ...
+    def now(clock: 'Clock') -> 'LocalTime': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'LocalTime': ...
@@ -611,7 +598,7 @@ class MonthDay(java.time.temporal.TemporalAccessor, java.time.temporal.TemporalA
     def now() -> 'MonthDay': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'MonthDay': ...
+    def now(clock: 'Clock') -> 'MonthDay': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'MonthDay': ...
@@ -684,7 +671,7 @@ class OffsetDateTime(java.time.temporal.Temporal, java.time.temporal.TemporalAdj
     def now() -> 'OffsetDateTime': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'OffsetDateTime': ...
+    def now(clock: 'Clock') -> 'OffsetDateTime': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'OffsetDateTime': ...
@@ -785,7 +772,7 @@ class OffsetTime(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuste
     def now() -> 'OffsetTime': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'OffsetTime': ...
+    def now(clock: 'Clock') -> 'OffsetTime': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'OffsetTime': ...
@@ -919,7 +906,7 @@ class Year(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster, jav
     def now() -> 'Year': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'Year': ...
+    def now(clock: 'Clock') -> 'Year': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'Year': ...
@@ -982,7 +969,7 @@ class YearMonth(java.time.temporal.Temporal, java.time.temporal.TemporalAdjuster
     def now() -> 'YearMonth': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'YearMonth': ...
+    def now(clock: 'Clock') -> 'YearMonth': ...
     @typing.overload
     @staticmethod
     def now(zoneId: 'ZoneId') -> 'YearMonth': ...
@@ -1081,7 +1068,7 @@ class ZonedDateTime(java.time.temporal.Temporal, java.time.chrono.ChronoZonedDat
     def now() -> 'ZonedDateTime': ...
     @typing.overload
     @staticmethod
-    def now(clock: Clock) -> 'ZonedDateTime': ...
+    def now(clock: 'Clock') -> 'ZonedDateTime': ...
     @typing.overload
     @staticmethod
     def now(zoneId: ZoneId) -> 'ZonedDateTime': ...
@@ -1150,6 +1137,32 @@ class ZonedDateTime(java.time.temporal.Temporal, java.time.chrono.ChronoZonedDat
     @typing.overload
     def with_(self, temporalField: java.time.temporal.TemporalField, long: int) -> 'ZonedDateTime': ...
 
+class Clock(InstantSource):
+    def equals(self, object: typing.Any) -> bool: ...
+    @staticmethod
+    def fixed(instant: typing.Union[Instant, datetime.datetime], zoneId: ZoneId) -> 'Clock': ...
+    def getZone(self) -> ZoneId: ...
+    def hashCode(self) -> int: ...
+    def instant(self) -> Instant: ...
+    def millis(self) -> int: ...
+    @staticmethod
+    def offset(clock: 'Clock', duration: Duration) -> 'Clock': ...
+    @staticmethod
+    def system(zoneId: ZoneId) -> 'Clock': ...
+    @staticmethod
+    def systemDefaultZone() -> 'Clock': ...
+    @staticmethod
+    def systemUTC() -> 'Clock': ...
+    @staticmethod
+    def tick(clock: 'Clock', duration: Duration) -> 'Clock': ...
+    @staticmethod
+    def tickMillis(zoneId: ZoneId) -> 'Clock': ...
+    @staticmethod
+    def tickMinutes(zoneId: ZoneId) -> 'Clock': ...
+    @staticmethod
+    def tickSeconds(zoneId: ZoneId) -> 'Clock': ...
+    def withZone(self, zoneId: ZoneId) -> 'Clock': ...
+
 class ZoneOffset(ZoneId, java.time.temporal.TemporalAccessor, java.time.temporal.TemporalAdjuster, java.lang.Comparable['ZoneOffset'], java.io.Serializable):
     UTC: typing.ClassVar['ZoneOffset'] = ...
     MIN: typing.ClassVar['ZoneOffset'] = ...
@@ -1201,6 +1214,7 @@ class __module_protocol__(Protocol):
     DayOfWeek: typing.Type[DayOfWeek]
     Duration: typing.Type[Duration]
     Instant: typing.Type[Instant]
+    InstantSource: typing.Type[InstantSource]
     LocalDate: typing.Type[LocalDate]
     LocalDateTime: typing.Type[LocalDateTime]
     LocalTime: typing.Type[LocalTime]
diff --git a/java-stubs/time/chrono/__init__.pyi b/java-stubs/time/chrono/__init__.pyi
index ea5ca7d49fd8dcce4fd0ab0bd37b3db88b77255f..1d8793232fe943520609c7bd5fe3e3ca25314c83 100644
--- a/java-stubs/time/chrono/__init__.pyi
+++ b/java-stubs/time/chrono/__init__.pyi
@@ -274,6 +274,7 @@ class JapaneseEra(Era, java.io.Serializable):
     TAISHO: typing.ClassVar['JapaneseEra'] = ...
     SHOWA: typing.ClassVar['JapaneseEra'] = ...
     HEISEI: typing.ClassVar['JapaneseEra'] = ...
+    REIWA: typing.ClassVar['JapaneseEra'] = ...
     def getDisplayName(self, textStyle: java.time.format.TextStyle, locale: java.util.Locale) -> str: ...
     def getValue(self) -> int: ...
     @staticmethod
diff --git a/java-stubs/time/format/__init__.pyi b/java-stubs/time/format/__init__.pyi
index 296668e1bd3f0519f8f643ea972c78abe285c8a0..6c3ba241ceae66e7e912790a731606a0825ee7d3 100644
--- a/java-stubs/time/format/__init__.pyi
+++ b/java-stubs/time/format/__init__.pyi
@@ -89,6 +89,7 @@ class DateTimeFormatterBuilder:
     def append(self, dateTimeFormatter: DateTimeFormatter) -> 'DateTimeFormatterBuilder': ...
     def appendChronologyId(self) -> 'DateTimeFormatterBuilder': ...
     def appendChronologyText(self, textStyle: 'TextStyle') -> 'DateTimeFormatterBuilder': ...
+    def appendDayPeriodText(self, textStyle: 'TextStyle') -> 'DateTimeFormatterBuilder': ...
     def appendFraction(self, temporalField: java.time.temporal.TemporalField, int: int, int2: int, boolean: bool) -> 'DateTimeFormatterBuilder': ...
     @typing.overload
     def appendGenericZoneText(self, textStyle: 'TextStyle') -> 'DateTimeFormatterBuilder': ...
diff --git a/java-stubs/util/__init__.pyi b/java-stubs/util/__init__.pyi
index f4461dedf9030918734c5569f03fde88a4ea3c79..9a3f0971da2542618b42bf3b6116503383f43b5d 100644
--- a/java-stubs/util/__init__.pyi
+++ b/java-stubs/util/__init__.pyi
@@ -28,6 +28,7 @@ import java.util.function
 import java.util.jar
 import java.util.logging
 import java.util.prefs
+import java.util.random
 import java.util.regex
 import java.util.spi
 import java.util.stream
@@ -1438,6 +1439,73 @@ class Formatter(java.io.Closeable, java.io.Flushable):
 class FormatterClosedException(java.lang.IllegalStateException):
     def __init__(self): ...
 
+class HexFormat:
+    def delimiter(self) -> str: ...
+    def equals(self, object: typing.Any) -> bool: ...
+    _formatHex_0__A = typing.TypeVar('_formatHex_0__A', bound=java.lang.Appendable)  # <A>
+    _formatHex_1__A = typing.TypeVar('_formatHex_1__A', bound=java.lang.Appendable)  # <A>
+    @typing.overload
+    def formatHex(self, a: _formatHex_0__A, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> _formatHex_0__A: ...
+    @typing.overload
+    def formatHex(self, a: _formatHex_1__A, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> _formatHex_1__A: ...
+    @typing.overload
+    def formatHex(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> str: ...
+    @typing.overload
+    def formatHex(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], int: int, int2: int) -> str: ...
+    @staticmethod
+    def fromHexDigit(int: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def fromHexDigits(charSequence: typing.Union[java.lang.CharSequence, str]) -> int: ...
+    @typing.overload
+    @staticmethod
+    def fromHexDigits(charSequence: typing.Union[java.lang.CharSequence, str], int: int, int2: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def fromHexDigitsToLong(charSequence: typing.Union[java.lang.CharSequence, str]) -> int: ...
+    @typing.overload
+    @staticmethod
+    def fromHexDigitsToLong(charSequence: typing.Union[java.lang.CharSequence, str], int: int, int2: int) -> int: ...
+    def hashCode(self) -> int: ...
+    @staticmethod
+    def isHexDigit(int: int) -> bool: ...
+    def isUpperCase(self) -> bool: ...
+    @staticmethod
+    def of() -> 'HexFormat': ...
+    @staticmethod
+    def ofDelimiter(string: str) -> 'HexFormat': ...
+    @typing.overload
+    def parseHex(self, charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> typing.MutableSequence[int]: ...
+    @typing.overload
+    def parseHex(self, charSequence: typing.Union[java.lang.CharSequence, str]) -> typing.MutableSequence[int]: ...
+    @typing.overload
+    def parseHex(self, charSequence: typing.Union[java.lang.CharSequence, str], int: int, int2: int) -> typing.MutableSequence[int]: ...
+    def prefix(self) -> str: ...
+    def suffix(self) -> str: ...
+    _toHexDigits_0__A = typing.TypeVar('_toHexDigits_0__A', bound=java.lang.Appendable)  # <A>
+    @typing.overload
+    def toHexDigits(self, a: _toHexDigits_0__A, byte: int) -> _toHexDigits_0__A: ...
+    @typing.overload
+    def toHexDigits(self, byte: int) -> str: ...
+    @typing.overload
+    def toHexDigits(self, char: str) -> str: ...
+    @typing.overload
+    def toHexDigits(self, int: int) -> str: ...
+    @typing.overload
+    def toHexDigits(self, long: int) -> str: ...
+    @typing.overload
+    def toHexDigits(self, long: int, int: int) -> str: ...
+    @typing.overload
+    def toHexDigits(self, short: int) -> str: ...
+    def toHighHexDigit(self, int: int) -> str: ...
+    def toLowHexDigit(self, int: int) -> str: ...
+    def toString(self) -> str: ...
+    def withDelimiter(self, string: str) -> 'HexFormat': ...
+    def withLowerCase(self) -> 'HexFormat': ...
+    def withPrefix(self, string: str) -> 'HexFormat': ...
+    def withSuffix(self, string: str) -> 'HexFormat': ...
+    def withUpperCase(self) -> 'HexFormat': ...
+
 class IllegalFormatException(java.lang.IllegalArgumentException): ...
 
 class IllformedLocaleException(java.lang.RuntimeException):
@@ -1491,14 +1559,14 @@ class Locale(java.lang.Cloneable, java.io.Serializable):
     ITALY: typing.ClassVar['Locale'] = ...
     JAPAN: typing.ClassVar['Locale'] = ...
     KOREA: typing.ClassVar['Locale'] = ...
-    CHINA: typing.ClassVar['Locale'] = ...
-    PRC: typing.ClassVar['Locale'] = ...
-    TAIWAN: typing.ClassVar['Locale'] = ...
     UK: typing.ClassVar['Locale'] = ...
     US: typing.ClassVar['Locale'] = ...
     CANADA: typing.ClassVar['Locale'] = ...
     CANADA_FRENCH: typing.ClassVar['Locale'] = ...
     ROOT: typing.ClassVar['Locale'] = ...
+    CHINA: typing.ClassVar['Locale'] = ...
+    PRC: typing.ClassVar['Locale'] = ...
+    TAIWAN: typing.ClassVar['Locale'] = ...
     PRIVATE_USE_EXTENSION: typing.ClassVar[str] = ...
     UNICODE_LOCALE_EXTENSION: typing.ClassVar[str] = ...
     @typing.overload
@@ -1800,6 +1868,10 @@ class Map(typing.Generic[_Map__K, _Map__V], _JMap[_Map__K, _Map__V]):
         @typing.overload
         @staticmethod
         def comparingByValue(comparator: typing.Union[Comparator[_comparingByValue_1__V], typing.Callable[[_comparingByValue_1__V, _comparingByValue_1__V], int]]) -> Comparator['Map.Entry'[_comparingByValue_1__K, _comparingByValue_1__V]]: ...
+        _copyOf__K = typing.TypeVar('_copyOf__K')  # <K>
+        _copyOf__V = typing.TypeVar('_copyOf__V')  # <V>
+        @staticmethod
+        def copyOf(entry: 'Map.Entry'[_copyOf__K, _copyOf__V]) -> 'Map.Entry'[_copyOf__K, _copyOf__V]: ...
         def equals(self, object: typing.Any) -> bool: ...
         def getKey(self) -> _Map__Entry__K: ...
         def getValue(self) -> _Map__Entry__V: ...
@@ -1816,14 +1888,30 @@ class NoSuchElementException(java.lang.RuntimeException):
     def __init__(self): ...
     @typing.overload
     def __init__(self, string: str): ...
+    @typing.overload
+    def __init__(self, string: str, throwable: java.lang.Throwable): ...
+    @typing.overload
+    def __init__(self, throwable: java.lang.Throwable): ...
 
 class Objects:
+    @typing.overload
     @staticmethod
     def checkFromIndexSize(int: int, int2: int, int3: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def checkFromIndexSize(long: int, long2: int, long3: int) -> int: ...
+    @typing.overload
     @staticmethod
     def checkFromToIndex(int: int, int2: int, int3: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def checkFromToIndex(long: int, long2: int, long3: int) -> int: ...
+    @typing.overload
     @staticmethod
     def checkIndex(int: int, int2: int) -> int: ...
+    @typing.overload
+    @staticmethod
+    def checkIndex(long: int, long2: int) -> int: ...
     _compare__T = typing.TypeVar('_compare__T')  # <T>
     @staticmethod
     def compare(t: _compare__T, t2: _compare__T, comparator: typing.Union[Comparator[_compare__T], typing.Callable[[_compare__T, _compare__T], int]]) -> int: ...
@@ -1995,7 +2083,7 @@ class PropertyPermission(java.security.BasicPermission):
     def implies(self, permission: java.security.Permission) -> bool: ...
     def newPermissionCollection(self) -> java.security.PermissionCollection: ...
 
-class Random(java.io.Serializable):
+class Random(java.util.random.RandomGenerator, java.io.Serializable):
     @typing.overload
     def __init__(self): ...
     @typing.overload
@@ -2026,13 +2114,33 @@ class Random(java.io.Serializable):
     def longs(self, long: int, long2: int, long3: int) -> java.util.stream.LongStream: ...
     def nextBoolean(self) -> bool: ...
     def nextBytes(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> None: ...
+    @typing.overload
+    def nextDouble(self, double: float) -> float: ...
+    @typing.overload
+    def nextDouble(self, double: float, double2: float) -> float: ...
+    @typing.overload
     def nextDouble(self) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float, float2: float) -> float: ...
+    @typing.overload
     def nextFloat(self) -> float: ...
+    @typing.overload
+    def nextGaussian(self, double: float, double2: float) -> float: ...
+    @typing.overload
     def nextGaussian(self) -> float: ...
     @typing.overload
+    def nextInt(self, int: int, int2: int) -> int: ...
+    @typing.overload
     def nextInt(self) -> int: ...
     @typing.overload
     def nextInt(self, int: int) -> int: ...
+    @typing.overload
+    def nextLong(self, long: int) -> int: ...
+    @typing.overload
+    def nextLong(self, long: int, long2: int) -> int: ...
+    @typing.overload
     def nextLong(self) -> int: ...
     def setSeed(self, long: int) -> None: ...
 
@@ -2130,7 +2238,7 @@ class ServiceLoader(java.lang.Iterable[_ServiceLoader__S], typing.Generic[_Servi
         def get(self) -> _ServiceLoader__Provider__S: ...
         def type(self) -> typing.Type[_ServiceLoader__Provider__S]: ...
 
-class SplittableRandom:
+class SplittableRandom(java.util.random.RandomGenerator, java.util.random.RandomGenerator.SplittableGenerator):
     @typing.overload
     def __init__(self): ...
     @typing.overload
@@ -2159,27 +2267,31 @@ class SplittableRandom:
     def longs(self, long: int, long2: int) -> java.util.stream.LongStream: ...
     @typing.overload
     def longs(self, long: int, long2: int, long3: int) -> java.util.stream.LongStream: ...
-    def nextBoolean(self) -> bool: ...
     def nextBytes(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> None: ...
     @typing.overload
-    def nextDouble(self) -> float: ...
-    @typing.overload
-    def nextDouble(self, double: float) -> float: ...
-    @typing.overload
-    def nextDouble(self, double: float, double2: float) -> float: ...
-    @typing.overload
-    def nextInt(self) -> int: ...
-    @typing.overload
     def nextInt(self, int: int) -> int: ...
     @typing.overload
     def nextInt(self, int: int, int2: int) -> int: ...
     @typing.overload
-    def nextLong(self) -> int: ...
+    def nextInt(self) -> int: ...
     @typing.overload
     def nextLong(self, long: int) -> int: ...
     @typing.overload
     def nextLong(self, long: int, long2: int) -> int: ...
+    @typing.overload
+    def nextLong(self) -> int: ...
+    @typing.overload
     def split(self) -> 'SplittableRandom': ...
+    @typing.overload
+    def split(self, splittableGenerator: java.util.random.RandomGenerator.SplittableGenerator) -> 'SplittableRandom': ...
+    @typing.overload
+    def splits(self) -> java.util.stream.Stream[java.util.random.RandomGenerator.SplittableGenerator]: ...
+    @typing.overload
+    def splits(self, splittableGenerator: java.util.random.RandomGenerator.SplittableGenerator) -> java.util.stream.Stream[java.util.random.RandomGenerator.SplittableGenerator]: ...
+    @typing.overload
+    def splits(self, long: int) -> java.util.stream.Stream[java.util.random.RandomGenerator.SplittableGenerator]: ...
+    @typing.overload
+    def splits(self, long: int, splittableGenerator: java.util.random.RandomGenerator.SplittableGenerator) -> java.util.stream.Stream[java.util.random.RandomGenerator.SplittableGenerator]: ...
 
 class StringJoiner:
     @typing.overload
@@ -3432,6 +3544,14 @@ class HashSet(AbstractSet[_HashSet__E], Set[_HashSet__E], java.lang.Cloneable, j
     def remove(self, object: typing.Any) -> bool: ...
     def size(self) -> int: ...
     def spliterator(self) -> 'Spliterator'[_HashSet__E]: ...
+    _toArray_0__T = typing.TypeVar('_toArray_0__T')  # <T>
+    _toArray_2__T = typing.TypeVar('_toArray_2__T')  # <T>
+    @typing.overload
+    def toArray(self, intFunction: typing.Union[java.util.function.IntFunction[typing.Union[typing.List[_toArray_0__T], jpype.JArray]], typing.Callable[[int], typing.Union[typing.List[_toArray_0__T], jpype.JArray]]]) -> typing.MutableSequence[_toArray_0__T]: ...
+    @typing.overload
+    def toArray(self) -> typing.MutableSequence[typing.Any]: ...
+    @typing.overload
+    def toArray(self, tArray: typing.Union[typing.List[_toArray_2__T], jpype.JArray]) -> typing.MutableSequence[_toArray_2__T]: ...
 
 _LinkedHashMap__K = typing.TypeVar('_LinkedHashMap__K')  # <K>
 _LinkedHashMap__V = typing.TypeVar('_LinkedHashMap__V')  # <V>
@@ -3541,6 +3661,9 @@ class TreeMap(AbstractMap[_TreeMap__K, _TreeMap__V], NavigableMap[_TreeMap__K, _
     def clear(self) -> None: ...
     def clone(self) -> typing.Any: ...
     def comparator(self) -> Comparator[_TreeMap__K]: ...
+    def compute(self, k: _TreeMap__K, biFunction: typing.Union[java.util.function.BiFunction[_TreeMap__K, _TreeMap__V, _TreeMap__V], typing.Callable[[_TreeMap__K, _TreeMap__V], _TreeMap__V]]) -> _TreeMap__V: ...
+    def computeIfAbsent(self, k: _TreeMap__K, function: typing.Union[java.util.function.Function[_TreeMap__K, _TreeMap__V], typing.Callable[[_TreeMap__K], _TreeMap__V]]) -> _TreeMap__V: ...
+    def computeIfPresent(self, k: _TreeMap__K, biFunction: typing.Union[java.util.function.BiFunction[_TreeMap__K, _TreeMap__V, _TreeMap__V], typing.Callable[[_TreeMap__K, _TreeMap__V], _TreeMap__V]]) -> _TreeMap__V: ...
     def containsKey(self, object: typing.Any) -> bool: ...
     def containsValue(self, object: typing.Any) -> bool: ...
     def descendingKeySet(self) -> NavigableSet[_TreeMap__K]: ...
@@ -3563,11 +3686,13 @@ class TreeMap(AbstractMap[_TreeMap__K, _TreeMap__V], NavigableMap[_TreeMap__K, _
     def lastKey(self) -> _TreeMap__K: ...
     def lowerEntry(self, k: _TreeMap__K) -> Map.Entry[_TreeMap__K, _TreeMap__V]: ...
     def lowerKey(self, k: _TreeMap__K) -> _TreeMap__K: ...
+    def merge(self, k: _TreeMap__K, v: _TreeMap__V, biFunction: typing.Union[java.util.function.BiFunction[_TreeMap__V, _TreeMap__V, _TreeMap__V], typing.Callable[[_TreeMap__V, _TreeMap__V], _TreeMap__V]]) -> _TreeMap__V: ...
     def navigableKeySet(self) -> NavigableSet[_TreeMap__K]: ...
     def pollFirstEntry(self) -> Map.Entry[_TreeMap__K, _TreeMap__V]: ...
     def pollLastEntry(self) -> Map.Entry[_TreeMap__K, _TreeMap__V]: ...
     def put(self, k: _TreeMap__K, v: _TreeMap__V) -> _TreeMap__V: ...
     def putAll(self, map: typing.Union[Map[_TreeMap__K, _TreeMap__V], typing.Mapping[_TreeMap__K, _TreeMap__V]]) -> None: ...
+    def putIfAbsent(self, k: _TreeMap__K, v: _TreeMap__V) -> _TreeMap__V: ...
     @typing.overload
     def remove(self, object: typing.Any, object2: typing.Any) -> bool: ...
     @typing.overload
@@ -4014,6 +4139,7 @@ class __module_protocol__(Protocol):
     HashMap: typing.Type[HashMap]
     HashSet: typing.Type[HashSet]
     Hashtable: typing.Type[Hashtable]
+    HexFormat: typing.Type[HexFormat]
     IdentityHashMap: typing.Type[IdentityHashMap]
     IllegalFormatCodePointException: typing.Type[IllegalFormatCodePointException]
     IllegalFormatConversionException: typing.Type[IllegalFormatConversionException]
@@ -4086,6 +4212,7 @@ class __module_protocol__(Protocol):
     jar: java.util.jar.__module_protocol__
     logging: java.util.logging.__module_protocol__
     prefs: java.util.prefs.__module_protocol__
+    random: java.util.random.__module_protocol__
     regex: java.util.regex.__module_protocol__
     spi: java.util.spi.__module_protocol__
     stream: java.util.stream.__module_protocol__
diff --git a/java-stubs/util/concurrent/__init__.pyi b/java-stubs/util/concurrent/__init__.pyi
index 5cd329e4684761b9bbb4d83bbc52cbf71b0eb391..88687a56af627ac3cae705ca4431518dbe84b576 100644
--- a/java-stubs/util/concurrent/__init__.pyi
+++ b/java-stubs/util/concurrent/__init__.pyi
@@ -97,6 +97,15 @@ class CompletionStage(typing.Generic[_CompletionStage__T]):
     @typing.overload
     def applyToEitherAsync(self, completionStage: 'CompletionStage'[_CompletionStage__T], function: typing.Union[java.util.function.Function[_CompletionStage__T, _applyToEitherAsync_1__U], typing.Callable[[_CompletionStage__T], _applyToEitherAsync_1__U]], executor: typing.Union['Executor', typing.Callable]) -> 'CompletionStage'[_applyToEitherAsync_1__U]: ...
     def exceptionally(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, _CompletionStage__T], typing.Callable[[java.lang.Throwable], _CompletionStage__T]]) -> 'CompletionStage'[_CompletionStage__T]: ...
+    @typing.overload
+    def exceptionallyAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, _CompletionStage__T], typing.Callable[[java.lang.Throwable], _CompletionStage__T]]) -> 'CompletionStage'[_CompletionStage__T]: ...
+    @typing.overload
+    def exceptionallyAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, _CompletionStage__T], typing.Callable[[java.lang.Throwable], _CompletionStage__T]], executor: typing.Union['Executor', typing.Callable]) -> 'CompletionStage'[_CompletionStage__T]: ...
+    def exceptionallyCompose(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, 'CompletionStage'[_CompletionStage__T]], typing.Callable[[java.lang.Throwable], 'CompletionStage'[_CompletionStage__T]]]) -> 'CompletionStage'[_CompletionStage__T]: ...
+    @typing.overload
+    def exceptionallyComposeAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, 'CompletionStage'[_CompletionStage__T]], typing.Callable[[java.lang.Throwable], 'CompletionStage'[_CompletionStage__T]]]) -> 'CompletionStage'[_CompletionStage__T]: ...
+    @typing.overload
+    def exceptionallyComposeAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, 'CompletionStage'[_CompletionStage__T]], typing.Callable[[java.lang.Throwable], 'CompletionStage'[_CompletionStage__T]]], executor: typing.Union['Executor', typing.Callable]) -> 'CompletionStage'[_CompletionStage__T]: ...
     _handle__U = typing.TypeVar('_handle__U')  # <U>
     def handle(self, biFunction: typing.Union[java.util.function.BiFunction[_CompletionStage__T, java.lang.Throwable, _handle__U], typing.Callable[[_CompletionStage__T, java.lang.Throwable], _handle__U]]) -> 'CompletionStage'[_handle__U]: ...
     _handleAsync_0__U = typing.TypeVar('_handleAsync_0__U')  # <U>
@@ -646,8 +655,12 @@ class ThreadLocalRandom(java.util.Random):
     def nextDouble(self, double: float) -> float: ...
     @typing.overload
     def nextDouble(self, double: float, double2: float) -> float: ...
+    @typing.overload
     def nextFloat(self) -> float: ...
-    def nextGaussian(self) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float, float2: float) -> float: ...
     @typing.overload
     def nextInt(self) -> int: ...
     @typing.overload
@@ -844,6 +857,15 @@ class CompletableFuture(Future[_CompletableFuture__T], CompletionStage[_Completa
     @staticmethod
     def delayedExecutor(long: int, timeUnit: TimeUnit, executor: typing.Union[Executor, typing.Callable]) -> Executor: ...
     def exceptionally(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, _CompletableFuture__T], typing.Callable[[java.lang.Throwable], _CompletableFuture__T]]) -> 'CompletableFuture'[_CompletableFuture__T]: ...
+    @typing.overload
+    def exceptionallyAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, _CompletableFuture__T], typing.Callable[[java.lang.Throwable], _CompletableFuture__T]]) -> 'CompletableFuture'[_CompletableFuture__T]: ...
+    @typing.overload
+    def exceptionallyAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, _CompletableFuture__T], typing.Callable[[java.lang.Throwable], _CompletableFuture__T]], executor: typing.Union[Executor, typing.Callable]) -> 'CompletableFuture'[_CompletableFuture__T]: ...
+    def exceptionallyCompose(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, CompletionStage[_CompletableFuture__T]], typing.Callable[[java.lang.Throwable], CompletionStage[_CompletableFuture__T]]]) -> 'CompletableFuture'[_CompletableFuture__T]: ...
+    @typing.overload
+    def exceptionallyComposeAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, CompletionStage[_CompletableFuture__T]], typing.Callable[[java.lang.Throwable], CompletionStage[_CompletableFuture__T]]]) -> 'CompletableFuture'[_CompletableFuture__T]: ...
+    @typing.overload
+    def exceptionallyComposeAsync(self, function: typing.Union[java.util.function.Function[java.lang.Throwable, CompletionStage[_CompletableFuture__T]], typing.Callable[[java.lang.Throwable], CompletionStage[_CompletableFuture__T]]], executor: typing.Union[Executor, typing.Callable]) -> 'CompletableFuture'[_CompletableFuture__T]: ...
     _failedFuture__U = typing.TypeVar('_failedFuture__U')  # <U>
     @staticmethod
     def failedFuture(throwable: java.lang.Throwable) -> 'CompletableFuture'[_failedFuture__U]: ...
@@ -1602,9 +1624,15 @@ class ForkJoinPool(AbstractExecutorService):
     _invokeAll_0__T = typing.TypeVar('_invokeAll_0__T')  # <T>
     _invokeAll_1__T = typing.TypeVar('_invokeAll_1__T')  # <T>
     @typing.overload
-    def invokeAll(self, collection: typing.Union[java.util.Collection[Callable[_invokeAll_0__T]], typing.Sequence[Callable[_invokeAll_0__T]], typing.Set[Callable[_invokeAll_0__T]]], long: int, timeUnit: TimeUnit) -> java.util.List[Future[_invokeAll_0__T]]: ...
+    def invokeAll(self, collection: typing.Union[java.util.Collection[Callable[_invokeAll_0__T]], typing.Sequence[Callable[_invokeAll_0__T]], typing.Set[Callable[_invokeAll_0__T]]]) -> java.util.List[Future[_invokeAll_0__T]]: ...
     @typing.overload
-    def invokeAll(self, collection: typing.Union[java.util.Collection[Callable[_invokeAll_1__T]], typing.Sequence[Callable[_invokeAll_1__T]], typing.Set[Callable[_invokeAll_1__T]]]) -> java.util.List[Future[_invokeAll_1__T]]: ...
+    def invokeAll(self, collection: typing.Union[java.util.Collection[Callable[_invokeAll_1__T]], typing.Sequence[Callable[_invokeAll_1__T]], typing.Set[Callable[_invokeAll_1__T]]], long: int, timeUnit: TimeUnit) -> java.util.List[Future[_invokeAll_1__T]]: ...
+    _invokeAny_0__T = typing.TypeVar('_invokeAny_0__T')  # <T>
+    _invokeAny_1__T = typing.TypeVar('_invokeAny_1__T')  # <T>
+    @typing.overload
+    def invokeAny(self, collection: typing.Union[java.util.Collection[Callable[_invokeAny_0__T]], typing.Sequence[Callable[_invokeAny_0__T]], typing.Set[Callable[_invokeAny_0__T]]]) -> _invokeAny_0__T: ...
+    @typing.overload
+    def invokeAny(self, collection: typing.Union[java.util.Collection[Callable[_invokeAny_1__T]], typing.Sequence[Callable[_invokeAny_1__T]], typing.Set[Callable[_invokeAny_1__T]]], long: int, timeUnit: TimeUnit) -> _invokeAny_1__T: ...
     def isQuiescent(self) -> bool: ...
     def isShutdown(self) -> bool: ...
     def isTerminated(self) -> bool: ...
diff --git a/java-stubs/util/concurrent/locks/__init__.pyi b/java-stubs/util/concurrent/locks/__init__.pyi
index d8c3d9fde72f1ee9caf4437a2c28a14a12d858f0..e94a3d685e32dcab70a5d6dc4ca4f6290275b5f7 100644
--- a/java-stubs/util/concurrent/locks/__init__.pyi
+++ b/java-stubs/util/concurrent/locks/__init__.pyi
@@ -58,6 +58,8 @@ class LockSupport:
     @staticmethod
     def parkUntil(long: int) -> None: ...
     @staticmethod
+    def setCurrentBlocker(object: typing.Any) -> None: ...
+    @staticmethod
     def unpark(thread: java.lang.Thread) -> None: ...
 
 class ReadWriteLock:
@@ -105,6 +107,7 @@ class StampedLock(java.io.Serializable):
     def writeLockInterruptibly(self) -> int: ...
 
 class AbstractQueuedLongSynchronizer(AbstractOwnableSynchronizer, java.io.Serializable):
+    def __init__(self): ...
     def acquire(self, long: int) -> None: ...
     def acquireInterruptibly(self, long: int) -> None: ...
     def acquireShared(self, long: int) -> None: ...
diff --git a/java-stubs/util/jar/__init__.pyi b/java-stubs/util/jar/__init__.pyi
index e217e88c2917ad583916359090d637733848f9bf..6afb30a2ee49a683aa6ee3b31a92520eb08e25a3 100644
--- a/java-stubs/util/jar/__init__.pyi
+++ b/java-stubs/util/jar/__init__.pyi
@@ -157,48 +157,6 @@ class Manifest(java.lang.Cloneable):
     def read(self, inputStream: java.io.InputStream) -> None: ...
     def write(self, outputStream: java.io.OutputStream) -> None: ...
 
-class Pack200:
-    @staticmethod
-    def newPacker() -> 'Pack200.Packer': ...
-    @staticmethod
-    def newUnpacker() -> 'Pack200.Unpacker': ...
-    class Packer:
-        SEGMENT_LIMIT: typing.ClassVar[str] = ...
-        KEEP_FILE_ORDER: typing.ClassVar[str] = ...
-        EFFORT: typing.ClassVar[str] = ...
-        DEFLATE_HINT: typing.ClassVar[str] = ...
-        MODIFICATION_TIME: typing.ClassVar[str] = ...
-        PASS_FILE_PFX: typing.ClassVar[str] = ...
-        UNKNOWN_ATTRIBUTE: typing.ClassVar[str] = ...
-        CLASS_ATTRIBUTE_PFX: typing.ClassVar[str] = ...
-        FIELD_ATTRIBUTE_PFX: typing.ClassVar[str] = ...
-        METHOD_ATTRIBUTE_PFX: typing.ClassVar[str] = ...
-        CODE_ATTRIBUTE_PFX: typing.ClassVar[str] = ...
-        PROGRESS: typing.ClassVar[str] = ...
-        KEEP: typing.ClassVar[str] = ...
-        PASS: typing.ClassVar[str] = ...
-        STRIP: typing.ClassVar[str] = ...
-        ERROR: typing.ClassVar[str] = ...
-        TRUE: typing.ClassVar[str] = ...
-        FALSE: typing.ClassVar[str] = ...
-        LATEST: typing.ClassVar[str] = ...
-        @typing.overload
-        def pack(self, jarFile: JarFile, outputStream: java.io.OutputStream) -> None: ...
-        @typing.overload
-        def pack(self, jarInputStream: JarInputStream, outputStream: java.io.OutputStream) -> None: ...
-        def properties(self) -> java.util.SortedMap[str, str]: ...
-    class Unpacker:
-        KEEP: typing.ClassVar[str] = ...
-        TRUE: typing.ClassVar[str] = ...
-        FALSE: typing.ClassVar[str] = ...
-        DEFLATE_HINT: typing.ClassVar[str] = ...
-        PROGRESS: typing.ClassVar[str] = ...
-        def properties(self) -> java.util.SortedMap[str, str]: ...
-        @typing.overload
-        def unpack(self, file: typing.Union[java.io.File, jpype.protocol.SupportsPath], jarOutputStream: JarOutputStream) -> None: ...
-        @typing.overload
-        def unpack(self, inputStream: java.io.InputStream, jarOutputStream: JarOutputStream) -> None: ...
-
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("java.util.jar")``.
@@ -210,4 +168,3 @@ class __module_protocol__(Protocol):
     JarInputStream: typing.Type[JarInputStream]
     JarOutputStream: typing.Type[JarOutputStream]
     Manifest: typing.Type[Manifest]
-    Pack200: typing.Type[Pack200]
diff --git a/java-stubs/util/logging/__init__.pyi b/java-stubs/util/logging/__init__.pyi
index d81c28957f2831c80e842dfb5803cbcda9ba4a10..a638ab772670f1357e4ebe0f7d2ca4acb520c6f0 100644
--- a/java-stubs/util/logging/__init__.pyi
+++ b/java-stubs/util/logging/__init__.pyi
@@ -100,6 +100,7 @@ class LogRecord(java.io.Serializable):
     def getInstant(self) -> java.time.Instant: ...
     def getLevel(self) -> Level: ...
     def getLoggerName(self) -> str: ...
+    def getLongThreadID(self) -> int: ...
     def getMessage(self) -> str: ...
     def getMillis(self) -> int: ...
     def getParameters(self) -> typing.MutableSequence[typing.Any]: ...
@@ -113,6 +114,7 @@ class LogRecord(java.io.Serializable):
     def setInstant(self, instant: typing.Union[java.time.Instant, datetime.datetime]) -> None: ...
     def setLevel(self, level: Level) -> None: ...
     def setLoggerName(self, string: str) -> None: ...
+    def setLongThreadID(self, long: int) -> 'LogRecord': ...
     def setMessage(self, string: str) -> None: ...
     def setMillis(self, long: int) -> None: ...
     def setParameters(self, objectArray: typing.Union[typing.List[typing.Any], jpype.JArray]) -> None: ...
diff --git a/java-stubs/util/random/__init__.pyi b/java-stubs/util/random/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..c51fedf57a84d0e91ab682861781f2254194f690
--- /dev/null
+++ b/java-stubs/util/random/__init__.pyi
@@ -0,0 +1,187 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import java
+import java.math
+import java.util.stream
+import jpype
+import typing
+
+
+
+_RandomGeneratorFactory__T = typing.TypeVar('_RandomGeneratorFactory__T', bound='RandomGenerator')  # <T>
+class RandomGeneratorFactory(typing.Generic[_RandomGeneratorFactory__T]):
+    @staticmethod
+    def all() -> java.util.stream.Stream['RandomGeneratorFactory'['RandomGenerator']]: ...
+    @typing.overload
+    def create(self) -> _RandomGeneratorFactory__T: ...
+    @typing.overload
+    def create(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> _RandomGeneratorFactory__T: ...
+    @typing.overload
+    def create(self, long: int) -> _RandomGeneratorFactory__T: ...
+    def equidistribution(self) -> int: ...
+    @staticmethod
+    def getDefault() -> 'RandomGeneratorFactory'['RandomGenerator']: ...
+    def group(self) -> str: ...
+    def isArbitrarilyJumpable(self) -> bool: ...
+    def isDeprecated(self) -> bool: ...
+    def isHardware(self) -> bool: ...
+    def isJumpable(self) -> bool: ...
+    def isLeapable(self) -> bool: ...
+    def isSplittable(self) -> bool: ...
+    def isStatistical(self) -> bool: ...
+    def isStochastic(self) -> bool: ...
+    def isStreamable(self) -> bool: ...
+    def name(self) -> str: ...
+    _of__T = typing.TypeVar('_of__T', bound='RandomGenerator')  # <T>
+    @staticmethod
+    def of(string: str) -> 'RandomGeneratorFactory'[_of__T]: ...
+    def period(self) -> java.math.BigInteger: ...
+    def stateBits(self) -> int: ...
+
+class RandomGenerator:
+    @typing.overload
+    def doubles(self) -> java.util.stream.DoubleStream: ...
+    @typing.overload
+    def doubles(self, double: float, double2: float) -> java.util.stream.DoubleStream: ...
+    @typing.overload
+    def doubles(self, long: int) -> java.util.stream.DoubleStream: ...
+    @typing.overload
+    def doubles(self, long: int, double: float, double2: float) -> java.util.stream.DoubleStream: ...
+    @staticmethod
+    def getDefault() -> 'RandomGenerator': ...
+    @typing.overload
+    def ints(self) -> java.util.stream.IntStream: ...
+    @typing.overload
+    def ints(self, int: int, int2: int) -> java.util.stream.IntStream: ...
+    @typing.overload
+    def ints(self, long: int) -> java.util.stream.IntStream: ...
+    @typing.overload
+    def ints(self, long: int, int: int, int2: int) -> java.util.stream.IntStream: ...
+    def isDeprecated(self) -> bool: ...
+    @typing.overload
+    def longs(self) -> java.util.stream.LongStream: ...
+    @typing.overload
+    def longs(self, long: int) -> java.util.stream.LongStream: ...
+    @typing.overload
+    def longs(self, long: int, long2: int) -> java.util.stream.LongStream: ...
+    @typing.overload
+    def longs(self, long: int, long2: int, long3: int) -> java.util.stream.LongStream: ...
+    def nextBoolean(self) -> bool: ...
+    def nextBytes(self, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes]) -> None: ...
+    @typing.overload
+    def nextDouble(self) -> float: ...
+    @typing.overload
+    def nextDouble(self, double: float) -> float: ...
+    @typing.overload
+    def nextDouble(self, double: float, double2: float) -> float: ...
+    def nextExponential(self) -> float: ...
+    @typing.overload
+    def nextFloat(self) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float, float2: float) -> float: ...
+    @typing.overload
+    def nextGaussian(self) -> float: ...
+    @typing.overload
+    def nextGaussian(self, double: float, double2: float) -> float: ...
+    @typing.overload
+    def nextInt(self) -> int: ...
+    @typing.overload
+    def nextInt(self, int: int) -> int: ...
+    @typing.overload
+    def nextInt(self, int: int, int2: int) -> int: ...
+    @typing.overload
+    def nextLong(self) -> int: ...
+    @typing.overload
+    def nextLong(self, long: int) -> int: ...
+    @typing.overload
+    def nextLong(self, long: int, long2: int) -> int: ...
+    @staticmethod
+    def of(string: str) -> 'RandomGenerator': ...
+    class ArbitrarilyJumpableGenerator(java.util.random.RandomGenerator.LeapableGenerator):
+        def copy(self) -> 'RandomGenerator.ArbitrarilyJumpableGenerator': ...
+        @typing.overload
+        def copyAndJump(self) -> 'RandomGenerator': ...
+        @typing.overload
+        def copyAndJump(self, double: float) -> 'RandomGenerator.ArbitrarilyJumpableGenerator': ...
+        @typing.overload
+        def jump(self, double: float) -> None: ...
+        @typing.overload
+        def jump(self) -> None: ...
+        def jumpPowerOfTwo(self, int: int) -> None: ...
+        @typing.overload
+        def jumps(self, double: float) -> java.util.stream.Stream['RandomGenerator.ArbitrarilyJumpableGenerator']: ...
+        @typing.overload
+        def jumps(self, long: int, double: float) -> java.util.stream.Stream['RandomGenerator.ArbitrarilyJumpableGenerator']: ...
+        @typing.overload
+        def jumps(self) -> java.util.stream.Stream['RandomGenerator']: ...
+        @typing.overload
+        def jumps(self, long: int) -> java.util.stream.Stream['RandomGenerator']: ...
+        def leap(self) -> None: ...
+        @staticmethod
+        def of(string: str) -> 'RandomGenerator.ArbitrarilyJumpableGenerator': ...
+    class JumpableGenerator(java.util.random.RandomGenerator.StreamableGenerator):
+        def copy(self) -> 'RandomGenerator.JumpableGenerator': ...
+        def copyAndJump(self) -> 'RandomGenerator': ...
+        def jump(self) -> None: ...
+        def jumpDistance(self) -> float: ...
+        @typing.overload
+        def jumps(self) -> java.util.stream.Stream['RandomGenerator']: ...
+        @typing.overload
+        def jumps(self, long: int) -> java.util.stream.Stream['RandomGenerator']: ...
+        @staticmethod
+        def of(string: str) -> 'RandomGenerator.JumpableGenerator': ...
+        @typing.overload
+        def rngs(self) -> java.util.stream.Stream['RandomGenerator']: ...
+        @typing.overload
+        def rngs(self, long: int) -> java.util.stream.Stream['RandomGenerator']: ...
+    class LeapableGenerator(java.util.random.RandomGenerator.JumpableGenerator):
+        def copy(self) -> 'RandomGenerator.LeapableGenerator': ...
+        def copyAndLeap(self) -> 'RandomGenerator.JumpableGenerator': ...
+        def leap(self) -> None: ...
+        def leapDistance(self) -> float: ...
+        @typing.overload
+        def leaps(self) -> java.util.stream.Stream['RandomGenerator.JumpableGenerator']: ...
+        @typing.overload
+        def leaps(self, long: int) -> java.util.stream.Stream['RandomGenerator.JumpableGenerator']: ...
+        @staticmethod
+        def of(string: str) -> 'RandomGenerator.LeapableGenerator': ...
+    class SplittableGenerator(java.util.random.RandomGenerator.StreamableGenerator):
+        @staticmethod
+        def of(string: str) -> 'RandomGenerator.SplittableGenerator': ...
+        @typing.overload
+        def rngs(self) -> java.util.stream.Stream['RandomGenerator']: ...
+        @typing.overload
+        def rngs(self, long: int) -> java.util.stream.Stream['RandomGenerator']: ...
+        @typing.overload
+        def split(self) -> 'RandomGenerator.SplittableGenerator': ...
+        @typing.overload
+        def split(self, splittableGenerator: 'RandomGenerator.SplittableGenerator') -> 'RandomGenerator.SplittableGenerator': ...
+        @typing.overload
+        def splits(self, splittableGenerator: 'RandomGenerator.SplittableGenerator') -> java.util.stream.Stream['RandomGenerator.SplittableGenerator']: ...
+        @typing.overload
+        def splits(self, long: int) -> java.util.stream.Stream['RandomGenerator.SplittableGenerator']: ...
+        @typing.overload
+        def splits(self, long: int, splittableGenerator: 'RandomGenerator.SplittableGenerator') -> java.util.stream.Stream['RandomGenerator.SplittableGenerator']: ...
+        @typing.overload
+        def splits(self) -> java.util.stream.Stream['RandomGenerator.SplittableGenerator']: ...
+    class StreamableGenerator(java.util.random.RandomGenerator):
+        @staticmethod
+        def of(string: str) -> 'RandomGenerator.StreamableGenerator': ...
+        @typing.overload
+        def rngs(self) -> java.util.stream.Stream['RandomGenerator']: ...
+        @typing.overload
+        def rngs(self, long: int) -> java.util.stream.Stream['RandomGenerator']: ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("java.util.random")``.
+
+    RandomGenerator: typing.Type[RandomGenerator]
+    RandomGeneratorFactory: typing.Type[RandomGeneratorFactory]
diff --git a/java-stubs/util/stream/__init__.pyi b/java-stubs/util/stream/__init__.pyi
index fae99c098960aed52271a4c221c2ae420914d056..041268999b10e6add930246f1457025707aad27a 100644
--- a/java-stubs/util/stream/__init__.pyi
+++ b/java-stubs/util/stream/__init__.pyi
@@ -192,6 +192,12 @@ class Collectors:
     _summingLong__T = typing.TypeVar('_summingLong__T')  # <T>
     @staticmethod
     def summingLong(toLongFunction: typing.Union[java.util.function.ToLongFunction[_summingLong__T], typing.Callable[[_summingLong__T], int]]) -> Collector[_summingLong__T, typing.Any, int]: ...
+    _teeing__T = typing.TypeVar('_teeing__T')  # <T>
+    _teeing__R1 = typing.TypeVar('_teeing__R1')  # <R1>
+    _teeing__R2 = typing.TypeVar('_teeing__R2')  # <R2>
+    _teeing__R = typing.TypeVar('_teeing__R')  # <R>
+    @staticmethod
+    def teeing(collector: Collector[_teeing__T, typing.Any, _teeing__R1], collector2: Collector[_teeing__T, typing.Any, _teeing__R2], biFunction: typing.Union[java.util.function.BiFunction[_teeing__R1, _teeing__R2, _teeing__R], typing.Callable[[_teeing__R1, _teeing__R2], _teeing__R]]) -> Collector[_teeing__T, typing.Any, _teeing__R]: ...
     _toCollection__T = typing.TypeVar('_toCollection__T')  # <T>
     _toCollection__C = typing.TypeVar('_toCollection__C', bound=java.util.Collection)  # <C>
     @staticmethod
@@ -320,6 +326,7 @@ class DoubleStream(BaseStream[float, 'DoubleStream']):
     def iterator(self) -> java.util.PrimitiveIterator.OfDouble: ...
     def limit(self, long: int) -> 'DoubleStream': ...
     def map(self, doubleUnaryOperator: typing.Union[java.util.function.DoubleUnaryOperator, typing.Callable]) -> 'DoubleStream': ...
+    def mapMulti(self, doubleMapMultiConsumer: typing.Union['DoubleStream.DoubleMapMultiConsumer', typing.Callable]) -> 'DoubleStream': ...
     def mapToInt(self, doubleToIntFunction: typing.Union[java.util.function.DoubleToIntFunction, typing.Callable]) -> 'IntStream': ...
     def mapToLong(self, doubleToLongFunction: typing.Union[java.util.function.DoubleToLongFunction, typing.Callable]) -> 'LongStream': ...
     _mapToObj__U = typing.TypeVar('_mapToObj__U')  # <U>
@@ -351,6 +358,8 @@ class DoubleStream(BaseStream[float, 'DoubleStream']):
         def accept(self, double: float) -> None: ...
         def add(self, double: float) -> 'DoubleStream.Builder': ...
         def build(self) -> 'DoubleStream': ...
+    class DoubleMapMultiConsumer:
+        def accept(self, double: float, doubleConsumer: typing.Union[java.util.function.DoubleConsumer, typing.Callable]) -> None: ...
 
 class IntStream(BaseStream[int, 'IntStream']):
     def allMatch(self, intPredicate: typing.Union[java.util.function.IntPredicate, typing.Callable]) -> bool: ...
@@ -387,6 +396,7 @@ class IntStream(BaseStream[int, 'IntStream']):
     def iterator(self) -> java.util.PrimitiveIterator.OfInt: ...
     def limit(self, long: int) -> 'IntStream': ...
     def map(self, intUnaryOperator: typing.Union[java.util.function.IntUnaryOperator, typing.Callable]) -> 'IntStream': ...
+    def mapMulti(self, intMapMultiConsumer: typing.Union['IntStream.IntMapMultiConsumer', typing.Callable]) -> 'IntStream': ...
     def mapToDouble(self, intToDoubleFunction: typing.Union[java.util.function.IntToDoubleFunction, typing.Callable]) -> DoubleStream: ...
     def mapToLong(self, intToLongFunction: typing.Union[java.util.function.IntToLongFunction, typing.Callable]) -> 'LongStream': ...
     _mapToObj__U = typing.TypeVar('_mapToObj__U')  # <U>
@@ -422,6 +432,8 @@ class IntStream(BaseStream[int, 'IntStream']):
         def accept(self, int: int) -> None: ...
         def add(self, int: int) -> 'IntStream.Builder': ...
         def build(self) -> 'IntStream': ...
+    class IntMapMultiConsumer:
+        def accept(self, int: int, intConsumer: typing.Union[java.util.function.IntConsumer, typing.Callable]) -> None: ...
 
 class LongStream(BaseStream[int, 'LongStream']):
     def allMatch(self, longPredicate: typing.Union[java.util.function.LongPredicate, typing.Callable]) -> bool: ...
@@ -457,6 +469,7 @@ class LongStream(BaseStream[int, 'LongStream']):
     def iterator(self) -> java.util.PrimitiveIterator.OfLong: ...
     def limit(self, long: int) -> 'LongStream': ...
     def map(self, longUnaryOperator: typing.Union[java.util.function.LongUnaryOperator, typing.Callable]) -> 'LongStream': ...
+    def mapMulti(self, longMapMultiConsumer: typing.Union['LongStream.LongMapMultiConsumer', typing.Callable]) -> 'LongStream': ...
     def mapToDouble(self, longToDoubleFunction: typing.Union[java.util.function.LongToDoubleFunction, typing.Callable]) -> DoubleStream: ...
     def mapToInt(self, longToIntFunction: typing.Union[java.util.function.LongToIntFunction, typing.Callable]) -> IntStream: ...
     _mapToObj__U = typing.TypeVar('_mapToObj__U')  # <U>
@@ -492,6 +505,8 @@ class LongStream(BaseStream[int, 'LongStream']):
         def accept(self, long: int) -> None: ...
         def add(self, long: int) -> 'LongStream.Builder': ...
         def build(self) -> 'LongStream': ...
+    class LongMapMultiConsumer:
+        def accept(self, long: int, longConsumer: typing.Union[java.util.function.LongConsumer, typing.Callable]) -> None: ...
 
 _Stream__Builder__T = typing.TypeVar('_Stream__Builder__T')  # <T>
 _Stream__T = typing.TypeVar('_Stream__T')  # <T>
@@ -541,6 +556,11 @@ class Stream(BaseStream[_Stream__T, 'Stream'[_Stream__T]], typing.Generic[_Strea
     def limit(self, long: int) -> 'Stream'[_Stream__T]: ...
     _map__R = typing.TypeVar('_map__R')  # <R>
     def map(self, function: typing.Union[java.util.function.Function[_Stream__T, _map__R], typing.Callable[[_Stream__T], _map__R]]) -> 'Stream'[_map__R]: ...
+    _mapMulti__R = typing.TypeVar('_mapMulti__R')  # <R>
+    def mapMulti(self, biConsumer: typing.Union[java.util.function.BiConsumer[_Stream__T, java.util.function.Consumer[_mapMulti__R]], typing.Callable[[_Stream__T, java.util.function.Consumer[_mapMulti__R]], None]]) -> 'Stream'[_mapMulti__R]: ...
+    def mapMultiToDouble(self, biConsumer: typing.Union[java.util.function.BiConsumer[_Stream__T, java.util.function.DoubleConsumer], typing.Callable[[_Stream__T, java.util.function.DoubleConsumer], None]]) -> DoubleStream: ...
+    def mapMultiToInt(self, biConsumer: typing.Union[java.util.function.BiConsumer[_Stream__T, java.util.function.IntConsumer], typing.Callable[[_Stream__T, java.util.function.IntConsumer], None]]) -> IntStream: ...
+    def mapMultiToLong(self, biConsumer: typing.Union[java.util.function.BiConsumer[_Stream__T, java.util.function.LongConsumer], typing.Callable[[_Stream__T, java.util.function.LongConsumer], None]]) -> LongStream: ...
     def mapToDouble(self, toDoubleFunction: typing.Union[java.util.function.ToDoubleFunction[_Stream__T], typing.Callable[[_Stream__T], float]]) -> DoubleStream: ...
     def mapToInt(self, toIntFunction: typing.Union[java.util.function.ToIntFunction[_Stream__T], typing.Callable[[_Stream__T], int]]) -> IntStream: ...
     def mapToLong(self, toLongFunction: typing.Union[java.util.function.ToLongFunction[_Stream__T], typing.Callable[[_Stream__T], int]]) -> LongStream: ...
@@ -577,6 +597,7 @@ class Stream(BaseStream[_Stream__T, 'Stream'[_Stream__T]], typing.Generic[_Strea
     def toArray(self) -> typing.MutableSequence[typing.Any]: ...
     @typing.overload
     def toArray(self, intFunction: typing.Union[java.util.function.IntFunction[typing.Union[typing.List[_toArray_1__A], jpype.JArray]], typing.Callable[[int], typing.Union[typing.List[_toArray_1__A], jpype.JArray]]]) -> typing.MutableSequence[_toArray_1__A]: ...
+    def toList(self) -> java.util.List[_Stream__T]: ...
     class Builder(java.util.function.Consumer[_Stream__Builder__T], typing.Generic[_Stream__Builder__T]):
         def accept(self, t: _Stream__Builder__T) -> None: ...
         def add(self, t: _Stream__Builder__T) -> 'Stream.Builder'[_Stream__Builder__T]: ...
diff --git a/orekit_jpype/jars/hipparchus-core-3.0.jar b/orekit_jpype/jars/hipparchus-core-3.0.jar
deleted file mode 100644
index b9aa0e657068e1d9ad455cbdc2d91a1cc28687da..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-core-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-core-3.1.jar b/orekit_jpype/jars/hipparchus-core-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..3474aa93f142c168e81faf682375b6f8f0b51215
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-core-3.1.jar differ
diff --git a/orekit_jpype/jars/hipparchus-filtering-3.0.jar b/orekit_jpype/jars/hipparchus-filtering-3.0.jar
deleted file mode 100644
index e048d10d852fc62d6fe08f6d66c589b5319f30bd..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-filtering-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-filtering-3.1.jar b/orekit_jpype/jars/hipparchus-filtering-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..cdadd3540a04b2e2ac45c0f9937071f24dcdce62
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-filtering-3.1.jar differ
diff --git a/orekit_jpype/jars/hipparchus-fitting-3.0.jar b/orekit_jpype/jars/hipparchus-fitting-3.0.jar
deleted file mode 100644
index 1a3eadf1eb847646aaa3b561cbcc8c7fd8baf8d9..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-fitting-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-fitting-3.1.jar b/orekit_jpype/jars/hipparchus-fitting-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..70dce54fb26ea7db9f77ffe3890f830a1e4da360
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-fitting-3.1.jar differ
diff --git a/orekit_jpype/jars/hipparchus-geometry-3.0.jar b/orekit_jpype/jars/hipparchus-geometry-3.0.jar
deleted file mode 100644
index 7b563e06f10defeeabcd7c2b8035a8eb9ff9e531..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-geometry-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-geometry-3.1.jar b/orekit_jpype/jars/hipparchus-geometry-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..ccf03f2c984b089200df136ff27cef15f0ce6f63
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-geometry-3.1.jar differ
diff --git a/orekit_jpype/jars/hipparchus-ode-3.0.jar b/orekit_jpype/jars/hipparchus-ode-3.0.jar
deleted file mode 100644
index 30c40ac3acf6422c20465332ceaab724d95b4c5b..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-ode-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-ode-3.1.jar b/orekit_jpype/jars/hipparchus-ode-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..b50e6486b50f1d1c84f939ccfd676770e10b89b3
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-ode-3.1.jar differ
diff --git a/orekit_jpype/jars/hipparchus-optim-3.0.jar b/orekit_jpype/jars/hipparchus-optim-3.0.jar
deleted file mode 100644
index 2d7a575c68b564b601a471f3def2cd3d7554b01f..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-optim-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-optim-3.1.jar b/orekit_jpype/jars/hipparchus-optim-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..c84bdb44e36e0a979b831bbd1c8d6f673494810d
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-optim-3.1.jar differ
diff --git a/orekit_jpype/jars/hipparchus-stat-3.0.jar b/orekit_jpype/jars/hipparchus-stat-3.0.jar
deleted file mode 100644
index 5a1d0d25204d932a720cbb02a12e223b456ee3f7..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/hipparchus-stat-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/hipparchus-stat-3.1.jar b/orekit_jpype/jars/hipparchus-stat-3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..311e1a67608c7d7d1165041143303d66a4152b26
Binary files /dev/null and b/orekit_jpype/jars/hipparchus-stat-3.1.jar differ
diff --git a/orekit_jpype/jars/orekit-12.0.2.jar b/orekit_jpype/jars/orekit-12.1.1.jar
similarity index 58%
rename from orekit_jpype/jars/orekit-12.0.2.jar
rename to orekit_jpype/jars/orekit-12.1.1.jar
index 0b143d4b01d084312a2454d4f1c8e86458174175..3bbe1578e8af4c0efa3e9aa4bcaace8f07067673 100644
Binary files a/orekit_jpype/jars/orekit-12.0.2.jar and b/orekit_jpype/jars/orekit-12.1.1.jar differ
diff --git a/orekit_jpype/jars/rugged-3.0.jar b/orekit_jpype/jars/rugged-3.0.jar
deleted file mode 100644
index 69a703313aa34d18d63eaaa104bd04b3f1ad0b72..0000000000000000000000000000000000000000
Binary files a/orekit_jpype/jars/rugged-3.0.jar and /dev/null differ
diff --git a/orekit_jpype/jars/rugged-4.0-20240603.065802-2.jar b/orekit_jpype/jars/rugged-4.0-20240603.065802-2.jar
new file mode 100644
index 0000000000000000000000000000000000000000..39e1d6041ef3450dcaea3ce95e5859fbfe04a756
Binary files /dev/null and b/orekit_jpype/jars/rugged-4.0-20240603.065802-2.jar differ
diff --git a/org-stubs/hipparchus/__init__.pyi b/org-stubs/hipparchus/__init__.pyi
index 7db69d5a74953511e8e774b4285604190ad6a480..b8b0b64cf829a708066ef74be3e93f3f909e7ed6 100644
--- a/org-stubs/hipparchus/__init__.pyi
+++ b/org-stubs/hipparchus/__init__.pyi
@@ -29,14 +29,15 @@ import typing
 _Field__T = typing.TypeVar('_Field__T', bound='FieldElement')  # <T>
 class Field(typing.Generic[_Field__T]):
     """
-    public interface Field<T extends :class:`~org.hipparchus.FieldElement`<T>>
+    public interfaceField<T extends :class:`~org.hipparchus.FieldElement`<T>>
     
         Interface representing a `field <http://mathworld.wolfram.com/Field.html>`.
     
         Classes implementing this interface will often be singletons.
     
         Also see:
-            :class:`~org.hipparchus.FieldElement`
+    
+              - :class:`~org.hipparchus.FieldElement`
     """
     def getOne(self) -> _Field__T:
         """
@@ -69,12 +70,13 @@ class Field(typing.Generic[_Field__T]):
 _FieldElement__T = typing.TypeVar('_FieldElement__T', bound='FieldElement')  # <T>
 class FieldElement(typing.Generic[_FieldElement__T]):
     """
-    public interface FieldElement<T extends FieldElement<T>>
+    public interfaceFieldElement<T extends FieldElement<T>>
     
         Interface representing `field <http://mathworld.wolfram.com/Field.html>` elements.
     
         Also see:
-            :class:`~org.hipparchus.Field`
+    
+              - :class:`~org.hipparchus.Field`
     """
     def add(self, t: _FieldElement__T) -> _FieldElement__T: ...
     def divide(self, t: _FieldElement__T) -> _FieldElement__T: ...
@@ -119,7 +121,7 @@ class FieldElement(typing.Generic[_FieldElement__T]):
             Returns:
                 A new element representing n × this.
         
-        :class:`~org.hipparchus.FieldElement` multiply (:class:`~org.hipparchus.FieldElement` a) throws :class:`~org.hipparchus.exception.NullArgumentException`
+        :class:`~org.hipparchus.FieldElement` multiply(:class:`~org.hipparchus.FieldElement` a) throws :class:`~org.hipparchus.exception.NullArgumentException`
         
             Compute this × a.
         
@@ -153,7 +155,7 @@ class FieldElement(typing.Generic[_FieldElement__T]):
 _CalculusFieldElement__T = typing.TypeVar('_CalculusFieldElement__T', bound=FieldElement)  # <T>
 class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generic[_CalculusFieldElement__T]):
     """
-    public interface CalculusFieldElement<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.FieldElement`<T>
+    public interfaceCalculusFieldElement<T extends :class:`~org.hipparchus.FieldElement`<T>>extends :class:`~org.hipparchus.FieldElement`<T>
     
         Interface representing a `field <http://mathworld.wolfram.com/Field.html>` with calculus capabilities (sin, cos, ...).
     
@@ -161,14 +163,13 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
             1.7
     
         Also see:
-            :class:`~org.hipparchus.FieldElement`
+    
+              - :class:`~org.hipparchus.FieldElement`
     """
     def abs(self) -> _CalculusFieldElement__T:
         """
             absolute value.
         
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
             Returns:
                 abs(this)
         
@@ -196,7 +197,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def add(self, double: float) -> _CalculusFieldElement__T:
+    def add(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T:
         """
             '+' operator.
         
@@ -210,7 +211,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def add(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def add(self, double: float) -> _CalculusFieldElement__T: ...
     def asin(self) -> _CalculusFieldElement__T:
         """
             Arc sine operation.
@@ -280,7 +281,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def copySign(self, double: float) -> _CalculusFieldElement__T:
+    def copySign(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T:
         """
             Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
         
@@ -302,7 +303,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def copySign(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def copySign(self, double: float) -> _CalculusFieldElement__T: ...
     def cos(self) -> _CalculusFieldElement__T:
         """
             Cosine operation.
@@ -334,6 +335,17 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
             Returns:
                 this÷a
         
+            Compute this ÷ a.
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
+        
+            Parameters:
+                a (:class:`~org.hipparchus.CalculusFieldElement`): element to divide by
+        
+            Returns:
+                a new element representing this ÷ a
+        
         
         """
         ...
@@ -431,7 +443,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def linearCombination(self, double: float, t: _CalculusFieldElement__T, double2: float, t2: _CalculusFieldElement__T) -> _CalculusFieldElement__T:
+    def linearCombination(self, t: _CalculusFieldElement__T, t2: _CalculusFieldElement__T, t3: _CalculusFieldElement__T, t4: _CalculusFieldElement__T) -> _CalculusFieldElement__T:
         """
             Compute a linear combination.
         
@@ -445,8 +457,10 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -460,8 +474,10 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -477,8 +493,10 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -494,8 +512,10 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -513,8 +533,10 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -532,26 +554,28 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
         ...
     @typing.overload
-    def linearCombination(self, double: float, t: _CalculusFieldElement__T, double2: float, t2: _CalculusFieldElement__T, double3: float, t3: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, t: _CalculusFieldElement__T, t2: _CalculusFieldElement__T, t3: _CalculusFieldElement__T, t4: _CalculusFieldElement__T, t5: _CalculusFieldElement__T, t6: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def linearCombination(self, double: float, t: _CalculusFieldElement__T, double2: float, t2: _CalculusFieldElement__T, double3: float, t3: _CalculusFieldElement__T, double4: float, t4: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, t: _CalculusFieldElement__T, t2: _CalculusFieldElement__T, t3: _CalculusFieldElement__T, t4: _CalculusFieldElement__T, t5: _CalculusFieldElement__T, t6: _CalculusFieldElement__T, t7: _CalculusFieldElement__T, t8: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], tArray: typing.Union[typing.List[_CalculusFieldElement__T], jpype.JArray]) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, tArray: typing.Union[typing.List[_CalculusFieldElement__T], jpype.JArray], tArray2: typing.Union[typing.List[_CalculusFieldElement__T], jpype.JArray]) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def linearCombination(self, t: _CalculusFieldElement__T, t2: _CalculusFieldElement__T, t3: _CalculusFieldElement__T, t4: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, double: float, t: _CalculusFieldElement__T, double2: float, t2: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def linearCombination(self, t: _CalculusFieldElement__T, t2: _CalculusFieldElement__T, t3: _CalculusFieldElement__T, t4: _CalculusFieldElement__T, t5: _CalculusFieldElement__T, t6: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, double: float, t: _CalculusFieldElement__T, double2: float, t2: _CalculusFieldElement__T, double3: float, t3: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def linearCombination(self, t: _CalculusFieldElement__T, t2: _CalculusFieldElement__T, t3: _CalculusFieldElement__T, t4: _CalculusFieldElement__T, t5: _CalculusFieldElement__T, t6: _CalculusFieldElement__T, t7: _CalculusFieldElement__T, t8: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, double: float, t: _CalculusFieldElement__T, double2: float, t2: _CalculusFieldElement__T, double3: float, t3: _CalculusFieldElement__T, double4: float, t4: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def linearCombination(self, tArray: typing.Union[typing.List[_CalculusFieldElement__T], jpype.JArray], tArray2: typing.Union[typing.List[_CalculusFieldElement__T], jpype.JArray]) -> _CalculusFieldElement__T: ...
+    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], tArray: typing.Union[typing.List[_CalculusFieldElement__T], jpype.JArray]) -> _CalculusFieldElement__T: ...
     def log(self) -> _CalculusFieldElement__T:
         """
             Natural logarithm.
@@ -583,7 +607,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def multiply(self, double: float) -> _CalculusFieldElement__T:
+    def multiply(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T:
         """
             '×' operator.
         
@@ -593,13 +617,25 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
             Returns:
                 this×a
         
+            Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
+            \sum_{i=1}^n \mathrm{this} \]
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
+        
+            Parameters:
+                n (int): Number of times :code:`this` must be added to itself.
+        
+            Returns:
+                A new element representing n × this.
+        
         
         """
         ...
     @typing.overload
-    def multiply(self, int: int) -> _CalculusFieldElement__T: ...
+    def multiply(self, double: float) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def multiply(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
+    def multiply(self, int: int) -> _CalculusFieldElement__T: ...
     def newInstance(self, double: float) -> _CalculusFieldElement__T:
         """
             Create an instance corresponding to a constant real value.
@@ -627,7 +663,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def pow(self, double: float) -> _CalculusFieldElement__T:
+    def pow(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T:
         """
             Power operation.
         
@@ -645,7 +681,7 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
             Returns:
                 this :sup:`n`
         
-        :class:`~org.hipparchus.CalculusFieldElement` pow (:class:`~org.hipparchus.CalculusFieldElement` e) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        :class:`~org.hipparchus.CalculusFieldElement` pow(:class:`~org.hipparchus.CalculusFieldElement` e) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Power operation.
         
@@ -662,22 +698,9 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
         """
         ...
     @typing.overload
-    def pow(self, int: int) -> _CalculusFieldElement__T: ...
+    def pow(self, double: float) -> _CalculusFieldElement__T: ...
     @typing.overload
-    def pow(self, t: _CalculusFieldElement__T) -> _CalculusFieldElement__T: ...
-    def reciprocal(self) -> _CalculusFieldElement__T:
-        """
-            Returns the multiplicative inverse of :code:`this` element.
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Returns:
-                the inverse of :code:`this`.
-        
-        
-        """
-        ...
+    def pow(self, int: int) -> _CalculusFieldElement__T: ...
     @typing.overload
     def remainder(self, double: float) -> _CalculusFieldElement__T:
         """
@@ -789,6 +812,19 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
                 square root of the instance
         
         
+        """
+        ...
+    def square(self) -> _CalculusFieldElement__T:
+        """
+            Compute this × this.
+        
+            Returns:
+                a new element representing this × this
+        
+            Since:
+                3.1
+        
+        
         """
         ...
     @typing.overload
@@ -802,6 +838,17 @@ class CalculusFieldElement(FieldElement[_CalculusFieldElement__T], typing.Generi
             Returns:
                 this-a
         
+            Compute this - a.
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
+        
+            Parameters:
+                a (:class:`~org.hipparchus.CalculusFieldElement`): element to subtract
+        
+            Returns:
+                a new element representing this - a
+        
         
         """
         ...
diff --git a/org-stubs/hipparchus/analysis/__init__.pyi b/org-stubs/hipparchus/analysis/__init__.pyi
index 38194c13fda0e01d75b8d25c2fc14dce888d8853..41d59829ca4d7f70778465427e7c1997656d99d3 100644
--- a/org-stubs/hipparchus/analysis/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/__init__.pyi
@@ -19,7 +19,7 @@ import typing
 
 class BivariateFunction:
     """
-    public interface BivariateFunction
+    public interfaceBivariateFunction
     
         An interface representing a bivariate real function.
     """
@@ -41,7 +41,7 @@ class BivariateFunction:
 _CalculusFieldBivariateFunction__T = typing.TypeVar('_CalculusFieldBivariateFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldBivariateFunction(typing.Generic[_CalculusFieldBivariateFunction__T]):
     """
-    public interface CalculusFieldBivariateFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldBivariateFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a bivariate field function.
     
@@ -66,7 +66,7 @@ class CalculusFieldBivariateFunction(typing.Generic[_CalculusFieldBivariateFunct
 _CalculusFieldMultivariateFunction__T = typing.TypeVar('_CalculusFieldMultivariateFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldMultivariateFunction(typing.Generic[_CalculusFieldMultivariateFunction__T]):
     """
-    public interface CalculusFieldMultivariateFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldMultivariateFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a scalar multivariate function.
     
@@ -74,7 +74,8 @@ class CalculusFieldMultivariateFunction(typing.Generic[_CalculusFieldMultivariat
             2.2
     
         Also see:
-            :class:`~org.hipparchus.analysis.MultivariateFunction`
+    
+              - :class:`~org.hipparchus.analysis.MultivariateFunction`
     """
     def value(self, *t: _CalculusFieldMultivariateFunction__T) -> _CalculusFieldMultivariateFunction__T:
         """
@@ -93,7 +94,7 @@ class CalculusFieldMultivariateFunction(typing.Generic[_CalculusFieldMultivariat
 _CalculusFieldMultivariateMatrixFunction__T = typing.TypeVar('_CalculusFieldMultivariateMatrixFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldMultivariateMatrixFunction(typing.Generic[_CalculusFieldMultivariateMatrixFunction__T]):
     """
-    public interface CalculusFieldMultivariateMatrixFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldMultivariateMatrixFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a matrix multivariate function.
     
@@ -101,7 +102,8 @@ class CalculusFieldMultivariateMatrixFunction(typing.Generic[_CalculusFieldMulti
             2.2
     
         Also see:
-            :class:`~org.hipparchus.analysis.MultivariateMatrixFunction`
+    
+              - :class:`~org.hipparchus.analysis.MultivariateMatrixFunction`
     """
     def value(self, *t: _CalculusFieldMultivariateMatrixFunction__T) -> typing.MutableSequence[typing.MutableSequence[_CalculusFieldMultivariateMatrixFunction__T]]:
         """
@@ -120,7 +122,7 @@ class CalculusFieldMultivariateMatrixFunction(typing.Generic[_CalculusFieldMulti
 _CalculusFieldMultivariateVectorFunction__T = typing.TypeVar('_CalculusFieldMultivariateVectorFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldMultivariateVectorFunction(typing.Generic[_CalculusFieldMultivariateVectorFunction__T]):
     """
-    public interface CalculusFieldMultivariateVectorFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldMultivariateVectorFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a vector multivariate function.
     
@@ -128,7 +130,8 @@ class CalculusFieldMultivariateVectorFunction(typing.Generic[_CalculusFieldMulti
             2.2
     
         Also see:
-            :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
+    
+              - :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
     """
     def value(self, *t: _CalculusFieldMultivariateVectorFunction__T) -> typing.MutableSequence[_CalculusFieldMultivariateVectorFunction__T]:
         """
@@ -147,7 +150,7 @@ class CalculusFieldMultivariateVectorFunction(typing.Generic[_CalculusFieldMulti
 _CalculusFieldUnivariateFunction__T = typing.TypeVar('_CalculusFieldUnivariateFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldUnivariateFunction(typing.Generic[_CalculusFieldUnivariateFunction__T]):
     """
-    public interface CalculusFieldUnivariateFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldUnivariateFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a univariate real function.
     
@@ -160,43 +163,44 @@ class CalculusFieldUnivariateFunction(typing.Generic[_CalculusFieldUnivariateFun
     
         .. code-block: java
         
-        
-         private static class LocalException extends RuntimeException {
-             // The x value that caused the problem.
-             private final SomeFieldType x;
-        
-             public LocalException(SomeFieldType x) {
-                 this.x = x;
-             }
-        
-             public double getX() {
-                 return x;
-             }
-         }
-        
-         private static class MyFunction implements FieldUnivariateFunction<SomeFieldType> {
-             public SomeFieldType value(SomeFieldType x) {
-                 SomeFieldType y = hugeFormula(x);
-                 if (somethingBadHappens) {
-                   throw new LocalException(x);
-                 }
-                 return y;
-             }
-         }
-        
-         public void compute() {
-             try {
-                 solver.solve(maxEval, new MyFunction(a, b, c), min, max);
-             } catch (LocalException le) {
-                 // Retrieve the x value.
-             }
-         }
+         private static class LocalException extends RuntimeException {
+             // The x value that caused the problem.
+             private final SomeFieldType x;
+        
+             public LocalException(SomeFieldType x) {
+                 this.x = x;
+             }
+        
+             public double getX() {
+                 return x;
+             }
+         }
+        
+         private static class MyFunction implements FieldUnivariateFunction<SomeFieldType> {
+             public SomeFieldType value(SomeFieldType x) {
+                 SomeFieldType y = hugeFormula(x);
+                 if (somethingBadHappens) {
+                   throw new LocalException(x);
+                 }
+                 return y;
+             }
+         }
+        
+         public void compute() {
+             try {
+                 solver.solve(maxEval, new MyFunction(a, b, c), min, max);
+             } catch (LocalException le) {
+                 // Retrieve the x value.
+             }
+         }
          
     
         As shown, the exception is local to the user's code and it is guaranteed that Hipparchus will not catch it.
     
         Also see:
-            :class:`~org.hipparchus.analysis.UnivariateFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`
+    
+              - :class:`~org.hipparchus.analysis.UnivariateFunction`
+              - :class:`~org.hipparchus.analysis.FieldUnivariateFunction`
     """
     def value(self, t: _CalculusFieldUnivariateFunction__T) -> _CalculusFieldUnivariateFunction__T:
         """
@@ -209,7 +213,7 @@ class CalculusFieldUnivariateFunction(typing.Generic[_CalculusFieldUnivariateFun
                 the value of the function.
         
             Raises:
-                :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the
+                :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the
                     activated method, has been violated. When Hipparchus throws an :code:`IllegalArgumentException`, it is usually the
                     consequence of checking the actual parameters passed to the method.
         
@@ -220,7 +224,7 @@ class CalculusFieldUnivariateFunction(typing.Generic[_CalculusFieldUnivariateFun
 _CalculusFieldUnivariateMatrixFunction__T = typing.TypeVar('_CalculusFieldUnivariateMatrixFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldUnivariateMatrixFunction(typing.Generic[_CalculusFieldUnivariateMatrixFunction__T]):
     """
-    public interface CalculusFieldUnivariateMatrixFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldUnivariateMatrixFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a univariate matrix function.
     
@@ -244,7 +248,7 @@ class CalculusFieldUnivariateMatrixFunction(typing.Generic[_CalculusFieldUnivari
 _CalculusFieldUnivariateVectorFunction__T = typing.TypeVar('_CalculusFieldUnivariateVectorFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class CalculusFieldUnivariateVectorFunction(typing.Generic[_CalculusFieldUnivariateVectorFunction__T]):
     """
-    public interface CalculusFieldUnivariateVectorFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceCalculusFieldUnivariateVectorFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         An interface representing a univariate vectorial function for any field type.
     
@@ -267,7 +271,7 @@ class CalculusFieldUnivariateVectorFunction(typing.Generic[_CalculusFieldUnivari
 
 class FieldBivariateFunction:
     """
-    public interface FieldBivariateFunction
+    public interfaceFieldBivariateFunction
     
         An interface representing a bivariate field function.
     
@@ -306,7 +310,7 @@ class FieldBivariateFunction:
 
 class FieldMultivariateFunction:
     """
-    public interface FieldMultivariateFunction
+    public interfaceFieldMultivariateFunction
     
         An interface representing a scalar multivariate function for any field type.
     
@@ -314,7 +318,8 @@ class FieldMultivariateFunction:
             2.2
     
         Also see:
-            :class:`~org.hipparchus.analysis.MultivariateFunction`
+    
+              - :class:`~org.hipparchus.analysis.MultivariateFunction`
     """
     _toCalculusFieldMultivariateFunction__T = typing.TypeVar('_toCalculusFieldMultivariateFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     def toCalculusFieldMultivariateFunction(self, field: org.hipparchus.Field[_toCalculusFieldMultivariateFunction__T]) -> CalculusFieldMultivariateFunction[_toCalculusFieldMultivariateFunction__T]:
@@ -347,7 +352,7 @@ class FieldMultivariateFunction:
 
 class FieldMultivariateMatrixFunction:
     """
-    public interface FieldMultivariateMatrixFunction
+    public interfaceFieldMultivariateMatrixFunction
     
         An interface representing a matrix multivariate function for any field type.
     
@@ -355,7 +360,8 @@ class FieldMultivariateMatrixFunction:
             2.2
     
         Also see:
-            :class:`~org.hipparchus.analysis.MultivariateMatrixFunction`
+    
+              - :class:`~org.hipparchus.analysis.MultivariateMatrixFunction`
     """
     _toCalculusFieldMultivariateMatrixFunction__T = typing.TypeVar('_toCalculusFieldMultivariateMatrixFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     def toCalculusFieldMultivariateMatrixFunction(self, field: org.hipparchus.Field[_toCalculusFieldMultivariateMatrixFunction__T]) -> CalculusFieldMultivariateMatrixFunction[_toCalculusFieldMultivariateMatrixFunction__T]:
@@ -388,7 +394,7 @@ class FieldMultivariateMatrixFunction:
 
 class FieldMultivariateVectorFunction:
     """
-    public interface FieldMultivariateVectorFunction
+    public interfaceFieldMultivariateVectorFunction
     
         An interface representing a vector multivariate function for any field type.
     
@@ -396,7 +402,8 @@ class FieldMultivariateVectorFunction:
             2.2
     
         Also see:
-            :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
+    
+              - :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
     """
     _toCalculusFieldMultivariateVectorFunction__T = typing.TypeVar('_toCalculusFieldMultivariateVectorFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     def toCalculusFieldMultivariateVectorFunction(self, field: org.hipparchus.Field[_toCalculusFieldMultivariateVectorFunction__T]) -> CalculusFieldMultivariateVectorFunction[_toCalculusFieldMultivariateVectorFunction__T]:
@@ -429,7 +436,7 @@ class FieldMultivariateVectorFunction:
 
 class FieldUnivariateFunction:
     """
-    public interface FieldUnivariateFunction
+    public interfaceFieldUnivariateFunction
     
         An interface representing a univariate real function for any field type.
     
@@ -440,7 +447,9 @@ class FieldUnivariateFunction:
             1.3
     
         Also see:
-            :class:`~org.hipparchus.analysis.UnivariateFunction`, :class:`~org.hipparchus.analysis.CalculusFieldUnivariateFunction`
+    
+              - :class:`~org.hipparchus.analysis.UnivariateFunction`
+              - :class:`~org.hipparchus.analysis.CalculusFieldUnivariateFunction`
     """
     _toCalculusFieldUnivariateFunction__T = typing.TypeVar('_toCalculusFieldUnivariateFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     def toCalculusFieldUnivariateFunction(self, field: org.hipparchus.Field[_toCalculusFieldUnivariateFunction__T]) -> CalculusFieldUnivariateFunction[_toCalculusFieldUnivariateFunction__T]:
@@ -468,7 +477,7 @@ class FieldUnivariateFunction:
                 the value of the function.
         
             Raises:
-                :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the
+                :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the
                     activated method, has been violated. When Hipparchus throws an :code:`IllegalArgumentException`, it is usually the
                     consequence of checking the actual parameters passed to the method.
         
@@ -478,7 +487,7 @@ class FieldUnivariateFunction:
 
 class FieldUnivariateMatrixFunction:
     """
-    public interface FieldUnivariateMatrixFunction
+    public interfaceFieldUnivariateMatrixFunction
     
         An interface representing a univariate matrix function for any field type.
     
@@ -516,7 +525,7 @@ class FieldUnivariateMatrixFunction:
 
 class FieldUnivariateVectorFunction:
     """
-    public interface FieldUnivariateVectorFunction
+    public interfaceFieldUnivariateVectorFunction
     
         An interface representing a univariate vectorial function for any field type.
     
@@ -554,7 +563,7 @@ class FieldUnivariateVectorFunction:
 
 class FunctionUtils:
     """
-    public class FunctionUtils extends :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFunctionUtils extends :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Utilities for manipulating function objects.
     """
@@ -592,8 +601,8 @@ class FunctionUtils:
         
             .. code-block: java
             
-             
-             h(x[]) = combiner(...combiner(combiner(initialValue,f(x[0])),f(x[1]))...),f(x[x.length-1]))
+             
+             h(x[]) = combiner(...combiner(combiner(initialValue,f(x[0])),f(x[1]))...),f(x[x.length-1]))
              
         
             Parameters:
@@ -608,8 +617,8 @@ class FunctionUtils:
         
             .. code-block: java
             
-             
-             h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1])
+             
+             h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1])
              
         
             Parameters:
@@ -692,8 +701,10 @@ class FunctionUtils:
                 function computing the derivative at required order
         
             Also see:
-                :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`,
-                :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`
+        
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`
+        
         
             Convert an :class:`~org.hipparchus.analysis.differentiation.MultivariateDifferentiableFunction` to an
             :class:`~org.hipparchus.analysis.MultivariateFunction` computing n :sup:`th` order derivative.
@@ -710,8 +721,10 @@ class FunctionUtils:
                 function computing the derivative at required order
         
             Also see:
-                :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`,
-                :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`
+        
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`
+        
         
         
         """
@@ -802,8 +815,10 @@ class FunctionUtils:
                 a differentiable function with value and all specified derivatives
         
             Also see:
-                :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`,
-                :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`
+        
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`
+        
         
             Convert regular functions to :class:`~org.hipparchus.analysis.differentiation.MultivariateDifferentiableFunction`.
         
@@ -826,8 +841,10 @@ class FunctionUtils:
                 a differentiable function with value and gradient
         
             Also see:
-                :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`,
-                :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`
+        
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.toDifferentiable`
+                  - :meth:`~org.hipparchus.analysis.FunctionUtils.derivative`
+        
         
         
         """
@@ -838,7 +855,7 @@ class FunctionUtils:
 
 class MultivariateFunction:
     """
-    public interface MultivariateFunction
+    public interfaceMultivariateFunction
     
         An interface representing a multivariate real function.
     """
@@ -864,7 +881,7 @@ class MultivariateFunction:
 
 class MultivariateMatrixFunction:
     """
-    public interface MultivariateMatrixFunction
+    public interfaceMultivariateMatrixFunction
     
         An interface representing a multivariate matrix function.
     """
@@ -872,7 +889,7 @@ class MultivariateMatrixFunction:
 
 class MultivariateVectorFunction:
     """
-    public interface MultivariateVectorFunction
+    public interfaceMultivariateVectorFunction
     
         An interface representing a multivariate vectorial function.
     """
@@ -880,7 +897,7 @@ class MultivariateVectorFunction:
 
 class ParametricUnivariateFunction:
     """
-    public interface ParametricUnivariateFunction
+    public interfaceParametricUnivariateFunction
     
         An interface representing a real function that depends on one independent variable plus some extra parameters.
     """
@@ -915,7 +932,7 @@ class ParametricUnivariateFunction:
 
 class TrivariateFunction:
     """
-    public interface TrivariateFunction
+    public interfaceTrivariateFunction
     
         An interface representing a trivariate real function.
     """
@@ -937,7 +954,7 @@ class TrivariateFunction:
 
 class UnivariateFunction:
     """
-    public interface UnivariateFunction
+    public interfaceUnivariateFunction
     
         An interface representing a univariate real function.
     
@@ -949,37 +966,36 @@ class UnivariateFunction:
     
         .. code-block: java
         
-        
-         private static class LocalException extends RuntimeException {
-             // The x value that caused the problem.
-             private final double x;
-        
-             public LocalException(double x) {
-                 this.x = x;
-             }
-        
-             public double getX() {
-                 return x;
-             }
-         }
-        
-         private static class MyFunction implements UnivariateFunction {
-             public double value(double x) {
-                 double y = hugeFormula(x);
-                 if (somethingBadHappens) {
-                   throw new LocalException(x);
-                 }
-                 return y;
-             }
-         }
-        
-         public void compute() {
-             try {
-                 solver.solve(maxEval, new MyFunction(a, b, c), min, max);
-             } catch (LocalException le) {
-                 // Retrieve the x value.
-             }
-         }
+         private static class LocalException extends RuntimeException {
+             // The x value that caused the problem.
+             private final double x;
+        
+             public LocalException(double x) {
+                 this.x = x;
+             }
+        
+             public double getX() {
+                 return x;
+             }
+         }
+        
+         private static class MyFunction implements UnivariateFunction {
+             public double value(double x) {
+                 double y = hugeFormula(x);
+                 if (somethingBadHappens) {
+                   throw new LocalException(x);
+                 }
+                 return y;
+             }
+         }
+        
+         public void compute() {
+             try {
+                 solver.solve(maxEval, new MyFunction(a, b, c), min, max);
+             } catch (LocalException le) {
+                 // Retrieve the x value.
+             }
+         }
          
         As shown, the exception is local to the user's code and it is guaranteed that Hipparchus will not catch it.
     """
@@ -994,7 +1010,7 @@ class UnivariateFunction:
                 the value of the function.
         
             Raises:
-                :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the
+                :class:`~org.hipparchus.analysis.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: when the activated method itself can ascertain that a precondition, specified in the API expressed at the level of the
                     activated method, has been violated. When Hipparchus throws an :code:`IllegalArgumentException`, it is usually the
                     consequence of checking the actual parameters passed to the method.
         
@@ -1004,7 +1020,7 @@ class UnivariateFunction:
 
 class UnivariateMatrixFunction:
     """
-    public interface UnivariateMatrixFunction
+    public interfaceUnivariateMatrixFunction
     
         An interface representing a univariate matrix function.
     """
@@ -1024,7 +1040,7 @@ class UnivariateMatrixFunction:
 
 class UnivariateVectorFunction:
     """
-    public interface UnivariateVectorFunction
+    public interfaceUnivariateVectorFunction
     
         An interface representing a univariate vectorial function.
     """
diff --git a/org-stubs/hipparchus/analysis/differentiation/__init__.pyi b/org-stubs/hipparchus/analysis/differentiation/__init__.pyi
index e81c56f12a55eaa4b2ea8e800c16aec850d320ff..3761b7c538b6765aa9a32e5578f2b080d10d8ebc 100644
--- a/org-stubs/hipparchus/analysis/differentiation/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/differentiation/__init__.pyi
@@ -18,7 +18,7 @@ import typing
 
 class DSCompiler:
     """
-    public class DSCompiler extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classDSCompiler extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class holding "compiled" computation rules for derivative structures.
     
@@ -60,27 +60,26 @@ class DSCompiler:
     
         .. code-block: java
         
-        
-           // parameter 0 is x, parameter 1 is y, parameter 2 is z
-           int parameters = 3;
-           DSCompiler compiler = DSCompiler.getCompiler(parameters, order);
-           int size = compiler.getSize();
-        
-           // pack all elements in a single array
-           double[] array = new double[n * size];
-           for (int i = 0; i < n; ++i) {
-        
-             // we know value is guaranteed to be the first element
-             array[i * size] = v[i];
-        
-             // we don't know where first derivatives are stored, so we ask the compiler
-             array[i * size + compiler.getPartialDerivativeIndex(1, 0, 0) = dvOnDx[i][0];
-             array[i * size + compiler.getPartialDerivativeIndex(0, 1, 0) = dvOnDy[i][0];
-             array[i * size + compiler.getPartialDerivativeIndex(0, 0, 1) = dvOnDz[i][0];
-        
-             // we let all higher order derivatives set to 0
-        
-           }
+           // parameter 0 is x, parameter 1 is y, parameter 2 is z
+           int parameters = 3;
+           DSCompiler compiler = DSCompiler.getCompiler(parameters, order);
+           int size = compiler.getSize();
+        
+           // pack all elements in a single array
+           double[] array = new double[n * size];
+           for (int i = 0; i < n; ++i) {
+        
+             // we know value is guaranteed to be the first element
+             array[i * size] = v[i];
+        
+             // we don't know where first derivatives are stored, so we ask the compiler
+             array[i * size + compiler.getPartialDerivativeIndex(1, 0, 0) = dvOnDx[i][0];
+             array[i * size + compiler.getPartialDerivativeIndex(0, 1, 0) = dvOnDy[i][0];
+             array[i * size + compiler.getPartialDerivativeIndex(0, 0, 1) = dvOnDz[i][0];
+        
+             // we let all higher order derivatives set to 0
+        
+           }
          
     
         Then in another function, user can perform some operations on all elements stored in the single array, such as a simple
@@ -88,35 +87,35 @@ class DSCompiler:
     
         .. code-block: java
         
-        
-           // compute the product of all elements
-           double[] product = new double[size];
-           prod[0] = 1.0;
-           for (int i = 0; i < n; ++i) {
-             double[] tmp = product.clone();
-             compiler.multiply(tmp, 0, array, i * size, product, 0);
-           }
-        
-           // value
-           double p = product[0];
-        
-           // first derivatives
-           double dPdX = product[compiler.getPartialDerivativeIndex(1, 0, 0)];
-           double dPdY = product[compiler.getPartialDerivativeIndex(0, 1, 0)];
-           double dPdZ = product[compiler.getPartialDerivativeIndex(0, 0, 1)];
-        
-           // cross derivatives (assuming order was at least 2)
-           double dPdXdX = product[compiler.getPartialDerivativeIndex(2, 0, 0)];
-           double dPdXdY = product[compiler.getPartialDerivativeIndex(1, 1, 0)];
-           double dPdXdZ = product[compiler.getPartialDerivativeIndex(1, 0, 1)];
-           double dPdYdY = product[compiler.getPartialDerivativeIndex(0, 2, 0)];
-           double dPdYdZ = product[compiler.getPartialDerivativeIndex(0, 1, 1)];
-           double dPdZdZ = product[compiler.getPartialDerivativeIndex(0, 0, 2)];
+           // compute the product of all elements
+           double[] product = new double[size];
+           prod[0] = 1.0;
+           for (int i = 0; i < n; ++i) {
+             double[] tmp = product.clone();
+             compiler.multiply(tmp, 0, array, i * size, product, 0);
+           }
+        
+           // value
+           double p = product[0];
+        
+           // first derivatives
+           double dPdX = product[compiler.getPartialDerivativeIndex(1, 0, 0)];
+           double dPdY = product[compiler.getPartialDerivativeIndex(0, 1, 0)];
+           double dPdZ = product[compiler.getPartialDerivativeIndex(0, 0, 1)];
+        
+           // cross derivatives (assuming order was at least 2)
+           double dPdXdX = product[compiler.getPartialDerivativeIndex(2, 0, 0)];
+           double dPdXdY = product[compiler.getPartialDerivativeIndex(1, 1, 0)];
+           double dPdXdZ = product[compiler.getPartialDerivativeIndex(1, 0, 1)];
+           double dPdYdY = product[compiler.getPartialDerivativeIndex(0, 2, 0)];
+           double dPdYdZ = product[compiler.getPartialDerivativeIndex(0, 1, 1)];
+           double dPdZdZ = product[compiler.getPartialDerivativeIndex(0, 0, 2)];
          
     
         Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
     """
     _acos_1__T = typing.TypeVar('_acos_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
@@ -573,7 +572,9 @@ class DSCompiler:
                 derivation orders with respect to each parameter
         
             Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
+        
         
         
         """
@@ -595,7 +596,9 @@ class DSCompiler:
                 2.2
         
             Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
+        
         
         
         """
@@ -1395,7 +1398,8 @@ class DSCompiler:
 
 class DSFactory(java.io.Serializable):
     """
-    public class DSFactory extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classDSFactory extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Factory for :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`.
     
@@ -1407,7 +1411,9 @@ class DSFactory(java.io.Serializable):
             1.1
     
         Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, int2: int): ...
     def build(self, *double: float) -> 'DerivativeStructure': ...
@@ -1455,17 +1461,22 @@ class DSFactory(java.io.Serializable):
         def getZero(self) -> 'DerivativeStructure': ...
         def hashCode(self) -> int: ...
 
-_Derivative__T = typing.TypeVar('_Derivative__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class Derivative(org.hipparchus.CalculusFieldElement[_Derivative__T], typing.Generic[_Derivative__T]):
+class DifferentialAlgebra:
     """
-    public interface Derivative<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.CalculusFieldElement`<T>
+    public interfaceDifferentialAlgebra
     
-        Interface representing both the value and the differentials of a function.
+        Interface representing an object holding partial derivatives.
     
         Since:
-            1.7
+            3.1
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.Derivative`
+              - :class:`~org.hipparchus.analysis.differentiation.TaylorMap`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldTaylorMap`
     """
-    def compose(self, *double: float) -> _Derivative__T: ...
     def getFreeParameters(self) -> int:
         """
             Get the number of free parameters.
@@ -1478,21 +1489,10 @@ class Derivative(org.hipparchus.CalculusFieldElement[_Derivative__T], typing.Gen
         ...
     def getOrder(self) -> int:
         """
-            Get the derivation order.
-        
-            Returns:
-                derivation order
-        
-        
-        """
-        ...
-    def getPartialDerivative(self, *int: int) -> float: ...
-    def getValue(self) -> float:
-        """
-            Get the value part of the function.
+            Get the maximum derivation order.
         
             Returns:
-                value part of the value of the function
+                maximum derivation order
         
         
         """
@@ -1502,7 +1502,7 @@ _FDSFactory__DerivativeField__T = typing.TypeVar('_FDSFactory__DerivativeField__
 _FDSFactory__T = typing.TypeVar('_FDSFactory__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FDSFactory(typing.Generic[_FDSFactory__T]):
     """
-    public class FDSFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFDSFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Factory for :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`.
     
@@ -1511,7 +1511,8 @@ class FDSFactory(typing.Generic[_FDSFactory__T]):
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
     """
     def __init__(self, field: org.hipparchus.Field[_FDSFactory__T], int: int, int2: int): ...
     @typing.overload
@@ -1546,53 +1547,11 @@ class FDSFactory(typing.Generic[_FDSFactory__T]):
         def getZero(self) -> 'FieldDerivativeStructure'[_FDSFactory__DerivativeField__T]: ...
         def hashCode(self) -> int: ...
 
-_FieldDerivative__S = typing.TypeVar('_FieldDerivative__S', bound=org.hipparchus.CalculusFieldElement)  # <S>
-_FieldDerivative__T = typing.TypeVar('_FieldDerivative__T', bound='FieldDerivative')  # <T>
-class FieldDerivative(org.hipparchus.CalculusFieldElement[_FieldDerivative__T], typing.Generic[_FieldDerivative__S, _FieldDerivative__T]):
-    """
-    public interface FieldDerivative<S extends :class:`~org.hipparchus.CalculusFieldElement`<S>, T extends FieldDerivative<S, T>> extends :class:`~org.hipparchus.CalculusFieldElement`<T>
-    
-        Interface representing both the value and the differentials of a function.
-    
-        Since:
-            1.7
-    """
-    def getFreeParameters(self) -> int:
-        """
-            Get the number of free parameters.
-        
-            Returns:
-                number of free parameters
-        
-        
-        """
-        ...
-    def getOrder(self) -> int:
-        """
-            Get the derivation order.
-        
-            Returns:
-                derivation order
-        
-        
-        """
-        ...
-    def getPartialDerivative(self, *int: int) -> _FieldDerivative__S: ...
-    def getValue(self) -> _FieldDerivative__S:
-        """
-            Get the value part of the function.
-        
-            Returns:
-                value part of the value of the function
-        
-        
-        """
-        ...
-
 _FieldGradientField__T = typing.TypeVar('_FieldGradientField__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldGradientField(org.hipparchus.Field['FieldGradient'[_FieldGradientField__T]], typing.Generic[_FieldGradientField__T]):
     """
-    public class FieldGradientField<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<T>>
+    public classFieldGradientField<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<T>>
     
         Field for :class:`~org.hipparchus.analysis.differentiation.Gradient` instances.
     
@@ -1603,8 +1562,8 @@ class FieldGradientField(org.hipparchus.Field['FieldGradient'[_FieldGradientFiel
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1632,92 +1591,18 @@ class FieldGradientField(org.hipparchus.Field['FieldGradient'[_FieldGradientFiel
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-        
-        
-        """
-        ...
-
-_FieldTaylorMap__T = typing.TypeVar('_FieldTaylorMap__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldTaylorMap(typing.Generic[_FieldTaylorMap__T]):
-    """
-    public class FieldTaylorMap<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-    
-        Container for a Taylor map.
-    
-        A Taylor map is a set of n :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` \((f_1, f_2, \ldots,
-        f_n)\) depending on m parameters \((p_1, p_2, \ldots, p_m)\), with positive n and m.
-    
-        Since:
-            2.2
-    """
-    @typing.overload
-    def __init__(self, tArray: typing.Union[typing.List[_FieldTaylorMap__T], jpype.JArray], fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldTaylorMap__T]], jpype.JArray]): ...
-    @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_FieldTaylorMap__T], int: int, int2: int, int3: int): ...
-    def compose(self, fieldTaylorMap: 'FieldTaylorMap'[_FieldTaylorMap__T]) -> 'FieldTaylorMap'[_FieldTaylorMap__T]: ...
-    def getFunction(self, int: int) -> 'FieldDerivativeStructure'[_FieldTaylorMap__T]: ...
-    def getNbFunctions(self) -> int:
-        """
-            Get the number of functions of the map.
-        
-            Returns:
-                number of functions of the map
-        
-        
-        """
-        ...
-    def getNbParameters(self) -> int:
-        """
-            Get the number of parameters of the map.
-        
-            Returns:
-                number of parameters of the map
-        
-        
-        """
-        ...
-    def getPoint(self) -> typing.MutableSequence[_FieldTaylorMap__T]:
-        """
-            Get the point at which map is evaluated.
-        
-            Returns:
-                point at which map is evaluated
-        
-        
-        """
-        ...
-    def invert(self, fieldMatrixDecomposer: typing.Union[org.hipparchus.linear.FieldMatrixDecomposer[_FieldTaylorMap__T], typing.Callable[[org.hipparchus.linear.FieldMatrix[org.hipparchus.FieldElement]], org.hipparchus.linear.FieldDecompositionSolver[org.hipparchus.FieldElement]]]) -> 'FieldTaylorMap'[_FieldTaylorMap__T]: ...
-    @typing.overload
-    def value(self, *double: float) -> typing.MutableSequence[_FieldTaylorMap__T]:
-        """
-            Evaluate Taylor expansion of the map at some offset.
-        
-            Parameters:
-                deltaP (double...): parameters offsets \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
-        
-            Returns:
-                value of the Taylor expansion at \((p_1 + \Delta p_1, p_2 + \Delta p_2, \ldots, p_n + \Delta p_n)\)
-        
-            Evaluate Taylor expansion of the map at some offset.
-        
-            Parameters:
-                deltaP (:class:`~org.hipparchus.analysis.differentiation.FieldTaylorMap`...): parameters offsets \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
-        
-            Returns:
-                value of the Taylor expansion at \((p_1 + \Delta p_1, p_2 + \Delta p_2, \ldots, p_n + \Delta p_n)\)
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
         ...
-    @typing.overload
-    def value(self, *t: _FieldTaylorMap__T) -> typing.MutableSequence[_FieldTaylorMap__T]: ...
 
 _FieldUnivariateDerivative1Field__T = typing.TypeVar('_FieldUnivariateDerivative1Field__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldUnivariateDerivative1Field(org.hipparchus.Field['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1Field__T]], typing.Generic[_FieldUnivariateDerivative1Field__T]):
     """
-    public class FieldUnivariateDerivative1Field<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T>>
+    public classFieldUnivariateDerivative1Field<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T>>
     
         Field for :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1` instances.
     
@@ -1728,8 +1613,8 @@ class FieldUnivariateDerivative1Field(org.hipparchus.Field['FieldUnivariateDeriv
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1756,8 +1641,8 @@ class FieldUnivariateDerivative1Field(org.hipparchus.Field['FieldUnivariateDeriv
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1766,7 +1651,8 @@ class FieldUnivariateDerivative1Field(org.hipparchus.Field['FieldUnivariateDeriv
 _FieldUnivariateDerivative2Field__T = typing.TypeVar('_FieldUnivariateDerivative2Field__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldUnivariateDerivative2Field(org.hipparchus.Field['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2Field__T]], typing.Generic[_FieldUnivariateDerivative2Field__T]):
     """
-    public class FieldUnivariateDerivative2Field<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<T>>
+    public classFieldUnivariateDerivative2Field<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<T>>
     
         Field for :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2` instances.
     
@@ -1777,8 +1663,8 @@ class FieldUnivariateDerivative2Field(org.hipparchus.Field['FieldUnivariateDeriv
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1805,8 +1691,8 @@ class FieldUnivariateDerivative2Field(org.hipparchus.Field['FieldUnivariateDeriv
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1814,7 +1700,8 @@ class FieldUnivariateDerivative2Field(org.hipparchus.Field['FieldUnivariateDeriv
 
 class GradientField(org.hipparchus.Field['Gradient']):
     """
-    public class GradientField extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.Gradient`>
+    public classGradientField extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.Gradient`>
     
         Field for :class:`~org.hipparchus.analysis.differentiation.Gradient` instances.
     
@@ -1825,8 +1712,8 @@ class GradientField(org.hipparchus.Field['Gradient']):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1882,8 +1769,8 @@ class GradientField(org.hipparchus.Field['Gradient']):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1891,7 +1778,8 @@ class GradientField(org.hipparchus.Field['Gradient']):
 
 class GradientFunction(org.hipparchus.analysis.MultivariateVectorFunction):
     """
-    public class GradientFunction extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
+    public classGradientFunction extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
     
         Class representing the gradient of a multivariate function.
     
@@ -1918,7 +1806,8 @@ class GradientFunction(org.hipparchus.analysis.MultivariateVectorFunction):
 
 class JacobianFunction(org.hipparchus.analysis.MultivariateMatrixFunction):
     """
-    public class JacobianFunction extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.MultivariateMatrixFunction`
+    public classJacobianFunction extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.MultivariateMatrixFunction`
     
         Class representing the Jacobian of a multivariate vector function.
     
@@ -1947,7 +1836,7 @@ class JacobianFunction(org.hipparchus.analysis.MultivariateMatrixFunction):
 
 class MultivariateDifferentiableFunction(org.hipparchus.analysis.MultivariateFunction):
     """
-    public interface MultivariateDifferentiableFunction extends :class:`~org.hipparchus.analysis.MultivariateFunction`
+    public interfaceMultivariateDifferentiableFunctionextends :class:`~org.hipparchus.analysis.MultivariateFunction`
     
         Extension of :class:`~org.hipparchus.analysis.MultivariateFunction` representing a multivariate differentiable real
         function.
@@ -1959,7 +1848,7 @@ class MultivariateDifferentiableFunction(org.hipparchus.analysis.MultivariateFun
 
 class MultivariateDifferentiableVectorFunction(org.hipparchus.analysis.MultivariateVectorFunction):
     """
-    public interface MultivariateDifferentiableVectorFunction extends :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
+    public interfaceMultivariateDifferentiableVectorFunctionextends :class:`~org.hipparchus.analysis.MultivariateVectorFunction`
     
         Extension of :class:`~org.hipparchus.analysis.MultivariateVectorFunction` representing a multivariate differentiable
         vectorial function.
@@ -1969,439 +1858,582 @@ class MultivariateDifferentiableVectorFunction(org.hipparchus.analysis.Multivari
     @typing.overload
     def value(self, derivativeStructureArray: typing.Union[typing.List['DerivativeStructure'], jpype.JArray]) -> typing.MutableSequence['DerivativeStructure']: ...
 
-class SparseGradient(org.hipparchus.CalculusFieldElement['SparseGradient'], java.io.Serializable):
+class UnivariateDerivative1Field(org.hipparchus.Field['UnivariateDerivative1'], java.io.Serializable):
     """
-    public class SparseGradient extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.analysis.differentiation.SparseGradient`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classUnivariateDerivative1Field extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
-        First derivative computation with large number of variables.
+        Field for :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1` instances.
     
-        This class plays a similar role to :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`, with a focus
-        on efficiency when dealing with large number of independent variables and most computation depend only on a few of them,
-        and when only first derivative is desired. When these conditions are met, this class should be much faster than
-        :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` and use less memory.
+        This class is a singleton.
+    
+        Since:
+            1.7
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
-    def abs(self) -> 'SparseGradient':
+    def equals(self, object: typing.Any) -> bool:
         """
-            absolute value.
-        
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Returns:
-                abs(this)
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
         ...
-    def acos(self) -> 'SparseGradient':
+    @staticmethod
+    def getInstance() -> 'UnivariateDerivative1Field':
         """
-            Arc cosine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Get the unique instance.
         
             Returns:
-                acos(this)
+                the unique instance
         
         
         """
         ...
-    def acosh(self) -> 'SparseGradient':
+    def getOne(self) -> 'UnivariateDerivative1':
         """
-            Inverse hyperbolic cosine operation.
+            Get the multiplicative identity of the field.
+        
+            The multiplicative identity is the element e :sub:`1` of the field such that for all elements a of the field, the
+            equalities a × e :sub:`1` = e :sub:`1` × a = a hold.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.acosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.Field.getOne` in interface :class:`~org.hipparchus.Field`
         
             Returns:
-                acosh(this)
+                multiplicative identity of the field
         
         
         """
         ...
-    @typing.overload
-    def add(self, double: float) -> 'SparseGradient':
+    def getRuntimeClass(self) -> typing.Type['UnivariateDerivative1']: ...
+    def getZero(self) -> 'UnivariateDerivative1':
         """
-            Compute this + a.
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.add` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to add
-        
-            Returns:
-                a new element representing this + a
+            Get the additive identity of the field.
         
-            '+' operator.
+            The additive identity is the element e :sub:`0` of the field such that for all elements a of the field, the equalities a
+            + e :sub:`0` = e :sub:`0` + a = a hold.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.add` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                c (double): right hand side parameter of the operator
+                :meth:`~org.hipparchus.Field.getZero` in interface :class:`~org.hipparchus.Field`
         
             Returns:
-                this+a
+                additive identity of the field
         
         
         """
         ...
-    @typing.overload
-    def add(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def addInPlace(self, sparseGradient: 'SparseGradient') -> None:
+    def hashCode(self) -> int:
         """
-            Add in place.
         
-            This method is designed to be faster when used multiple times in a loop.
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
-            The instance is changed here, in order to not change the instance the
-            :meth:`~org.hipparchus.analysis.differentiation.SparseGradient.add` method should be used.
         
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): instance to add
+        """
+        ...
+
+class UnivariateDerivative2Field(org.hipparchus.Field['UnivariateDerivative2'], java.io.Serializable):
+    """
+    public classUnivariateDerivative2Field extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
+    
+        Field for :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2` instances.
+    
+        This class is a singleton.
+    
+        Since:
+            1.7
+    
+        Also see:
+    
+              - :meth:`~serialized`
+    """
+    def equals(self, object: typing.Any) -> bool:
+        """
+        
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
         ...
-    def asin(self) -> 'SparseGradient':
+    @staticmethod
+    def getInstance() -> 'UnivariateDerivative2Field':
         """
-            Arc sine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.asin` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Get the unique instance.
         
             Returns:
-                asin(this)
+                the unique instance
         
         
         """
         ...
-    def asinh(self) -> 'SparseGradient':
+    def getOne(self) -> 'UnivariateDerivative2':
         """
-            Inverse hyperbolic sine operation.
+            Get the multiplicative identity of the field.
+        
+            The multiplicative identity is the element e :sub:`1` of the field such that for all elements a of the field, the
+            equalities a × e :sub:`1` = e :sub:`1` × a = a hold.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.asinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.Field.getOne` in interface :class:`~org.hipparchus.Field`
         
             Returns:
-                asin(this)
+                multiplicative identity of the field
         
         
         """
         ...
-    def atan(self) -> 'SparseGradient':
+    def getRuntimeClass(self) -> typing.Type['UnivariateDerivative2']: ...
+    def getZero(self) -> 'UnivariateDerivative2':
         """
-            Arc tangent operation.
+            Get the additive identity of the field.
+        
+            The additive identity is the element e :sub:`0` of the field such that for all elements a of the field, the equalities a
+            + e :sub:`0` = e :sub:`0` + a = a hold.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atan` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.Field.getZero` in interface :class:`~org.hipparchus.Field`
         
             Returns:
-                atan(this)
+                additive identity of the field
         
         
         """
         ...
-    @typing.overload
-    def atan2(self, sparseGradient: 'SparseGradient') -> 'SparseGradient':
+    def hashCode(self) -> int:
         """
-            Two arguments arc tangent operation.
-        
-            Beware of the order or arguments! As this is based on a two-arguments functions, in order to be consistent with
-            arguments order, the instance is the *first* argument and the single provided argument is the *second* argument. In
-            order to be consistent with programming languages :code:`atan2`, this method computes :code:`atan2(this, x)`, i.e. the
-            instance represents the :code:`y` argument and the :code:`x` argument is the one passed as a single argument. This may
-            seem confusing especially for users of Wolfram alpha, as this site is *not* consistent with programming languages
-            :code:`atan2` two-arguments arc tangent and puts :code:`x` as its first argument.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atan2` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second argument of the arc tangent
-        
-            Returns:
-        public static :class:`~org.hipparchus.analysis.differentiation.SparseGradient` atan2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient` y, :class:`~org.hipparchus.analysis.differentiation.SparseGradient` x)
-        
-            Two arguments arc tangent operation.
         
-            Parameters:
-                y (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first argument of the arc tangent
-                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second argument of the arc tangent
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
-            Returns:
         
         """
         ...
+
+class UnivariateDifferentiableFunction(org.hipparchus.analysis.UnivariateFunction):
+    """
+    public interfaceUnivariateDifferentiableFunctionextends :class:`~org.hipparchus.analysis.UnivariateFunction`
+    
+        Interface for univariate functions derivatives.
+    
+        This interface represents a simple function which computes both the value and the first derivative of a mathematical
+        function. The derivative is computed with respect to the input variable.
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator`
+    """
+    _value_1__T = typing.TypeVar('_value_1__T', bound='Derivative')  # <T>
     @typing.overload
-    @staticmethod
-    def atan2(sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient') -> 'SparseGradient': ...
-    def atanh(self) -> 'SparseGradient':
+    def value(self, double: float) -> float: ...
+    @typing.overload
+    def value(self, t: _value_1__T) -> _value_1__T: ...
+
+class UnivariateDifferentiableMatrixFunction(org.hipparchus.analysis.UnivariateMatrixFunction):
+    """
+    public interfaceUnivariateDifferentiableMatrixFunctionextends :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`
+    
+        Extension of :class:`~org.hipparchus.analysis.UnivariateMatrixFunction` representing a univariate differentiable matrix
+        function.
+    """
+    _value_1__T = typing.TypeVar('_value_1__T', bound='Derivative')  # <T>
+    @typing.overload
+    def value(self, double: float) -> typing.MutableSequence[typing.MutableSequence[float]]: ...
+    @typing.overload
+    def value(self, t: _value_1__T) -> typing.MutableSequence[typing.MutableSequence[_value_1__T]]: ...
+
+class UnivariateDifferentiableVectorFunction(org.hipparchus.analysis.UnivariateVectorFunction):
+    """
+    public interfaceUnivariateDifferentiableVectorFunctionextends :class:`~org.hipparchus.analysis.UnivariateVectorFunction`
+    
+        Extension of :class:`~org.hipparchus.analysis.UnivariateVectorFunction` representing a univariate differentiable
+        vectorial function.
+    """
+    _value_1__T = typing.TypeVar('_value_1__T', bound='Derivative')  # <T>
+    @typing.overload
+    def value(self, double: float) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def value(self, t: _value_1__T) -> typing.MutableSequence[_value_1__T]: ...
+
+class UnivariateFunctionDifferentiator:
+    """
+    public interfaceUnivariateFunctionDifferentiator
+    
+        Interface defining the function differentiation operation.
+    """
+    def differentiate(self, univariateFunction: typing.Union[org.hipparchus.analysis.UnivariateFunction, typing.Callable]) -> UnivariateDifferentiableFunction:
         """
-            Inverse hyperbolic tangent operation.
+            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction` from a
+            regular :class:`~org.hipparchus.analysis.UnivariateFunction`.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                function (:class:`~org.hipparchus.analysis.UnivariateFunction`): function to differentiate
         
             Returns:
-                atanh(this)
+                differential function
         
         
         """
         ...
-    def cbrt(self) -> 'SparseGradient':
+
+class UnivariateMatrixFunctionDifferentiator:
+    """
+    public interfaceUnivariateMatrixFunctionDifferentiator
+    
+        Interface defining the function differentiation operation.
+    """
+    def differentiate(self, univariateMatrixFunction: typing.Union[org.hipparchus.analysis.UnivariateMatrixFunction, typing.Callable]) -> UnivariateDifferentiableMatrixFunction:
         """
-            Cubic root.
+            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableMatrixFunction`
+            from a regular :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cbrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                function (:class:`~org.hipparchus.analysis.UnivariateMatrixFunction`): function to differentiate
         
             Returns:
-                cubic root of the instance
+                differential function
         
         
         """
         ...
-    def ceil(self) -> 'SparseGradient':
+
+class UnivariateVectorFunctionDifferentiator:
+    """
+    public interfaceUnivariateVectorFunctionDifferentiator
+    
+        Interface defining the function differentiation operation.
+    """
+    def differentiate(self, univariateVectorFunction: typing.Union[org.hipparchus.analysis.UnivariateVectorFunction, typing.Callable]) -> UnivariateDifferentiableVectorFunction:
         """
-            Get the smallest whole number larger than instance.
+            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction`
+            from a regular :class:`~org.hipparchus.analysis.UnivariateVectorFunction`.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.ceil` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                function (:class:`~org.hipparchus.analysis.UnivariateVectorFunction`): function to differentiate
         
             Returns:
-                ceil(this)
+                differential function
         
         
         """
         ...
-    def compose(self, *double: float) -> 'SparseGradient':
+
+_Derivative__T = typing.TypeVar('_Derivative__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class Derivative(org.hipparchus.CalculusFieldElement[_Derivative__T], DifferentialAlgebra, typing.Generic[_Derivative__T]):
+    """
+    public interfaceDerivative<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>extends :class:`~org.hipparchus.CalculusFieldElement`<T>, :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+    
+        Interface representing both the value and the differentials of a function.
+    
+        Since:
+            1.7
+    """
+    def acos(self) -> _Derivative__T:
         """
-            Compute composition of the instance by a univariate function.
+            Arc cosine operation.
         
-            Parameters:
-                f (double...): array of value and derivatives of the function at the current point (i.e.
-                    [f(:meth:`~org.hipparchus.analysis.differentiation.SparseGradient.getValue`),
-                    f'(:meth:`~org.hipparchus.analysis.differentiation.SparseGradient.getValue`),
-                    f''(:meth:`~org.hipparchus.analysis.differentiation.SparseGradient.getValue`)...]).
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                f(this)
-        
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the number of elements in the array is not equal to 2 (i.e. value and first derivative)
+                acos(this)
         
         
         """
         ...
     @typing.overload
-    def copySign(self, double: float) -> 'SparseGradient':
+    def add(self, t: _Derivative__T) -> _Derivative__T:
         """
-            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
+            '+' operator.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.add` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                sign (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): the sign for the returned value
+                a (double): right hand side parameter of the operator
         
             Returns:
-                the instance with the same sign as the :code:`sign` argument
+                this+a
         
-            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        """
+        ...
+    @typing.overload
+    def add(self, double: float) -> _Derivative__T: ...
+    def compose(self, *double: float) -> _Derivative__T: ...
+    def cosh(self) -> _Derivative__T:
+        """
+            Hyperbolic cosine operation.
         
-            Parameters:
-                sign (double): the sign for the returned value
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                the instance with the same sign as the :code:`sign` argument
+                cosh(this)
         
         
         """
         ...
-    @typing.overload
-    def copySign(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def cos(self) -> 'SparseGradient':
+    def getExponent(self) -> int:
         """
-            Cosine operation.
+            Return the exponent of the instance, removing the bias.
+        
+            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cos` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.getExponent` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                cos(this)
+                exponent for the instance, without bias
         
         
         """
         ...
-    def cosh(self) -> 'SparseGradient':
+    def getPartialDerivative(self, *int: int) -> float: ...
+    def getReal(self) -> float:
         """
-            Hyperbolic cosine operation.
+            Get the real value of the number.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.FieldElement.getReal` in interface :class:`~org.hipparchus.FieldElement`
         
             Returns:
-                cosh(this)
+                real value
         
         
         """
         ...
-    @staticmethod
-    def createConstant(double: float) -> 'SparseGradient':
+    def getValue(self) -> float:
         """
-            Factory method creating a constant.
-        
-            Parameters:
-                value (double): value of the constant
+            Get the value part of the function.
         
             Returns:
-                a new instance
+                value part of the value of the function
         
         
         """
         ...
-    @staticmethod
-    def createVariable(int: int, double: float) -> 'SparseGradient':
+    def log10(self) -> _Derivative__T:
         """
-            Factory method creating an independent variable.
+            Base 10 logarithm.
         
-            Parameters:
-                idx (int): index of the variable
-                value (double): value of the variable
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a new instance
+                base 10 logarithm of the instance
         
         
         """
         ...
     @typing.overload
-    def divide(self, double: float) -> 'SparseGradient':
+    def pow(self, t: _Derivative__T) -> _Derivative__T:
         """
-            Compute this ÷ a.
+            Power operation.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to divide by
+                e (:class:`~org.hipparchus.analysis.differentiation.Derivative`): exponent
         
             Returns:
-                a new element representing this ÷ a
+                this :sup:`e`
         
-            '÷' operator.
+        
+        """
+        ...
+    @typing.overload
+    def pow(self, double: float) -> _Derivative__T: ...
+    @typing.overload
+    def pow(self, int: int) -> _Derivative__T: ...
+    @typing.overload
+    def remainder(self, t: _Derivative__T) -> _Derivative__T:
+        """
+            IEEE remainder operator.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                c (double): right hand side parameter of the operator
+                a (double): right hand side parameter of the operator
         
             Returns:
-                this÷a
+                this - n × a where n is the closest integer to this/a
         
         
         """
         ...
     @typing.overload
-    def divide(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def equals(self, object: typing.Any) -> bool:
+    def remainder(self, double: float) -> _Derivative__T: ...
+    def sinh(self) -> _Derivative__T:
         """
-            Test for the equality of two sparse gradients.
+            Hyperbolic sine operation.
         
-            Sparse gradients are considered equal if they have the same value and the same derivatives.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Returns:
+                sinh(this)
         
-            Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
         
-            Returns:
-                true if two sparse gradients are equal
+        """
+        ...
+    @typing.overload
+    def subtract(self, double: float) -> _Derivative__T:
+        """
+            '-' operator.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a (double): right hand side parameter of the operator
+        
+            Returns:
+                this-a
         
         
         """
         ...
-    def exp(self) -> 'SparseGradient':
+    @typing.overload
+    def subtract(self, t: _Derivative__T) -> _Derivative__T: ...
+    def withValue(self, double: float) -> _Derivative__T:
         """
-            Exponential.
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
+        
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
+        
+            Parameters:
+                value (double): zeroth-order derivative of new represented function
+        
+            Returns:
+                new object with changed value
+        
+            Since:
+                3.1
+        
+        
+        """
+        ...
+
+_FieldDerivative__S = typing.TypeVar('_FieldDerivative__S', bound=org.hipparchus.CalculusFieldElement)  # <S>
+_FieldDerivative__T = typing.TypeVar('_FieldDerivative__T', bound='FieldDerivative')  # <T>
+class FieldDerivative(org.hipparchus.CalculusFieldElement[_FieldDerivative__T], DifferentialAlgebra, typing.Generic[_FieldDerivative__S, _FieldDerivative__T]):
+    """
+    public interfaceFieldDerivative<S extends :class:`~org.hipparchus.CalculusFieldElement`<S>,T extends FieldDerivative<S,T>>extends :class:`~org.hipparchus.CalculusFieldElement`<T>, :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+    
+        Interface representing both the value and the differentials of a function.
+    
+        Since:
+            1.7
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.Derivative`
+    """
+    def acos(self) -> _FieldDerivative__T:
+        """
+            Arc cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.exp` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                exponential of the instance
+                acos(this)
+        
+        
+        """
+        ...
+    @typing.overload
+    def add(self, t: _FieldDerivative__T) -> _FieldDerivative__T:
+        """
+            '+' operator.
+        
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative`): right hand side parameter of the operator
+        
+            Returns:
+                this+a
+        
+            Since:
+                3.1
         
         
         """
         ...
-    def expm1(self) -> 'SparseGradient':
+    @typing.overload
+    def add(self, double: float) -> _FieldDerivative__T: ...
+    @typing.overload
+    def add(self, s2: _FieldDerivative__S) -> _FieldDerivative__T: ...
+    def ceil(self) -> _FieldDerivative__T:
         """
-            Exponential minus 1.
+            Get the smallest whole number larger than instance.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.expm1` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.ceil` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                exponential minus one of the instance
+                ceil(this)
         
         
         """
         ...
-    def floor(self) -> 'SparseGradient':
+    def cosh(self) -> _FieldDerivative__T:
         """
-            Get the largest whole number smaller than instance.
+            Hyperbolic cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.floor` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                floor(this)
+                cosh(this)
         
         
         """
         ...
-    def getDerivative(self, int: int) -> float:
+    def floor(self) -> _FieldDerivative__T:
         """
-            Get the derivative with respect to a particular index variable.
+            Get the largest whole number smaller than instance.
         
-            Parameters:
-                index (int): index to differentiate with.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.floor` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                derivative with respect to a particular index variable
+                floor(this)
         
         
         """
         ...
-    def getField(self) -> org.hipparchus.Field['SparseGradient']: ...
-    def getPi(self) -> 'SparseGradient':
+    def getExponent(self) -> int:
         """
-            Get the Archimedes constant π.
+            Return the exponent of the instance, removing the bias.
         
-            Archimedes constant is the ratio of a circle's circumference to its diameter.
+            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.getPi` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.getExponent` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                Archimedes constant π
+                exponent for the instance, without bias
         
         
         """
         ...
+    def getPartialDerivative(self, *int: int) -> _FieldDerivative__S: ...
     def getReal(self) -> float:
         """
             Get the real value of the number.
@@ -2415,1225 +2447,1032 @@ class SparseGradient(org.hipparchus.CalculusFieldElement['SparseGradient'], java
         
         """
         ...
-    def getValue(self) -> float:
+    def getValue(self) -> _FieldDerivative__S:
         """
-            Get the value of the function.
+            Get the value part of the function.
         
             Returns:
-                value of the function.
+                value part of the value of the function
         
         
         """
         ...
-    def hashCode(self) -> int:
+    def log10(self) -> _FieldDerivative__T:
         """
-            Get a hashCode for the derivative structure.
+            Base 10 logarithm.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a hash code value for this object
+                base 10 logarithm of the instance
         
         
         """
         ...
     @typing.overload
-    def hypot(self, sparseGradient: 'SparseGradient') -> 'SparseGradient':
+    def newInstance(self, double: float) -> _FieldDerivative__T:
         """
-            Returns the hypotenuse of a triangle with sides :code:`this` and :code:`y` - sqrt(*this* :sup:`2`  +*y* :sup:`2` )
-            avoiding intermediate overflow or underflow.
-        
-              - If either argument is infinite, then the result is positive infinity.
-              - else, if either argument is NaN then the result is NaN.
+            Create an instance corresponding to a constant Field value.
         
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.hypot` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
         
             Parameters:
-                y (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): a value
+                value (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative`): constant value
         
             Returns:
-                sqrt(*this* :sup:`2`  +*y* :sup:`2` )
+                instance corresponding to a constant Field value
         
-            Returns the hypotenuse of a triangle with sides :code:`x` and :code:`y` - sqrt(*x* :sup:`2`  +*y* :sup:`2` ) avoiding
-            intermediate overflow or underflow.
+            Since:
+                3.1
         
-              - If either argument is infinite, then the result is positive infinity.
-              - else, if either argument is NaN then the result is NaN.
         
+        """
+        ...
+    @typing.overload
+    def newInstance(self, s2: _FieldDerivative__S) -> _FieldDerivative__T: ...
+    @typing.overload
+    def pow(self, double: float) -> _FieldDerivative__T:
+        """
+            Power operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): a value
-                y (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): a value
+                e (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative`): exponent
         
             Returns:
-                sqrt(*x* :sup:`2`  +*y* :sup:`2` )
+                this :sup:`e`
         
         
         """
         ...
     @typing.overload
-    @staticmethod
-    def hypot(sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient') -> 'SparseGradient': ...
+    def pow(self, int: int) -> _FieldDerivative__T: ...
     @typing.overload
-    def linearCombination(self, double: float, sparseGradient: 'SparseGradient', double2: float, sparseGradient2: 'SparseGradient') -> 'SparseGradient':
+    def pow(self, t: _FieldDerivative__T) -> _FieldDerivative__T: ...
+    def rint(self) -> _FieldDerivative__T:
         """
-            Compute a linear combination.
+            Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
-                a2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
+                :meth:`~org.hipparchus.CalculusFieldElement.rint` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
+                a double number r such that r is an integer r - 0.5 ≤ this ≤ r + 0.5
         
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
         
-            Compute a linear combination.
+        """
+        ...
+    def sign(self) -> _FieldDerivative__T:
+        """
+            Compute the sign of the instance. The sign is -1 for negative numbers, +1 for positive numbers and 0 otherwise, for
+            Complex number, it is extended on the unit circle (equivalent to z/|z|, with special handling for 0 and NaN)
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a1 (double): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
-                a2 (double): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
+                :meth:`~org.hipparchus.CalculusFieldElement.sign` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
+                -1.0, -0.0, +0.0, +1.0 or NaN depending on sign of a
         
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
         
-            Compute a linear combination.
+        """
+        ...
+    def sinh(self) -> _FieldDerivative__T:
+        """
+            Hyperbolic sine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
-                a2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
-                a3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the third term
-                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
+                :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
-        
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                sinh(this)
         
-            Compute a linear combination.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
+        """
+        ...
+    @typing.overload
+    def subtract(self, double: float) -> _FieldDerivative__T:
+        """
+            '-' operator.
         
             Parameters:
-                a1 (double): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
-                a2 (double): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
-                a3 (double): first factor of the third term
-                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
+                a (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative`): right hand side parameter of the operator
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
+                this-a
         
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+            Since:
+                3.1
         
-            Compute a linear combination.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
+        """
+        ...
+    @typing.overload
+    def subtract(self, t: _FieldDerivative__T) -> _FieldDerivative__T: ...
+    @typing.overload
+    def subtract(self, s2: _FieldDerivative__S) -> _FieldDerivative__T: ...
+    def ulp(self) -> _FieldDerivative__T:
+        """
+            Compute least significant bit (Unit in Last Position) for a number.
         
-            Parameters:
-                a1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
-                a2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
-                a3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the third term
-                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
-                a4 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the fourth term
-                b4 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the fourth term
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.ulp` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
+                ulp(this)
         
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
         
-            Compute a linear combination.
+        """
+        ...
+    def withValue(self, s2: _FieldDerivative__S) -> _FieldDerivative__T:
+        """
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
         
             Parameters:
-                a1 (double): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
-                a2 (double): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
-                a3 (double): first factor of the third term
-                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
-                a4 (double): first factor of the fourth term
-                b4 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the fourth term
+                value (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative`): zeroth-order derivative of new represented function
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
+                new object with changed value
         
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+            Since:
+                3.1
         
         
         """
         ...
+
+_FieldTaylorMap__T = typing.TypeVar('_FieldTaylorMap__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldTaylorMap(DifferentialAlgebra, typing.Generic[_FieldTaylorMap__T]):
+    """
+    public classFieldTaylorMap<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+    
+        Container for a Taylor map.
+    
+        A Taylor map is a set of n :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` \((f_1, f_2, \ldots,
+        f_n)\) depending on m parameters \((p_1, p_2, \ldots, p_m)\), with positive n and m.
+    
+        Since:
+            2.2
+    """
     @typing.overload
-    def linearCombination(self, double: float, sparseGradient: 'SparseGradient', double2: float, sparseGradient2: 'SparseGradient', double3: float, sparseGradient3: 'SparseGradient') -> 'SparseGradient': ...
-    @typing.overload
-    def linearCombination(self, double: float, sparseGradient: 'SparseGradient', double2: float, sparseGradient2: 'SparseGradient', double3: float, sparseGradient3: 'SparseGradient', double4: float, sparseGradient4: 'SparseGradient') -> 'SparseGradient': ...
+    def __init__(self, tArray: typing.Union[typing.List[_FieldTaylorMap__T], jpype.JArray], fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldTaylorMap__T]], jpype.JArray]): ...
     @typing.overload
-    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], sparseGradientArray: typing.Union[typing.List['SparseGradient'], jpype.JArray]) -> 'SparseGradient':
+    def __init__(self, field: org.hipparchus.Field[_FieldTaylorMap__T], int: int, int2: int, int3: int): ...
+    def compose(self, fieldTaylorMap: 'FieldTaylorMap'[_FieldTaylorMap__T]) -> 'FieldTaylorMap'[_FieldTaylorMap__T]: ...
+    def getFreeParameters(self) -> int:
         """
-            Compute a linear combination.
+            Get the number of free parameters.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double[]): Factors.
-                b (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`[]): Factors.
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                :code:`Σ :sub:`i` a :sub:`i` b :sub:`i``.
+                number of free parameters
+        
         
         """
         ...
-    @typing.overload
-    def linearCombination(self, sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient', sparseGradient3: 'SparseGradient', sparseGradient4: 'SparseGradient') -> 'SparseGradient': ...
-    @typing.overload
-    def linearCombination(self, sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient', sparseGradient3: 'SparseGradient', sparseGradient4: 'SparseGradient', sparseGradient5: 'SparseGradient', sparseGradient6: 'SparseGradient') -> 'SparseGradient': ...
-    @typing.overload
-    def linearCombination(self, sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient', sparseGradient3: 'SparseGradient', sparseGradient4: 'SparseGradient', sparseGradient5: 'SparseGradient', sparseGradient6: 'SparseGradient', sparseGradient7: 'SparseGradient', sparseGradient8: 'SparseGradient') -> 'SparseGradient': ...
-    @typing.overload
-    def linearCombination(self, sparseGradientArray: typing.Union[typing.List['SparseGradient'], jpype.JArray], sparseGradientArray2: typing.Union[typing.List['SparseGradient'], jpype.JArray]) -> 'SparseGradient': ...
-    def log(self) -> 'SparseGradient':
+    def getFunction(self, int: int) -> 'FieldDerivativeStructure'[_FieldTaylorMap__T]: ...
+    def getNbFunctions(self) -> int:
         """
-            Natural logarithm.
+            Get the number of functions of the map.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.log` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Returns:
+                number of functions of the map
+        
+        
+        """
+        ...
+    def getNbParameters(self) -> int:
+        """
+            Deprecated.
+            Get the number of parameters of the map.
         
             Returns:
-                logarithm of the instance
+                number of parameters of the map
         
         
         """
         ...
-    def log10(self) -> 'SparseGradient':
+    def getOrder(self) -> int:
         """
-            Base 10 logarithm.
+            Get the maximum derivation order.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                base 10 logarithm of the instance
+                maximum derivation order
         
         
         """
         ...
-    def log1p(self) -> 'SparseGradient':
+    def getPoint(self) -> typing.MutableSequence[_FieldTaylorMap__T]:
         """
-            Shifted natural logarithm.
+            Get the point at which map is evaluated.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.log1p` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Returns:
+                point at which map is evaluated
+        
+        
+        """
+        ...
+    def invert(self, fieldMatrixDecomposer: typing.Union[org.hipparchus.linear.FieldMatrixDecomposer[_FieldTaylorMap__T], typing.Callable[[org.hipparchus.linear.FieldMatrix[org.hipparchus.FieldElement]], org.hipparchus.linear.FieldDecompositionSolver[org.hipparchus.FieldElement]]]) -> 'FieldTaylorMap'[_FieldTaylorMap__T]: ...
+    @typing.overload
+    def value(self, *double: float) -> typing.MutableSequence[_FieldTaylorMap__T]:
+        """
+            Evaluate Taylor expansion of the map at some offset.
+        
+            Parameters:
+                deltaP (double...): parameters offsets \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
         
             Returns:
-                logarithm of one plus the instance
+                value of the Taylor expansion at \((p_1 + \Delta p_1, p_2 + \Delta p_2, \ldots, p_n + \Delta p_n)\)
+        
+            Evaluate Taylor expansion of the map at some offset.
+        
+            Parameters:
+                deltaP (:class:`~org.hipparchus.analysis.differentiation.FieldTaylorMap`...): parameters offsets \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
+        
+            Returns:
+                value of the Taylor expansion at \((p_1 + \Delta p_1, p_2 + \Delta p_2, \ldots, p_n + \Delta p_n)\)
         
         
         """
         ...
     @typing.overload
-    def multiply(self, double: float) -> 'SparseGradient':
+    def value(self, *t: _FieldTaylorMap__T) -> typing.MutableSequence[_FieldTaylorMap__T]: ...
+
+class FiniteDifferencesDifferentiator(UnivariateFunctionDifferentiator, UnivariateVectorFunctionDifferentiator, UnivariateMatrixFunctionDifferentiator, java.io.Serializable):
+    """
+    public classFiniteDifferencesDifferentiator extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator`, :class:`~org.hipparchus.analysis.differentiation.UnivariateVectorFunctionDifferentiator`, :class:`~org.hipparchus.analysis.differentiation.UnivariateMatrixFunctionDifferentiator`, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
+    
+        Univariate functions differentiator using finite differences.
+    
+        This class creates some wrapper objects around regular :class:`~org.hipparchus.analysis.UnivariateFunction` (or
+        :class:`~org.hipparchus.analysis.UnivariateVectorFunction` or
+        :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`). These wrapper objects compute derivatives in addition to
+        function values.
+    
+        The wrapper objects work by calling the underlying function on a sampling grid around the current point and performing
+        polynomial interpolation. A finite differences scheme with n points is theoretically able to compute derivatives up to
+        order n-1, but it is generally better to have a slight margin. The step size must also be small enough in order for the
+        polynomial approximation to be good in the current point neighborhood, but it should not be too small because numerical
+        instability appears quickly (there are several differences of close points). Choosing the number of points and the step
+        size is highly problem dependent.
+    
+        As an example of good and bad settings, lets consider the quintic polynomial function :code:`f(x) =
+        (x-1)*(x-0.5)*x*(x+0.5)*(x+1)`. Since it is a polynomial, finite differences with at least 6 points should theoretically
+        recover the exact same polynomial and hence compute accurate derivatives for any order. However, due to numerical
+        errors, we get the following results for a 7 points finite differences for abscissae in the [-10, 10] range:
+    
+          - step size = 0.25, second order derivative error about 9.97e-10
+          - step size = 0.25, fourth order derivative error about 5.43e-8
+          - step size = 1.0e-6, second order derivative error about 148
+          - step size = 1.0e-6, fourth order derivative error about 6.35e+14
+    
+    
+        This example shows that the small step size is really bad, even simply for second order derivative!
+    
+        Also see:
+    
+              - :meth:`~serialized`
+    """
+    @typing.overload
+    def __init__(self, int: int, double: float): ...
+    @typing.overload
+    def __init__(self, int: int, double: float, double2: float, double3: float): ...
+    @typing.overload
+    def differentiate(self, univariateFunction: typing.Union[org.hipparchus.analysis.UnivariateFunction, typing.Callable]) -> UnivariateDifferentiableFunction:
         """
-            Compute this × a.
+            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction` from a
+            regular :class:`~org.hipparchus.analysis.UnivariateFunction`.
+        
+            The returned object cannot compute derivatives to arbitrary orders. The value function will throw a
+            :class:`~org.hipparchus.exception.MathIllegalArgumentException` if the requested derivation order is larger or equal to
+            the number of points.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator.differentiate` in
+                interface :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator`
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to multiply
+                function (:class:`~org.hipparchus.analysis.UnivariateFunction`): function to differentiate
         
             Returns:
-                a new element representing this × a
+                differential function
         
-            '×' operator.
+            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction`
+            from a regular :class:`~org.hipparchus.analysis.UnivariateVectorFunction`.
+        
+            The returned object cannot compute derivatives to arbitrary orders. The value function will throw a
+            :class:`~org.hipparchus.exception.MathIllegalArgumentException` if the requested derivation order is larger or equal to
+            the number of points.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.UnivariateVectorFunctionDifferentiator.differentiate` in
+                interface :class:`~org.hipparchus.analysis.differentiation.UnivariateVectorFunctionDifferentiator`
         
             Parameters:
-                c (double): right hand side parameter of the operator
+                function (:class:`~org.hipparchus.analysis.UnivariateVectorFunction`): function to differentiate
         
             Returns:
-                this×a
+                differential function
         
-            Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
-            \sum_{i=1}^n \mathrm{this} \]
+            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableMatrixFunction`
+            from a regular :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`.
+        
+            The returned object cannot compute derivatives to arbitrary orders. The value function will throw a
+            :class:`~org.hipparchus.exception.MathIllegalArgumentException` if the requested derivation order is larger or equal to
+            the number of points.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.UnivariateMatrixFunctionDifferentiator.differentiate` in
+                interface :class:`~org.hipparchus.analysis.differentiation.UnivariateMatrixFunctionDifferentiator`
         
             Parameters:
-                n (int): Number of times :code:`this` must be added to itself.
+                function (:class:`~org.hipparchus.analysis.UnivariateMatrixFunction`): function to differentiate
         
             Returns:
-                A new element representing n × this.
+                differential function
         
         
         """
         ...
     @typing.overload
-    def multiply(self, int: int) -> 'SparseGradient': ...
+    def differentiate(self, univariateMatrixFunction: typing.Union[org.hipparchus.analysis.UnivariateMatrixFunction, typing.Callable]) -> UnivariateDifferentiableMatrixFunction: ...
     @typing.overload
-    def multiply(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def multiplyInPlace(self, sparseGradient: 'SparseGradient') -> None:
+    def differentiate(self, univariateVectorFunction: typing.Union[org.hipparchus.analysis.UnivariateVectorFunction, typing.Callable]) -> UnivariateDifferentiableVectorFunction: ...
+    def getNbPoints(self) -> int:
         """
-            Multiply in place.
-        
-            This method is designed to be faster when used multiple times in a loop.
-        
-            The instance is changed here, in order to not change the instance the
-            :meth:`~org.hipparchus.analysis.differentiation.SparseGradient.add` method should be used.
+            Get the number of points to use.
         
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): instance to multiply
+            Returns:
+                number of points to use
         
         
         """
         ...
-    def negate(self) -> 'SparseGradient':
+    def getStepSize(self) -> float:
         """
-            Returns the additive inverse of :code:`this` element.
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.negate` in interface :class:`~org.hipparchus.FieldElement`
+            Get the step size.
         
             Returns:
-                the opposite of :code:`this`.
+                step size
         
         
         """
         ...
-    def newInstance(self, double: float) -> 'SparseGradient':
+
+class TaylorMap(DifferentialAlgebra):
+    """
+    public classTaylorMap extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+    
+        Container for a Taylor map.
+    
+        A Taylor map is a set of n :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` \((f_1, f_2, \ldots,
+        f_n)\) depending on m parameters \((p_1, p_2, \ldots, p_m)\), with positive n and m.
+    
+        Since:
+            2.2
+    """
+    @typing.overload
+    def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], derivativeStructureArray: typing.Union[typing.List['DerivativeStructure'], jpype.JArray]): ...
+    @typing.overload
+    def __init__(self, int: int, int2: int, int3: int): ...
+    def compose(self, taylorMap: 'TaylorMap') -> 'TaylorMap':
         """
-            Create an instance corresponding to a constant real value.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.newInstance` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Compose the instance with another Taylor map as \(\mathrm{this} \circ \mathrm{other}\).
         
             Parameters:
-                v (double): constant real value
+                other (:class:`~org.hipparchus.analysis.differentiation.TaylorMap`): map with which instance must be composed
         
             Returns:
-                instance corresponding to a constant real value
+                composed map \(\mathrm{this} \circ \mathrm{other}\)
         
         
         """
         ...
-    def numVars(self) -> int:
+    def getFreeParameters(self) -> int:
         """
-            Find the number of variables.
+            Get the number of free parameters.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                number of variables
+                number of free parameters
         
         
         """
         ...
-    @typing.overload
-    def pow(self, double: float) -> 'SparseGradient':
+    def getFunction(self, int: int) -> 'DerivativeStructure':
         """
-            Power operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Get a function from the map.
         
             Parameters:
-                p (double): power to apply
+                i (int): index of the function (must be between 0 included and
+                    :meth:`~org.hipparchus.analysis.differentiation.TaylorMap.getNbFunctions` excluded
         
             Returns:
-                this :sup:`p`
-        
-            Integer power operation.
+                function at index i
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Parameters:
-                n (int): power to apply
+        """
+        ...
+    def getNbFunctions(self) -> int:
+        """
+            Get the number of functions of the map.
         
             Returns:
-                this :sup:`n`
-        
-            Power operation.
+                number of functions of the map
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): exponent
+        """
+        ...
+    def getNbParameters(self) -> int:
+        """
+            Deprecated.
+            Get the number of parameters of the map.
         
             Returns:
-                this :sup:`e`
+                number of parameters of the map
         
-            Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.SparseGradient`
         
-            Parameters:
-                a (double): number to exponentiate
-                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): power to apply
+        """
+        ...
+    def getOrder(self) -> int:
+        """
+            Get the maximum derivation order.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                a :sup:`x`
+                maximum derivation order
         
         
         """
         ...
-    @typing.overload
-    def pow(self, int: int) -> 'SparseGradient': ...
-    @typing.overload
-    def pow(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    @typing.overload
-    @staticmethod
-    def pow(double: float, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def reciprocal(self) -> 'SparseGradient':
+    def getPoint(self) -> typing.MutableSequence[float]:
         """
-            Returns the multiplicative inverse of :code:`this` element.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
+            Get the point at which map is evaluated.
         
             Returns:
-                the inverse of :code:`this`.
+                point at which map is evaluated
         
         
         """
         ...
-    @typing.overload
-    def remainder(self, double: float) -> 'SparseGradient':
+    def invert(self, matrixDecomposer: typing.Union[org.hipparchus.linear.MatrixDecomposer, typing.Callable]) -> 'TaylorMap':
         """
-            IEEE remainder operator.
+            Invert the instance.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Consider :meth:`~org.hipparchus.analysis.differentiation.TaylorMap.value` of the map with small parameters offsets
+            \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\) which leads to evaluation offsets \((f_1 + df_1, f_2 + df_2, \ldots,
+            f_n + df_n)\). The map inversion defines a Taylor map that computes \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
+            from \((df_1, df_2, \ldots, df_n)\).
+        
+            The map must be square to be invertible (i.e. the number of functions and the number of parameters in the functions must
+            match)
         
             Parameters:
-                a (double): right hand side parameter of the operator
+                decomposer (:class:`~org.hipparchus.linear.MatrixDecomposer`): matrix decomposer to user for inverting the linear part
         
             Returns:
-                this - n × a where n is the closest integer to this/a
-        
-            IEEE remainder operator.
+                inverted map
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Also see:
         
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): right hand side parameter of the operator
+                  - :class:`~org.hipparchus.analysis.differentiation.https:.doi.org.10.1016.S1076`
         
-            Returns:
-                this - n × a where n is the closest integer to this/a
         
         
         """
         ...
-    @typing.overload
-    def remainder(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def rint(self) -> 'SparseGradient':
+    def value(self, *double: float) -> typing.MutableSequence[float]:
         """
-            Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
+            Evaluate Taylor expansion of the map at some offset.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.rint` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                deltaP (double...): parameters offsets \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
         
             Returns:
-                a double number r such that r is an integer r - 0.5 ≤ this ≤ r + 0.5
+                value of the Taylor expansion at \((p_1 + \Delta p_1, p_2 + \Delta p_2, \ldots, p_n + \Delta p_n)\)
         
         
         """
         ...
-    def rootN(self, int: int) -> 'SparseGradient':
+
+_Derivative1__T = typing.TypeVar('_Derivative1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class Derivative1(Derivative[_Derivative1__T], typing.Generic[_Derivative1__T]):
+    """
+    public interfaceDerivative1<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>
+    
+        Interface representing an object holding partial derivatives up to first order.
+    
+        Since:
+            3.1
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.Derivative`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.Gradient`
+              - :class:`~org.hipparchus.analysis.differentiation.SparseGradient`
+    """
+    def acos(self) -> _Derivative1__T:
         """
-            N :sup:`th` root.
+            Arc cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.rootN` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Parameters:
-                n (int): order of the root
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.acos` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Returns:
-                n :sup:`th` root of the instance
+                acos(this)
         
         
         """
         ...
-    def scalb(self, int: int) -> 'SparseGradient':
+    def acosh(self) -> _Derivative1__T:
         """
-            Multiply the instance by a power of 2.
+            Inverse hyperbolic cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.scalb` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                n (int): power of 2
+                :meth:`~org.hipparchus.CalculusFieldElement.acosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                this × 2 :sup:`n`
+                acosh(this)
         
         
         """
         ...
-    def sign(self) -> 'SparseGradient':
+    def asin(self) -> _Derivative1__T:
         """
-            Compute the sign of the instance. The sign is -1 for negative numbers, +1 for positive numbers and 0 otherwise, for
-            Complex number, it is extended on the unit circle (equivalent to z/|z|, with special handling for 0 and NaN)
+            Arc sine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.asin` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                -1.0, -0.0, +0.0, +1.0 or NaN depending on sign of a
+                asin(this)
         
         
         """
         ...
-    def sin(self) -> 'SparseGradient':
+    def asinh(self) -> _Derivative1__T:
         """
-            Sine operation.
+            Inverse hyperbolic sine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sin` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.asinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                sin(this)
+                asin(this)
         
         
         """
         ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['SparseGradient']: ...
-    def sinh(self) -> 'SparseGradient':
+    def atan(self) -> _Derivative1__T:
         """
-            Hyperbolic sine operation.
+            Arc tangent operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.atan` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                sinh(this)
+                atan(this)
         
         
         """
         ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['SparseGradient']: ...
-    def sqrt(self) -> 'SparseGradient':
+    def atanh(self) -> _Derivative1__T:
         """
-            Square root.
+            Inverse hyperbolic tangent operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sqrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.atanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                square root of the instance
+                atanh(this)
         
         
         """
         ...
-    @typing.overload
-    def subtract(self, double: float) -> 'SparseGradient':
+    def cbrt(self) -> _Derivative1__T:
         """
-            Compute this - a.
+            Cubic root.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to subtract
+                :meth:`~org.hipparchus.CalculusFieldElement.cbrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a new element representing this - a
+                cubic root of the instance
         
-            '-' operator.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        """
+        ...
+    @typing.overload
+    def compose(self, *double: float) -> _Derivative1__T:
+        """
+            Compute composition of the instance by a univariate function differentiable at order 1.
         
             Parameters:
-                c (double): right hand side parameter of the operator
+                f0 (double): value of function
+                f1 (double): first-order derivative
         
             Returns:
-                this-a
+                f(this)
         
         
         """
         ...
     @typing.overload
-    def subtract(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
-    def tan(self) -> 'SparseGradient':
+    def compose(self, double: float, double2: float) -> _Derivative1__T: ...
+    def cos(self) -> _Derivative1__T:
         """
-            Tangent operation.
+            Cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.tan` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.cos` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                tan(this)
+                cos(this)
         
         
         """
         ...
-    def tanh(self) -> 'SparseGradient':
+    def cosh(self) -> _Derivative1__T:
         """
-            Hyperbolic tangent operation.
+            Hyperbolic cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.tanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.cosh` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Returns:
-                tanh(this)
+                cosh(this)
         
         
         """
         ...
-    def taylor(self, *double: float) -> float:
+    def exp(self) -> _Derivative1__T:
         """
-            Evaluate Taylor expansion of a sparse gradient.
+            Exponential.
         
-            Parameters:
-                delta (double...): parameters offsets (Δx, Δy, ...)
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.exp` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                value of the Taylor expansion at x + Δx, y + Δy, ...
+                exponential of the instance
         
         
         """
         ...
-    def toDegrees(self) -> 'SparseGradient':
+    def expm1(self) -> _Derivative1__T:
         """
-            Convert radians to degrees, with error of less than 0.5 ULP
+            Exponential minus 1.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.toDegrees` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.expm1` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                instance converted into degrees
+                exponential minus one of the instance
         
         
         """
         ...
-    def toRadians(self) -> 'SparseGradient':
+    def getOrder(self) -> int:
         """
-            Convert degrees to radians, with error of less than 0.5 ULP
+            Get the maximum derivation order.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.toRadians` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                instance converted into radians
+                maximum derivation order
         
         
         """
         ...
-    def ulp(self) -> 'SparseGradient':
+    def log(self) -> _Derivative1__T:
         """
-            Compute least significant bit (Unit in Last Position) for a number.
-        
-            The :code:`ulp` function is a step function, hence all its derivatives are 0.
+            Natural logarithm.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.ulp` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.log` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                ulp(this)
-        
-            Since:
-                2.0
+                logarithm of the instance
         
         
         """
         ...
-
-class TaylorMap:
-    """
-    public class TaylorMap extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-    
-        Container for a Taylor map.
-    
-        A Taylor map is a set of n :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` \((f_1, f_2, \ldots,
-        f_n)\) depending on m parameters \((p_1, p_2, \ldots, p_m)\), with positive n and m.
-    
-        Since:
-            2.2
-    """
-    @typing.overload
-    def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], derivativeStructureArray: typing.Union[typing.List['DerivativeStructure'], jpype.JArray]): ...
-    @typing.overload
-    def __init__(self, int: int, int2: int, int3: int): ...
-    def compose(self, taylorMap: 'TaylorMap') -> 'TaylorMap':
+    def log10(self) -> _Derivative1__T:
         """
-            Compose the instance with another Taylor map as \(\mathrm{this} \circ \mathrm{other}\).
+            Base 10 logarithm.
         
-            Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.TaylorMap`): map with which instance must be composed
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.log10` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Returns:
-                composed map \(\mathrm{this} \circ \mathrm{other}\)
+                base 10 logarithm of the instance
         
         
         """
         ...
-    def getFunction(self, int: int) -> 'DerivativeStructure':
+    def log1p(self) -> _Derivative1__T:
         """
-            Get a function from the map.
+            Shifted natural logarithm.
         
-            Parameters:
-                i (int): index of the function (must be between 0 included and
-                    :meth:`~org.hipparchus.analysis.differentiation.TaylorMap.getNbFunctions` excluded
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.log1p` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                function at index i
+                logarithm of one plus the instance
         
         
         """
         ...
-    def getNbFunctions(self) -> int:
+    def reciprocal(self) -> _Derivative1__T:
         """
-            Get the number of functions of the map.
+            Returns the multiplicative inverse of :code:`this` element.
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
             Returns:
-                number of functions of the map
+                the inverse of :code:`this`.
         
         
         """
         ...
-    def getNbParameters(self) -> int:
+    def rootN(self, int: int) -> _Derivative1__T:
         """
-            Get the number of parameters of the map.
+            N :sup:`th` root.
         
-            Returns:
-                number of parameters of the map
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.rootN` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-        
-        """
-        ...
-    def getPoint(self) -> typing.MutableSequence[float]:
-        """
-            Get the point at which map is evaluated.
+            Parameters:
+                n (int): order of the root
         
             Returns:
-                point at which map is evaluated
+                n :sup:`th` root of the instance
         
         
         """
         ...
-    def invert(self, matrixDecomposer: typing.Union[org.hipparchus.linear.MatrixDecomposer, typing.Callable]) -> 'TaylorMap':
+    def sin(self) -> _Derivative1__T:
         """
-            Invert the instance.
-        
-            Consider :meth:`~org.hipparchus.analysis.differentiation.TaylorMap.value` of the map with small parameters offsets
-            \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\) which leads to evaluation offsets \((f_1 + df_1, f_2 + df_2, \ldots,
-            f_n + df_n)\). The map inversion defines a Taylor map that computes \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
-            from \((df_1, df_2, \ldots, df_n)\).
-        
-            The map must be square to be invertible (i.e. the number of functions and the number of parameters in the functions must
-            match)
+            Sine operation.
         
-            Parameters:
-                decomposer (:class:`~org.hipparchus.linear.MatrixDecomposer`): matrix decomposer to user for inverting the linear part
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sin` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                inverted map
-        
-            Also see:
-                :class:`~org.hipparchus.analysis.differentiation.https:.doi.org.10.1016.S1076`
+                sin(this)
         
         
         """
         ...
-    def value(self, *double: float) -> typing.MutableSequence[float]:
+    def sinCos(self) -> org.hipparchus.util.FieldSinCos[_Derivative1__T]: ...
+    def sinh(self) -> _Derivative1__T:
         """
-            Evaluate Taylor expansion of the map at some offset.
+            Hyperbolic sine operation.
         
-            Parameters:
-                deltaP (double...): parameters offsets \((\Delta p_1, \Delta p_2, \ldots, \Delta p_n)\)
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.sinh` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Returns:
-                value of the Taylor expansion at \((p_1 + \Delta p_1, p_2 + \Delta p_2, \ldots, p_n + \Delta p_n)\)
+                sinh(this)
         
         
         """
         ...
-
-class UnivariateDerivative1Field(org.hipparchus.Field['UnivariateDerivative1'], java.io.Serializable):
-    """
-    public class UnivariateDerivative1Field extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
-    
-        Field for :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1` instances.
-    
-        This class is a singleton.
-    
-        Since:
-            1.7
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    def equals(self, object: typing.Any) -> bool:
+    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh[_Derivative1__T]: ...
+    def sqrt(self) -> _Derivative1__T:
         """
+            Square root.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-        
-        
-        """
-        ...
-    @staticmethod
-    def getInstance() -> 'UnivariateDerivative1Field':
-        """
-            Get the unique instance.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sqrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                the unique instance
+                square root of the instance
         
         
         """
         ...
-    def getOne(self) -> 'UnivariateDerivative1':
+    def square(self) -> _Derivative1__T:
         """
-            Get the multiplicative identity of the field.
-        
-            The multiplicative identity is the element e :sub:`1` of the field such that for all elements a of the field, the
-            equalities a × e :sub:`1` = e :sub:`1` × a = a hold.
+            Compute this × this.
         
             Specified by:
-                :meth:`~org.hipparchus.Field.getOne` in interface :class:`~org.hipparchus.Field`
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                multiplicative identity of the field
+                a new element representing this × this
         
         
         """
         ...
-    def getRuntimeClass(self) -> typing.Type['UnivariateDerivative1']: ...
-    def getZero(self) -> 'UnivariateDerivative1':
+    def tan(self) -> _Derivative1__T:
         """
-            Get the additive identity of the field.
-        
-            The additive identity is the element e :sub:`0` of the field such that for all elements a of the field, the equalities a
-            + e :sub:`0` = e :sub:`0` + a = a hold.
+            Tangent operation.
         
             Specified by:
-                :meth:`~org.hipparchus.Field.getZero` in interface :class:`~org.hipparchus.Field`
+                :meth:`~org.hipparchus.CalculusFieldElement.tan` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                additive identity of the field
+                tan(this)
         
         
         """
         ...
-    def hashCode(self) -> int:
+    def tanh(self) -> _Derivative1__T:
         """
+            Hyperbolic tangent operation.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.tanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                tanh(this)
         
         
         """
         ...
 
-class UnivariateDerivative2Field(org.hipparchus.Field['UnivariateDerivative2'], java.io.Serializable):
+class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializable):
     """
-    public class UnivariateDerivative2Field extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classDerivativeStructure extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.Derivative`<:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
-        Field for :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2` instances.
+        Class representing both the value and the differentials of a function.
     
-        This class is a singleton.
+        This class is the workhorse of the differentiation package.
     
-        Since:
-            1.7
+        This class is an implementation of the extension to Rall's numbers described in Dan Kalman's paper `Doubly Recursive
+        Multivariate Automatic Differentiation <http://www.dankalman.net/AUhome/pdffiles/mmgautodiff.pdf>`, Mathematics
+        Magazine, vol. 75, no. 3, June 2002. Rall's numbers are an extension to the real numbers used throughout mathematical
+        expressions; they hold the derivative together with the value of a function. Dan Kalman's derivative structures hold all
+        partial derivatives up to any specified order, with respect to any number of free parameters. Rall's numbers therefore
+        can be seen as derivative structures for order one derivative and one free parameter, and real numbers can be seen as
+        derivative structures with zero order derivative and no free parameters.
+    
+        :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` instances can be used directly thanks to the
+        arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
+    
+        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
+        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
+        Implementing complex expression can also be done by developing computation code using standard primitive double values
+        and to use :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator` to create the
+        :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`-based instances. This method is simpler but may be
+        limited in the accuracy and derivation orders and may be computationally intensive (this is typically the case for
+        :class:`~org.hipparchus.analysis.differentiation.FiniteDifferencesDifferentiator`.
+    
+        Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DSCompiler`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :meth:`~serialized`
     """
-    def equals(self, object: typing.Any) -> bool:
+    def abs(self) -> 'DerivativeStructure':
         """
+            absolute value.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                abs(this)
         
         
         """
         ...
-    @staticmethod
-    def getInstance() -> 'UnivariateDerivative2Field':
+    def acos(self) -> 'DerivativeStructure':
         """
-            Get the unique instance.
+            Arc cosine operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.acos` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Returns:
-                the unique instance
+                acos(this)
         
         
         """
         ...
-    def getOne(self) -> 'UnivariateDerivative2':
+    def acosh(self) -> 'DerivativeStructure':
         """
-            Get the multiplicative identity of the field.
-        
-            The multiplicative identity is the element e :sub:`1` of the field such that for all elements a of the field, the
-            equalities a × e :sub:`1` = e :sub:`1` × a = a hold.
+            Inverse hyperbolic cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.Field.getOne` in interface :class:`~org.hipparchus.Field`
+                :meth:`~org.hipparchus.CalculusFieldElement.acosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                multiplicative identity of the field
+                acosh(this)
         
         
         """
         ...
-    def getRuntimeClass(self) -> typing.Type['UnivariateDerivative2']: ...
-    def getZero(self) -> 'UnivariateDerivative2':
+    @typing.overload
+    def add(self, double: float) -> org.hipparchus.CalculusFieldElement: ...
+    @typing.overload
+    def add(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure': ...
+    def asin(self) -> 'DerivativeStructure':
         """
-            Get the additive identity of the field.
-        
-            The additive identity is the element e :sub:`0` of the field such that for all elements a of the field, the equalities a
-            + e :sub:`0` = e :sub:`0` + a = a hold.
+            Arc sine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.Field.getZero` in interface :class:`~org.hipparchus.Field`
+                :meth:`~org.hipparchus.CalculusFieldElement.asin` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                additive identity of the field
+                asin(this)
         
         
         """
         ...
-    def hashCode(self) -> int:
+    def asinh(self) -> 'DerivativeStructure':
         """
+            Inverse hyperbolic sine operation.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.asinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                asin(this)
         
         
         """
         ...
-
-class UnivariateDifferentiableFunction(org.hipparchus.analysis.UnivariateFunction):
-    """
-    public interface UnivariateDifferentiableFunction extends :class:`~org.hipparchus.analysis.UnivariateFunction`
-    
-        Interface for univariate functions derivatives.
-    
-        This interface represents a simple function which computes both the value and the first derivative of a mathematical
-        function. The derivative is computed with respect to the input variable.
-    
-        Also see:
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator`
-    """
-    _value_1__T = typing.TypeVar('_value_1__T', bound=Derivative)  # <T>
-    @typing.overload
-    def value(self, double: float) -> float: ...
-    @typing.overload
-    def value(self, t: _value_1__T) -> _value_1__T: ...
-
-class UnivariateDifferentiableMatrixFunction(org.hipparchus.analysis.UnivariateMatrixFunction):
-    """
-    public interface UnivariateDifferentiableMatrixFunction extends :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`
-    
-        Extension of :class:`~org.hipparchus.analysis.UnivariateMatrixFunction` representing a univariate differentiable matrix
-        function.
-    """
-    _value_1__T = typing.TypeVar('_value_1__T', bound=Derivative)  # <T>
-    @typing.overload
-    def value(self, double: float) -> typing.MutableSequence[typing.MutableSequence[float]]: ...
-    @typing.overload
-    def value(self, t: _value_1__T) -> typing.MutableSequence[typing.MutableSequence[_value_1__T]]: ...
-
-class UnivariateDifferentiableVectorFunction(org.hipparchus.analysis.UnivariateVectorFunction):
-    """
-    public interface UnivariateDifferentiableVectorFunction extends :class:`~org.hipparchus.analysis.UnivariateVectorFunction`
-    
-        Extension of :class:`~org.hipparchus.analysis.UnivariateVectorFunction` representing a univariate differentiable
-        vectorial function.
-    """
-    _value_1__T = typing.TypeVar('_value_1__T', bound=Derivative)  # <T>
-    @typing.overload
-    def value(self, double: float) -> typing.MutableSequence[float]: ...
-    @typing.overload
-    def value(self, t: _value_1__T) -> typing.MutableSequence[_value_1__T]: ...
-
-class UnivariateFunctionDifferentiator:
-    """
-    public interface UnivariateFunctionDifferentiator
-    
-        Interface defining the function differentiation operation.
-    """
-    def differentiate(self, univariateFunction: typing.Union[org.hipparchus.analysis.UnivariateFunction, typing.Callable]) -> UnivariateDifferentiableFunction:
+    def atan(self) -> 'DerivativeStructure':
         """
-            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction` from a
-            regular :class:`~org.hipparchus.analysis.UnivariateFunction`.
+            Arc tangent operation.
         
-            Parameters:
-                function (:class:`~org.hipparchus.analysis.UnivariateFunction`): function to differentiate
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.atan` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                differential function
+                atan(this)
         
         
         """
         ...
-
-class UnivariateMatrixFunctionDifferentiator:
-    """
-    public interface UnivariateMatrixFunctionDifferentiator
-    
-        Interface defining the function differentiation operation.
-    """
-    def differentiate(self, univariateMatrixFunction: typing.Union[org.hipparchus.analysis.UnivariateMatrixFunction, typing.Callable]) -> UnivariateDifferentiableMatrixFunction:
+    @typing.overload
+    def atan2(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure':
         """
-            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableMatrixFunction`
-            from a regular :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`.
+            Raises:
+                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders are inconsistent
+        
+        public static :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` atan2(:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` y, :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` x) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+            Two arguments arc tangent operation.
         
             Parameters:
-                function (:class:`~org.hipparchus.analysis.UnivariateMatrixFunction`): function to differentiate
+                y (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): first argument of the arc tangent
+                x (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): second argument of the arc tangent
         
             Returns:
-                differential function
-        
-        
-        """
-        ...
-
-class UnivariateVectorFunctionDifferentiator:
-    """
-    public interface UnivariateVectorFunctionDifferentiator
-    
-        Interface defining the function differentiation operation.
-    """
-    def differentiate(self, univariateVectorFunction: typing.Union[org.hipparchus.analysis.UnivariateVectorFunction, typing.Callable]) -> UnivariateDifferentiableVectorFunction:
-        """
-            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction`
-            from a regular :class:`~org.hipparchus.analysis.UnivariateVectorFunction`.
-        
-            Parameters:
-                function (:class:`~org.hipparchus.analysis.UnivariateVectorFunction`): function to differentiate
-        
-            Returns:
-                differential function
-        
-        
-        """
-        ...
-
-class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializable):
-    """
-    public class DerivativeStructure extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.Derivative`<:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
-    
-        Class representing both the value and the differentials of a function.
-    
-        This class is the workhorse of the differentiation package.
-    
-        This class is an implementation of the extension to Rall's numbers described in Dan Kalman's paper `Doubly Recursive
-        Multivariate Automatic Differentiation <http://www.dankalman.net/AUhome/pdffiles/mmgautodiff.pdf>`, Mathematics
-        Magazine, vol. 75, no. 3, June 2002. Rall's numbers are an extension to the real numbers used throughout mathematical
-        expressions; they hold the derivative together with the value of a function. Dan Kalman's derivative structures hold all
-        partial derivatives up to any specified order, with respect to any number of free parameters. Rall's numbers therefore
-        can be seen as derivative structures for order one derivative and one free parameter, and real numbers can be seen as
-        derivative structures with zero order derivative and no free parameters.
-    
-        :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` instances can be used directly thanks to the
-        arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
-    
-        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
-        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
-        Implementing complex expression can also be done by developing computation code using standard primitive double values
-        and to use :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator` to create the
-        :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`-based instances. This method is simpler but may be
-        limited in the accuracy and derivation orders and may be computationally intensive (this is typically the case for
-        :class:`~org.hipparchus.analysis.differentiation.FiniteDifferencesDifferentiator`.
-    
-        Instances of this class are guaranteed to be immutable.
-    
-        Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DSCompiler`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`, :meth:`~serialized`
-    """
-    def abs(self) -> 'DerivativeStructure':
-        """
-            absolute value.
-        
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                abs(this)
-        
-        
-        """
-        ...
-    def acos(self) -> 'DerivativeStructure':
-        """
-            Arc cosine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                acos(this)
-        
-        
-        """
-        ...
-    def acosh(self) -> 'DerivativeStructure':
-        """
-            Inverse hyperbolic cosine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.acosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                acosh(this)
-        
-        
-        """
-        ...
-    @typing.overload
-    def add(self, double: float) -> 'DerivativeStructure':
-        """
-            '+' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.add` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this+a
-        
-        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` add (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
-        
-            Compute this + a.
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.add` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): element to add
-        
-            Returns:
-                a new element representing this + a
-        
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
-        
-        
-        """
-        ...
-    @typing.overload
-    def add(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure': ...
-    def asin(self) -> 'DerivativeStructure':
-        """
-            Arc sine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.asin` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                asin(this)
-        
-        
-        """
-        ...
-    def asinh(self) -> 'DerivativeStructure':
-        """
-            Inverse hyperbolic sine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.asinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                asin(this)
-        
-        
-        """
-        ...
-    def atan(self) -> 'DerivativeStructure':
-        """
-            Arc tangent operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atan` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                atan(this)
-        
-        
-        """
-        ...
-    @typing.overload
-    def atan2(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure':
-        """
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders are inconsistent
-        
-        public static :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` atan2 (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` y, :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` x) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
-        
-            Two arguments arc tangent operation.
-        
-            Parameters:
-                y (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): first argument of the arc tangent
-                x (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): second argument of the arc tangent
-        
-            Returns:
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
+            Raises:
+                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
         
         
         """
@@ -3652,32 +3491,6 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
                 atanh(this)
         
         
-        """
-        ...
-    def cbrt(self) -> 'DerivativeStructure':
-        """
-            Cubic root.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cbrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                cubic root of the instance
-        
-        
-        """
-        ...
-    def ceil(self) -> 'DerivativeStructure':
-        """
-            Get the smallest whole number larger than instance.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.ceil` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                ceil(this)
-        
-        
         """
         ...
     def compose(self, *double: float) -> 'DerivativeStructure': ...
@@ -3731,6 +3544,10 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.cosh` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
             Returns:
                 cosh(this)
         
@@ -3772,10 +3589,13 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Returns:
                 this÷a
         
-        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` divide (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` divide(:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Compute this ÷ a.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -3801,11 +3621,11 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             and the same derivatives.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two derivative structures are equal
@@ -3837,19 +3657,6 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
                 exponential minus one of the instance
         
         
-        """
-        ...
-    def floor(self) -> 'DerivativeStructure':
-        """
-            Get the largest whole number smaller than instance.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.floor` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                floor(this)
-        
-        
         """
         ...
     def getAllDerivatives(self) -> typing.MutableSequence[float]:
@@ -3861,21 +3668,6 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
                 :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
         
         
-        """
-        ...
-    def getExponent(self) -> int:
-        """
-            Return the exponent of the instance value, removing the bias.
-        
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.getExponent` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                exponent for instance in IEEE754 representation, without bias
-        
-        
         """
         ...
     def getFactory(self) -> DSFactory:
@@ -3891,12 +3683,11 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
     def getField(self) -> org.hipparchus.Field['DerivativeStructure']: ...
     def getFreeParameters(self) -> int:
         """
-            Description copied from interface: :meth:`~org.hipparchus.analysis.differentiation.Derivative.getFreeParameters`
             Get the number of free parameters.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getFreeParameters` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
                 number of free parameters
@@ -3906,15 +3697,14 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         ...
     def getOrder(self) -> int:
         """
-            Description copied from interface: :meth:`~org.hipparchus.analysis.differentiation.Derivative.getOrder`
-            Get the derivation order.
+            Get the maximum derivation order.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getOrder` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                derivation order
+                maximum derivation order
         
         
         """
@@ -3933,19 +3723,6 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
                 Archimedes constant π
         
         
-        """
-        ...
-    def getReal(self) -> float:
-        """
-            Get the real value of the number.
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.getReal` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Returns:
-                real value
-        
-        
         """
         ...
     def getValue(self) -> float:
@@ -3960,7 +3737,9 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
                 value part of the derivative structure
         
             Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.DerivativeStructure.getPartialDerivative`
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.DerivativeStructure.getPartialDerivative`
+        
         
         
         """
@@ -3970,8 +3749,8 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Get a hashCode for the derivative structure.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -4041,8 +3820,12 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Returns:
-                base 10 logarithm of the instance
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.log10` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
+            Returns:
+                base 10 logarithm of the instance
         
         
         """
@@ -4061,20 +3844,8 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         """
         ...
     @typing.overload
-    def multiply(self, double: float) -> 'DerivativeStructure':
+    def multiply(self, int: int) -> org.hipparchus.FieldElement:
         """
-            Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
-            \sum_{i=1}^n \mathrm{this} \]
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Parameters:
-                n (int): Number of times :code:`this` must be added to itself.
-        
-            Returns:
-                A new element representing n × this.
-        
             '×' operator.
         
             Specified by:
@@ -4086,7 +3857,7 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Returns:
                 this×a
         
-        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` multiply (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` multiply(:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Compute this × a.
         
@@ -4106,7 +3877,7 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         """
         ...
     @typing.overload
-    def multiply(self, int: int) -> 'DerivativeStructure': ...
+    def multiply(self, double: float) -> 'DerivativeStructure': ...
     @typing.overload
     def multiply(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure': ...
     def negate(self) -> 'DerivativeStructure':
@@ -4172,13 +3943,17 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Returns:
                 this :sup:`n`
         
-        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` pow (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` e) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` pow(:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` e) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Power operation.
         
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.pow` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
             Parameters:
                 e (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): exponent
         
@@ -4238,9 +4013,6 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         """
             Returns the multiplicative inverse of :code:`this` element.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -4251,53 +4023,9 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         """
         ...
     @typing.overload
-    def remainder(self, double: float) -> 'DerivativeStructure':
-        """
-            IEEE remainder operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this - n × a where n is the closest integer to this/a
-        
-        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` remainder (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
-        
-            IEEE remainder operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): right hand side parameter of the operator
-        
-            Returns:
-                this - n × a where n is the closest integer to this/a
-        
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
-        
-        
-        """
-        ...
+    def remainder(self, double: float) -> org.hipparchus.CalculusFieldElement: ...
     @typing.overload
     def remainder(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure': ...
-    def rint(self) -> 'DerivativeStructure':
-        """
-            Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.rint` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                a double number r such that r is an integer r - 0.5 ≤ this ≤ r + 0.5
-        
-        
-        """
-        ...
     def rootN(self, int: int) -> 'DerivativeStructure':
         """
             N :sup:`th` root.
@@ -4328,20 +4056,6 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
                 this × 2 :sup:`n`
         
         
-        """
-        ...
-    def sign(self) -> 'DerivativeStructure':
-        """
-            Compute the sign of the instance. The sign is -1 for negative numbers, +1 for positive numbers and 0 otherwise, for
-            Complex number, it is extended on the unit circle (equivalent to z/|z|, with special handling for 0 and NaN)
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sign` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                -1.0, -0.0, +0.0, +1.0 or NaN depending on sign of a
-        
-        
         """
         ...
     def sin(self) -> 'DerivativeStructure':
@@ -4365,6 +4079,10 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.sinh` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
             Returns:
                 sinh(this)
         
@@ -4385,40 +4103,22 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         
         """
         ...
-    @typing.overload
-    def subtract(self, double: float) -> 'DerivativeStructure':
+    def square(self) -> 'DerivativeStructure':
         """
-            '-' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this-a
-        
-        public :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` subtract (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` a) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
-        
-            Compute this - a.
+            Compute this × this.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
-        
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`): element to subtract
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a new element representing this - a
-        
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
+                a new element representing this × this
         
         
         """
         ...
     @typing.overload
+    def subtract(self, double: float) -> org.hipparchus.CalculusFieldElement: ...
+    @typing.overload
     def subtract(self, derivativeStructure: 'DerivativeStructure') -> 'DerivativeStructure': ...
     def tan(self) -> 'DerivativeStructure':
         """
@@ -4473,603 +4173,578 @@ class DerivativeStructure(Derivative['DerivativeStructure'], java.io.Serializabl
         
         """
         ...
-    def ulp(self) -> 'DerivativeStructure':
+    def withValue(self, double: float) -> 'DerivativeStructure':
         """
-            Compute least significant bit (Unit in Last Position) for a number.
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
         
-            The :code:`ulp` function is a step function, hence all its derivatives are 0.
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.ulp` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.withValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
-            Returns:
-                ulp(this)
+            Parameters:
+                value (double): zeroth-order derivative of new represented function
         
-            Since:
-                2.0
+            Returns:
+                new object with changed value
         
         
         """
         ...
 
-_FieldDerivativeStructure__T = typing.TypeVar('_FieldDerivativeStructure__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldDerivativeStructure(FieldDerivative[_FieldDerivativeStructure__T, 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]], typing.Generic[_FieldDerivativeStructure__T]):
+_FieldDerivative1__S = typing.TypeVar('_FieldDerivative1__S', bound=org.hipparchus.CalculusFieldElement)  # <S>
+_FieldDerivative1__T = typing.TypeVar('_FieldDerivative1__T', bound=FieldDerivative)  # <T>
+class FieldDerivative1(FieldDerivative[_FieldDerivative1__S, _FieldDerivative1__T], typing.Generic[_FieldDerivative1__S, _FieldDerivative1__T]):
     """
-    public class FieldDerivativeStructure<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<T, :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T>>
+    public interfaceFieldDerivative1<S extends :class:`~org.hipparchus.CalculusFieldElement`<S>,T extends :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<S,T>>extends :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<S,T>
     
-        Class representing both the value and the differentials of a function.
-    
-        This class is similar to :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` except function
-        parameters and value can be any :class:`~org.hipparchus.CalculusFieldElement`.
+        Interface representing a Field object holding partial derivatives up to first order.
     
-        Instances of this class are guaranteed to be immutable.
+        Since:
+            3.1
     
         Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FDSFactory`,
-            :class:`~org.hipparchus.analysis.differentiation.DSCompiler`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+              - :class:`~org.hipparchus.analysis.differentiation.Derivative1`
     """
-    def abs(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def acos(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def acosh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def add(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def add(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def add(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def asin(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def asinh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def atan(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    _atan2_1__T = typing.TypeVar('_atan2_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def atan2(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]:
+    def acos(self) -> _FieldDerivative1__T:
         """
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders are inconsistent
+            Arc cosine operation.
         
-        public static <T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> atan2 (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> y, :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> x) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Two arguments arc tangent operation.
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.acos` in
+                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
         
-            Parameters:
-                y (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> y): first argument of the arc tangent
-                x (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> x): second argument of the arc tangent
+            Returns:
+                acos(this)
+        
+        
+        """
+        ...
+    def acosh(self) -> _FieldDerivative1__T:
+        """
+            Inverse hyperbolic cosine operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.acosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
+                acosh(this)
         
         
         """
         ...
-    @typing.overload
-    @staticmethod
-    def atan2(fieldDerivativeStructure: 'FieldDerivativeStructure'[_atan2_1__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_atan2_1__T]) -> 'FieldDerivativeStructure'[_atan2_1__T]: ...
-    def atanh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def cbrt(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def ceil(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def compose(self, *t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def compose(self, *double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def copySign(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def copySign(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def copySign(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def cos(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def cosh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def differentiate(self, int: int, int2: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def divide(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def divide(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def divide(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def exp(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def expm1(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def floor(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def getAllDerivatives(self) -> typing.MutableSequence[_FieldDerivativeStructure__T]:
+    def asin(self) -> _FieldDerivative1__T:
         """
-            Get all partial derivatives.
+            Arc sine operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.asin` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a fresh copy of partial derivatives, in an array sorted according to
-                :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
+                asin(this)
         
         
         """
         ...
-    def getExponent(self) -> int:
+    def asinh(self) -> _FieldDerivative1__T:
         """
-            Return the exponent of the instance value, removing the bias.
+            Inverse hyperbolic sine operation.
         
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.asinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                asin(this)
+        
+        
+        """
+        ...
+    def atan(self) -> _FieldDerivative1__T:
+        """
+            Arc tangent operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.getExponent` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.atan` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                exponent for instance in IEEE754 representation, without bias
+                atan(this)
         
         
         """
         ...
-    def getFactory(self) -> FDSFactory[_FieldDerivativeStructure__T]: ...
-    def getField(self) -> org.hipparchus.Field['FieldDerivativeStructure'[_FieldDerivativeStructure__T]]: ...
-    def getFreeParameters(self) -> int:
+    def atanh(self) -> _FieldDerivative1__T:
         """
-            Description copied from interface: :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getFreeParameters`
-            Get the number of free parameters.
+            Inverse hyperbolic tangent operation.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getFreeParameters` in
-                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+                :meth:`~org.hipparchus.CalculusFieldElement.atanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                number of free parameters
+                atanh(this)
         
         
         """
         ...
-    def getOrder(self) -> int:
+    def cbrt(self) -> _FieldDerivative1__T:
         """
-            Description copied from interface: :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getOrder`
-            Get the derivation order.
+            Cubic root.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getOrder` in
-                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+                :meth:`~org.hipparchus.CalculusFieldElement.cbrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                derivation order
+                cubic root of the instance
         
         
         """
         ...
-    def getPartialDerivative(self, *int: int) -> _FieldDerivativeStructure__T: ...
-    def getPi(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def getReal(self) -> float:
+    def compose(self, s2: _FieldDerivative1__S, s3: _FieldDerivative1__S) -> _FieldDerivative1__T:
         """
-            Get the real value of the number.
+            Compute composition of the instance by a univariate function differentiable at order 1.
+        
+            Parameters:
+                f0 (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative1`): value of function
+                f1 (:class:`~org.hipparchus.analysis.differentiation.FieldDerivative1`): first-order derivative
+        
+            Returns:
+                f(this)
+        
+        
+        """
+        ...
+    def cos(self) -> _FieldDerivative1__T:
+        """
+            Cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.getReal` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.cos` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                real value
+                cos(this)
         
         
         """
         ...
-    def getValue(self) -> _FieldDerivativeStructure__T:
+    def cosh(self) -> _FieldDerivative1__T:
         """
-            Get the value part of the derivative structure.
+            Hyperbolic cosine operation.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getValue` in
+                :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.cosh` in
                 interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
         
             Returns:
-                value part of the derivative structure
-        
-            Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getPartialDerivative`
+                cosh(this)
         
         
         """
         ...
-    _hypot_1__T = typing.TypeVar('_hypot_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def hypot(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    @staticmethod
-    def hypot(fieldDerivativeStructure: 'FieldDerivativeStructure'[_hypot_1__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_hypot_1__T]) -> 'FieldDerivativeStructure'[_hypot_1__T]: ...
-    def integrate(self, int: int, int2: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double2: float, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double2: float, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double3: float, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double2: float, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double3: float, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double4: float, fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, t: _FieldDerivativeStructure__T, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t2: _FieldDerivativeStructure__T, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, t: _FieldDerivativeStructure__T, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t2: _FieldDerivativeStructure__T, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t3: _FieldDerivativeStructure__T, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, t: _FieldDerivativeStructure__T, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t2: _FieldDerivativeStructure__T, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t3: _FieldDerivativeStructure__T, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t4: _FieldDerivativeStructure__T, fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, tArray: typing.Union[typing.List[_FieldDerivativeStructure__T], jpype.JArray], fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure5: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure6: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure5: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure6: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure7: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure8: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray], fieldDerivativeStructureArray2: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def log(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def log10(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def log1p(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def multiply(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def multiply(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def multiply(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def multiply(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def negate(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def newInstance(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def pow(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def pow(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def pow(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    @staticmethod
-    def pow(double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_pow_3__T]) -> 'FieldDerivativeStructure'[_pow_3__T]:
+    def exp(self) -> _FieldDerivative1__T:
         """
-            Compute a :sup:`x` where a is a double and x a
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
-        
-            Parameters:
-                a (double): number to exponentiate
-                x (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> x): power to apply
-        
-            Returns:
-                a :sup:`x`
-        
-        public :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> pow (double p)
-        
-            Power operation.
+            Exponential.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                p (double): power to apply
+                :meth:`~org.hipparchus.CalculusFieldElement.exp` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                this :sup:`p`
+                exponential of the instance
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> pow (int n)
         
-            Integer power operation.
+        """
+        ...
+    def expm1(self) -> _FieldDerivative1__T:
+        """
+            Exponential minus 1.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                n (int): power to apply
+                :meth:`~org.hipparchus.CalculusFieldElement.expm1` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                this :sup:`n`
+                exponential minus one of the instance
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> pow (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> e) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
-            Power operation.
+        """
+        ...
+    def getOrder(self) -> int:
+        """
+            Get the maximum derivation order.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> e): exponent
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                this :sup:`e`
-        
-            Raises:
-                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
+                maximum derivation order
         
         
         """
         ...
-    def rebase(self, *fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def reciprocal(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def remainder(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def remainder(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def remainder(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def rint(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def rootN(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def scalb(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def sign(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def sin(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldDerivativeStructure'[_FieldDerivativeStructure__T]]: ...
-    def sinh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldDerivativeStructure'[_FieldDerivativeStructure__T]]: ...
-    def sqrt(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def subtract(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def subtract(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def subtract(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def tan(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def tanh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    @typing.overload
-    def taylor(self, *t: _FieldDerivativeStructure__T) -> _FieldDerivativeStructure__T: ...
-    @typing.overload
-    def taylor(self, *double: float) -> _FieldDerivativeStructure__T: ...
-    def toDegrees(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def toRadians(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-    def ulp(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
-
-_FieldGradient__T = typing.TypeVar('_FieldGradient__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldGradient(FieldDerivative[_FieldGradient__T, 'FieldGradient'[_FieldGradient__T]], typing.Generic[_FieldGradient__T]):
-    """
-    public class FieldGradient<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<T, :class:`~org.hipparchus.analysis.differentiation.FieldGradient`<T>>
-    
-        Class representing both the value and the differentials of a function.
-    
-        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` with
-        :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getOrder` limited to one. It should have less
-        overhead than :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` in its domain.
-    
-        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
-        mathematical expressions; they hold the derivative together with the value of a function.
-    
-        :class:`~org.hipparchus.analysis.differentiation.FieldGradient` instances can be used directly thanks to the arithmetic
-        operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
-    
-        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
-        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
-    
-        Instances of this class are guaranteed to be immutable.
-    
-        Since:
-            1.7
-    
-        Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.Gradient`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
-    """
-    @typing.overload
-    def __init__(self, t: _FieldGradient__T, *t2: _FieldGradient__T): ...
-    @typing.overload
-    def __init__(self, fieldDerivativeStructure: FieldDerivativeStructure[_FieldGradient__T]): ...
-    def abs(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def acos(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def acosh(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def add(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def add(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def add(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def asin(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def asinh(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def atan(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def atan2(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def atanh(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def cbrt(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def ceil(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def compose(self, t: _FieldGradient__T, t2: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
-    _constant__T = typing.TypeVar('_constant__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @staticmethod
-    def constant(int: int, t: _constant__T) -> 'FieldGradient'[_constant__T]:
+    def log(self) -> _FieldDerivative1__T:
         """
-            Build an instance corresponding to a constant value.
+            Natural logarithm.
         
-            Parameters:
-                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
-                value (T): constant value of the function
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.log` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a :code:`FieldGradient` with a constant value and all derivatives set to 0.0
+                logarithm of the instance
         
         
         """
         ...
-    @typing.overload
-    def copySign(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def copySign(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def copySign(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def cos(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def cosh(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def divide(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def divide(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
-    @typing.overload
-    def divide(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def equals(self, object: typing.Any) -> bool:
+    def log10(self) -> _FieldDerivative1__T:
         """
-            Test for the equality of two univariate derivatives.
-        
-            univariate derivatives are considered equal if they have the same derivatives.
+            Base 10 logarithm.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.log10` in
+                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
         
             Returns:
-                true if two univariate derivatives are equal
+                base 10 logarithm of the instance
         
         
         """
         ...
-    def exp(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def expm1(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def floor(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def getExponent(self) -> int:
+    def log1p(self) -> _FieldDerivative1__T:
         """
-            Return the exponent of the instance, removing the bias.
-        
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
+            Shifted natural logarithm.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.getExponent` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.log1p` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                exponent for the instance, without bias
+                logarithm of one plus the instance
         
         
         """
         ...
-    def getField(self) -> FieldGradientField[_FieldGradient__T]: ...
-    def getFreeParameters(self) -> int:
+    def reciprocal(self) -> _FieldDerivative1__T:
         """
-            Get the number of free parameters.
+            Returns the multiplicative inverse of :code:`this` element.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getFreeParameters` in
-                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+                :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
             Returns:
-                number of free parameters
+                the inverse of :code:`this`.
         
         
         """
         ...
-    def getGradient(self) -> typing.MutableSequence[_FieldGradient__T]:
+    def sin(self) -> _FieldDerivative1__T:
         """
-            Get the gradient part of the function.
+            Sine operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sin` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                gradient part of the value of the function
+                sin(this)
         
         
         """
         ...
-    def getOrder(self) -> int:
+    def sinCos(self) -> org.hipparchus.util.FieldSinCos[_FieldDerivative1__T]: ...
+    def sinh(self) -> _FieldDerivative1__T:
         """
-            Get the derivation order.
+            Hyperbolic sine operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getOrder` in
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.sinh` in
                 interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
         
             Returns:
-                derivation order
+                sinh(this)
         
         
         """
         ...
-    @typing.overload
-    def getPartialDerivative(self, int: int) -> _FieldGradient__T: ...
-    @typing.overload
-    def getPartialDerivative(self, *int: int) -> _FieldGradient__T: ...
-    def getPi(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def getReal(self) -> float:
+    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh[_FieldDerivative1__T]: ...
+    def sqrt(self) -> _FieldDerivative1__T:
         """
-            Get the real value of the number.
+            Square root.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.getReal` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.sqrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                real value
+                square root of the instance
         
         
         """
         ...
-    def getValue(self) -> _FieldGradient__T:
+    def square(self) -> _FieldDerivative1__T:
         """
-            Get the value part of the function.
+            Compute this × this.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getValue` in
-                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                value part of the value of the function
+                a new element representing this × this
         
         
         """
         ...
-    def getValueField(self) -> org.hipparchus.Field[_FieldGradient__T]: ...
-    def hashCode(self) -> int:
+    def tan(self) -> _FieldDerivative1__T:
         """
-            Get a hashCode for the univariate derivative.
+            Tangent operation.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.tan` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                a hash code value for this object
+                tan(this)
         
         
         """
         ...
-    def hypot(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def tanh(self) -> _FieldDerivative1__T:
+        """
+            Hyperbolic tangent operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.tanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                tanh(this)
+        
+        
+        """
+        ...
+
+_FieldDerivativeStructure__T = typing.TypeVar('_FieldDerivativeStructure__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldDerivativeStructure(FieldDerivative[_FieldDerivativeStructure__T, 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]], typing.Generic[_FieldDerivativeStructure__T]):
+    """
+    public classFieldDerivativeStructure<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<T,:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T>>
+    
+        Class representing both the value and the differentials of a function.
+    
+        This class is similar to :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` except function
+        parameters and value can be any :class:`~org.hipparchus.CalculusFieldElement`.
+    
+        Instances of this class are guaranteed to be immutable.
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FDSFactory`
+              - :class:`~org.hipparchus.analysis.differentiation.DSCompiler`
+    """
+    def abs(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def acos(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def acosh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, double: float, fieldGradient: 'FieldGradient'[_FieldGradient__T], double2: float, fieldGradient2: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def add(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldDerivativeStructure__T: ...
     @typing.overload
-    def linearCombination(self, double: float, fieldGradient: 'FieldGradient'[_FieldGradient__T], double2: float, fieldGradient2: 'FieldGradient'[_FieldGradient__T], double3: float, fieldGradient3: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def add(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, double: float, fieldGradient: 'FieldGradient'[_FieldGradient__T], double2: float, fieldGradient2: 'FieldGradient'[_FieldGradient__T], double3: float, fieldGradient3: 'FieldGradient'[_FieldGradient__T], double4: float, fieldGradient4: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def add(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def asin(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def asinh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def atan(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    _atan2_1__T = typing.TypeVar('_atan2_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldGradientArray: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def atan2(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]:
+        """
+            Raises:
+                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders are inconsistent
+        
+        public static <T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> atan2(:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> y, :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> x) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+            Two arguments arc tangent operation.
+        
+            Parameters:
+                y (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> y): first argument of the arc tangent
+                x (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> x): second argument of the arc tangent
+        
+            Returns:
+            Raises:
+                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
+        
+        
+        """
+        ...
     @typing.overload
-    def linearCombination(self, t: _FieldGradient__T, fieldGradient: 'FieldGradient'[_FieldGradient__T], t2: _FieldGradient__T, fieldGradient2: 'FieldGradient'[_FieldGradient__T], t3: _FieldGradient__T, fieldGradient3: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @staticmethod
+    def atan2(fieldDerivativeStructure: 'FieldDerivativeStructure'[_atan2_1__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_atan2_1__T]) -> 'FieldDerivativeStructure'[_atan2_1__T]: ...
+    def atanh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, tArray: typing.Union[typing.List[_FieldGradient__T], jpype.JArray], fieldGradientArray: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def compose(self, *t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, fieldGradient: 'FieldGradient'[_FieldGradient__T], fieldGradient2: 'FieldGradient'[_FieldGradient__T], fieldGradient3: 'FieldGradient'[_FieldGradient__T], fieldGradient4: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def compose(self, *double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, fieldGradient: 'FieldGradient'[_FieldGradient__T], fieldGradient2: 'FieldGradient'[_FieldGradient__T], fieldGradient3: 'FieldGradient'[_FieldGradient__T], fieldGradient4: 'FieldGradient'[_FieldGradient__T], fieldGradient5: 'FieldGradient'[_FieldGradient__T], fieldGradient6: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def copySign(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, fieldGradient: 'FieldGradient'[_FieldGradient__T], fieldGradient2: 'FieldGradient'[_FieldGradient__T], fieldGradient3: 'FieldGradient'[_FieldGradient__T], fieldGradient4: 'FieldGradient'[_FieldGradient__T], fieldGradient5: 'FieldGradient'[_FieldGradient__T], fieldGradient6: 'FieldGradient'[_FieldGradient__T], fieldGradient7: 'FieldGradient'[_FieldGradient__T], fieldGradient8: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def copySign(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def linearCombination(self, fieldGradientArray: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray], fieldGradientArray2: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def log(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def log10(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def log1p(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def copySign(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def cos(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def cosh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def differentiate(self, int: int, int2: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def multiply(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def divide(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def multiply(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def divide(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def multiply(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def divide(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def exp(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def expm1(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def getAllDerivatives(self) -> typing.MutableSequence[_FieldDerivativeStructure__T]:
+        """
+            Get all partial derivatives.
+        
+            Returns:
+                a fresh copy of partial derivatives, in an array sorted according to
+                :meth:`~org.hipparchus.analysis.differentiation.DSCompiler.getPartialDerivativeIndex`
+        
+        
+        """
+        ...
+    def getFactory(self) -> FDSFactory[_FieldDerivativeStructure__T]: ...
+    def getField(self) -> org.hipparchus.Field['FieldDerivativeStructure'[_FieldDerivativeStructure__T]]: ...
+    def getFreeParameters(self) -> int:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters`
+            Get the number of free parameters.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+        
+            Returns:
+                number of free parameters
+        
+        
+        """
+        ...
+    def getOrder(self) -> int:
+        """
+            Description copied from interface: :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder`
+            Get the maximum derivation order.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+        
+            Returns:
+                maximum derivation order
+        
+        
+        """
+        ...
+    def getPartialDerivative(self, *int: int) -> _FieldDerivativeStructure__T: ...
+    def getPi(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def getValue(self) -> _FieldDerivativeStructure__T:
+        """
+            Get the value part of the derivative structure.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+        
+            Returns:
+                value part of the derivative structure
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getPartialDerivative`
+        
+        
+        
+        """
+        ...
+    _hypot_1__T = typing.TypeVar('_hypot_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def multiply(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def negate(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def hypot(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def newInstance(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @staticmethod
+    def hypot(fieldDerivativeStructure: 'FieldDerivativeStructure'[_hypot_1__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_hypot_1__T]) -> 'FieldDerivativeStructure'[_hypot_1__T]: ...
+    def integrate(self, int: int, int2: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def newInstance(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def linearCombination(self, double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double2: float, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double2: float, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double3: float, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double2: float, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double3: float, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], double4: float, fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, t: _FieldDerivativeStructure__T, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t2: _FieldDerivativeStructure__T, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, t: _FieldDerivativeStructure__T, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t2: _FieldDerivativeStructure__T, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t3: _FieldDerivativeStructure__T, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, t: _FieldDerivativeStructure__T, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t2: _FieldDerivativeStructure__T, fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t3: _FieldDerivativeStructure__T, fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], t4: _FieldDerivativeStructure__T, fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, tArray: typing.Union[typing.List[_FieldDerivativeStructure__T], jpype.JArray], fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure5: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure6: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure2: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure3: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure4: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure5: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure6: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure7: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T], fieldDerivativeStructure8: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldDerivativeStructureArray: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray], fieldDerivativeStructureArray2: typing.Union[typing.List['FieldDerivativeStructure'[_FieldDerivativeStructure__T]], jpype.JArray]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def log(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def log10(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def log1p(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def multiply(self, int: int) -> _FieldDerivativeStructure__T: ...
+    @typing.overload
+    def multiply(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def multiply(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def multiply(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def negate(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def newInstance(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    @typing.overload
+    def newInstance(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def pow(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def pow(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def pow(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def pow(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def pow(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def pow(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
     @staticmethod
-    def pow(double: float, fieldGradient: 'FieldGradient'[_pow_3__T]) -> 'FieldGradient'[_pow_3__T]:
+    def pow(double: float, fieldDerivativeStructure: 'FieldDerivativeStructure'[_pow_3__T]) -> 'FieldDerivativeStructure'[_pow_3__T]:
         """
-            Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+            Compute a :sup:`x` where a is a double and x a
+            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
         
             Parameters:
                 a (double): number to exponentiate
-                x (:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<T> x): power to apply
+                x (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<T> x): power to apply
         
             Returns:
                 a :sup:`x`
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> pow (double p)
+        public :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> pow(double p)
         
             Power operation.
         
@@ -5082,7 +4757,7 @@ class FieldGradient(FieldDerivative[_FieldGradient__T, 'FieldGradient'[_FieldGra
             Returns:
                 this :sup:`p`
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> pow (int n)
+        public :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> pow(int n)
         
             Integer power operation.
         
@@ -5095,116 +4770,116 @@ class FieldGradient(FieldDerivative[_FieldGradient__T, 'FieldGradient'[_FieldGra
             Returns:
                 this :sup:`n`
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> pow (:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> e)
+        public :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> pow(:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> e) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Power operation.
         
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.pow` in
+                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+        
             Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> e): exponent
+                e (:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`<:class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`> e): exponent
         
             Returns:
                 this :sup:`e`
         
+            Raises:
+                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if number of free parameters or orders do not match
+        
         
         """
         ...
-    def reciprocal(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def rebase(self, *fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def reciprocal(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def remainder(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def remainder(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def remainder(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def remainder(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def remainder(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def rint(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def rootN(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def scalb(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def sign(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def sin(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldGradient'[_FieldGradient__T]]: ...
-    def sinh(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldGradient'[_FieldGradient__T]]: ...
-    def sqrt(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def remainder(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def rootN(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def scalb(self, int: int) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def sin(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldDerivativeStructure'[_FieldDerivativeStructure__T]]: ...
+    def sinh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldDerivativeStructure'[_FieldDerivativeStructure__T]]: ...
+    def sqrt(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def square(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def subtract(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def subtract(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldDerivativeStructure__T: ...
     @typing.overload
-    def subtract(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def subtract(self, double: float) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def subtract(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def tan(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def tanh(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def subtract(self, fieldDerivativeStructure: 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def tan(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def tanh(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
     @typing.overload
-    def taylor(self, *double: float) -> _FieldGradient__T:
+    def taylor(self, *t: _FieldDerivativeStructure__T) -> _FieldDerivativeStructure__T: ...
+    @typing.overload
+    def taylor(self, *double: float) -> _FieldDerivativeStructure__T: ...
+    def toDegrees(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def toRadians(self) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+    def withValue(self, t: _FieldDerivativeStructure__T) -> 'FieldDerivativeStructure'[_FieldDerivativeStructure__T]: ...
+
+_FieldUnivariateDerivative__S = typing.TypeVar('_FieldUnivariateDerivative__S', bound=org.hipparchus.CalculusFieldElement)  # <S>
+_FieldUnivariateDerivative__T = typing.TypeVar('_FieldUnivariateDerivative__T', bound='FieldUnivariateDerivative')  # <T>
+class FieldUnivariateDerivative(FieldDerivative[_FieldUnivariateDerivative__S, _FieldUnivariateDerivative__T], typing.Generic[_FieldUnivariateDerivative__S, _FieldUnivariateDerivative__T]):
+    """
+    public abstract classFieldUnivariateDerivative<S extends :class:`~org.hipparchus.CalculusFieldElement`<S>,T extends FieldUnivariateDerivative<S,T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<S,T>
+    
+        Abstract class representing both the value and the differentials of a function.
+    
+        Since:
+            1.7
+    """
+    def __init__(self): ...
+    def getDerivative(self, int: int) -> _FieldUnivariateDerivative__S: ...
+    def getFreeParameters(self) -> int:
         """
-            Evaluate Taylor expansion of a gradient.
+            Get the number of free parameters.
         
-            Parameters:
-                delta (double...): parameters offsets (Δx, Δy, ...)
-        
-            Returns:
-                value of the Taylor expansion at x + Δx, y + Δy, ...
-        
-            Evaluate Taylor expansion of a gradient.
-        
-            Parameters:
-                delta (:class:`~org.hipparchus.analysis.differentiation.FieldGradient`...): parameters offsets (Δx, Δy, ...)
-        
-            Returns:
-                value of the Taylor expansion at x + Δx, y + Δy, ...
-        
-        
-        """
-        ...
-    @typing.overload
-    def taylor(self, *t: _FieldGradient__T) -> _FieldGradient__T: ...
-    def toDegrees(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldGradient__T]: ...
-    def toRadians(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    def ulp(self) -> 'FieldGradient'[_FieldGradient__T]: ...
-    _variable__T = typing.TypeVar('_variable__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @staticmethod
-    def variable(int: int, int2: int, t: _variable__T) -> 'FieldGradient'[_variable__T]:
-        """
-            Build a :code:`Gradient` representing a variable.
-        
-            Instances built using this method are considered to be the free variables with respect to which differentials are
-            computed. As such, their differential with respect to themselves is +1.
-        
-            Parameters:
-                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
-                index (int): index of the variable (from 0 to :meth:`~org.hipparchus.analysis.differentiation.FieldGradient.getFreeParameters` - 1)
-                value (T): value of the variable
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                a :code:`FieldGradient` with a constant value and all derivatives set to 0.0 except the one at :code:`index` which will
-                be set to 1.0
+                number of free parameters
         
         
         """
         ...
+    def getPartialDerivative(self, *int: int) -> _FieldUnivariateDerivative__S: ...
+    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldUnivariateDerivative__S]: ...
 
-_FieldUnivariateDerivative__S = typing.TypeVar('_FieldUnivariateDerivative__S', bound=org.hipparchus.CalculusFieldElement)  # <S>
-_FieldUnivariateDerivative__T = typing.TypeVar('_FieldUnivariateDerivative__T', bound='FieldUnivariateDerivative')  # <T>
-class FieldUnivariateDerivative(FieldDerivative[_FieldUnivariateDerivative__S, _FieldUnivariateDerivative__T], typing.Generic[_FieldUnivariateDerivative__S, _FieldUnivariateDerivative__T]):
+_UnivariateDerivative__T = typing.TypeVar('_UnivariateDerivative__T', bound='UnivariateDerivative')  # <T>
+class UnivariateDerivative(Derivative[_UnivariateDerivative__T], java.io.Serializable, java.lang.Comparable[_UnivariateDerivative__T], typing.Generic[_UnivariateDerivative__T]):
     """
-    public abstract class FieldUnivariateDerivative<S extends :class:`~org.hipparchus.CalculusFieldElement`<S>, T extends FieldUnivariateDerivative<S, T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`<S, T>
+    public abstract classUnivariateDerivative<T extends UnivariateDerivative<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<T>
     
         Abstract class representing both the value and the differentials of a function.
     
         Since:
             1.7
+    
+        Also see:
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
-    def getDerivative(self, int: int) -> _FieldUnivariateDerivative__S: ...
+    def getDerivative(self, int: int) -> float: ...
     def getFreeParameters(self) -> int:
         """
             Get the number of free parameters.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getFreeParameters` in
-                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
                 number of free parameters
@@ -5212,457 +4887,665 @@ class FieldUnivariateDerivative(FieldDerivative[_FieldUnivariateDerivative__S, _
         
         """
         ...
-    def getPartialDerivative(self, *int: int) -> _FieldUnivariateDerivative__S: ...
-    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldUnivariateDerivative__S]: ...
+    def getPartialDerivative(self, *int: int) -> float: ...
+    def toDerivativeStructure(self) -> DerivativeStructure:
+        """
+            Convert the instance to a :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`.
+        
+            Returns:
+                derivative structure with same value and derivative as the instance
+        
+        
+        """
+        ...
 
-class FiniteDifferencesDifferentiator(UnivariateFunctionDifferentiator, UnivariateVectorFunctionDifferentiator, UnivariateMatrixFunctionDifferentiator, java.io.Serializable):
+_FieldGradient__T = typing.TypeVar('_FieldGradient__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldGradient(FieldDerivative1[_FieldGradient__T, 'FieldGradient'[_FieldGradient__T]], typing.Generic[_FieldGradient__T]):
     """
-    public class FiniteDifferencesDifferentiator extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator`, :class:`~org.hipparchus.analysis.differentiation.UnivariateVectorFunctionDifferentiator`, :class:`~org.hipparchus.analysis.differentiation.UnivariateMatrixFunctionDifferentiator`, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFieldGradient<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative1`<T,:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<T>>
     
-        Univariate functions differentiator using finite differences.
+        Class representing both the value and the differentials of a function.
     
-        This class creates some wrapper objects around regular :class:`~org.hipparchus.analysis.UnivariateFunction` (or
-        :class:`~org.hipparchus.analysis.UnivariateVectorFunction` or
-        :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`). These wrapper objects compute derivatives in addition to
-        function values.
+        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` with
+        :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getOrder` limited to one. It should have less
+        overhead than :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` in its domain.
     
-        The wrapper objects work by calling the underlying function on a sampling grid around the current point and performing
-        polynomial interpolation. A finite differences scheme with n points is theoretically able to compute derivatives up to
-        order n-1, but it is generally better to have a slight margin. The step size must also be small enough in order for the
-        polynomial approximation to be good in the current point neighborhood, but it should not be too small because numerical
-        instability appears quickly (there are several differences of close points). Choosing the number of points and the step
-        size is highly problem dependent.
+        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
+        mathematical expressions; they hold the derivative together with the value of a function.
     
-        As an example of good and bad settings, lets consider the quintic polynomial function :code:`f(x) =
-        (x-1)*(x-0.5)*x*(x+0.5)*(x+1)`. Since it is a polynomial, finite differences with at least 6 points should theoretically
-        recover the exact same polynomial and hence compute accurate derivatives for any order. However, due to numerical
-        errors, we get the following results for a 7 points finite differences for abscissae in the [-10, 10] range:
+        :class:`~org.hipparchus.analysis.differentiation.FieldGradient` instances can be used directly thanks to the arithmetic
+        operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
     
-          - step size = 0.25, second order derivative error about 9.97e-10
-          - step size = 0.25, fourth order derivative error about 5.43e-8
-          - step size = 1.0e-6, second order derivative error about 148
-          - step size = 1.0e-6, fourth order derivative error about 6.35e+14
+        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
+        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
     
+        Instances of this class are guaranteed to be immutable.
     
-        This example shows that the small step size is really bad, even simply for second order derivative!
+        Since:
+            1.7
     
         Also see:
-            :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.Gradient`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
     """
     @typing.overload
-    def __init__(self, int: int, double: float): ...
+    def __init__(self, t: _FieldGradient__T, *t2: _FieldGradient__T): ...
     @typing.overload
-    def __init__(self, int: int, double: float, double2: float, double3: float): ...
+    def __init__(self, fieldDerivativeStructure: FieldDerivativeStructure[_FieldGradient__T]): ...
+    def abs(self) -> 'FieldGradient'[_FieldGradient__T]: ...
     @typing.overload
-    def differentiate(self, univariateFunction: typing.Union[org.hipparchus.analysis.UnivariateFunction, typing.Callable]) -> UnivariateDifferentiableFunction:
+    def add(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldGradient__T: ...
+    @typing.overload
+    def add(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def add(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def atan2(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def compose(self, t: _FieldGradient__T, t2: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    _constant__T = typing.TypeVar('_constant__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def constant(int: int, t: _constant__T) -> 'FieldGradient'[_constant__T]:
         """
-            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction` from a
-            regular :class:`~org.hipparchus.analysis.UnivariateFunction`.
-        
-            The returned object cannot compute derivatives to arbitrary orders. The value function will throw a
-            :class:`~org.hipparchus.exception.MathIllegalArgumentException` if the requested derivation order is larger or equal to
-            the number of points.
-        
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator.differentiate` in
-                interface :class:`~org.hipparchus.analysis.differentiation.UnivariateFunctionDifferentiator`
+            Build an instance corresponding to a constant value.
         
             Parameters:
-                function (:class:`~org.hipparchus.analysis.UnivariateFunction`): function to differentiate
+                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
+                value (T): constant value of the function
         
             Returns:
-                differential function
-        
-            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction`
-            from a regular :class:`~org.hipparchus.analysis.UnivariateVectorFunction`.
-        
-            The returned object cannot compute derivatives to arbitrary orders. The value function will throw a
-            :class:`~org.hipparchus.exception.MathIllegalArgumentException` if the requested derivation order is larger or equal to
-            the number of points.
-        
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateVectorFunctionDifferentiator.differentiate` in
-                interface :class:`~org.hipparchus.analysis.differentiation.UnivariateVectorFunctionDifferentiator`
-        
-            Parameters:
-                function (:class:`~org.hipparchus.analysis.UnivariateVectorFunction`): function to differentiate
+                a :code:`FieldGradient` with a constant value and all derivatives set to 0.0
         
-            Returns:
-                differential function
         
-            Create an implementation of a :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableMatrixFunction`
-            from a regular :class:`~org.hipparchus.analysis.UnivariateMatrixFunction`.
+        """
+        ...
+    @typing.overload
+    def copySign(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def copySign(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def copySign(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def divide(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def divide(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def divide(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def equals(self, object: typing.Any) -> bool:
+        """
+            Test for the equality of two univariate derivatives.
         
-            The returned object cannot compute derivatives to arbitrary orders. The value function will throw a
-            :class:`~org.hipparchus.exception.MathIllegalArgumentException` if the requested derivation order is larger or equal to
-            the number of points.
+            univariate derivatives are considered equal if they have the same derivatives.
         
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateMatrixFunctionDifferentiator.differentiate` in
-                interface :class:`~org.hipparchus.analysis.differentiation.UnivariateMatrixFunctionDifferentiator`
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                function (:class:`~org.hipparchus.analysis.UnivariateMatrixFunction`): function to differentiate
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
-                differential function
+                true if two univariate derivatives are equal
         
         
         """
         ...
-    @typing.overload
-    def differentiate(self, univariateMatrixFunction: typing.Union[org.hipparchus.analysis.UnivariateMatrixFunction, typing.Callable]) -> UnivariateDifferentiableMatrixFunction: ...
-    @typing.overload
-    def differentiate(self, univariateVectorFunction: typing.Union[org.hipparchus.analysis.UnivariateVectorFunction, typing.Callable]) -> UnivariateDifferentiableVectorFunction: ...
-    def getNbPoints(self) -> int:
+    def getField(self) -> FieldGradientField[_FieldGradient__T]: ...
+    def getFreeParameters(self) -> int:
         """
-            Get the number of points to use.
+            Get the number of free parameters.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                number of points to use
+                number of free parameters
         
         
         """
         ...
-    def getStepSize(self) -> float:
+    def getGradient(self) -> typing.MutableSequence[_FieldGradient__T]:
         """
-            Get the step size.
+            Get the gradient part of the function.
         
             Returns:
-                step size
+                gradient part of the value of the function
         
         
         """
         ...
-
-class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Gradient'], java.io.Serializable):
-    """
-    public class Gradient extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.Derivative`<:class:`~org.hipparchus.analysis.differentiation.Gradient`>, :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.analysis.differentiation.Gradient`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
-    
-        Class representing both the value and the differentials of a function.
-    
-        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` with
-        :meth:`~org.hipparchus.analysis.differentiation.DerivativeStructure.getOrder` limited to one. It should have less
-        overhead than :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` in its domain.
-    
-        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
-        mathematical expressions; they hold the derivative together with the value of a function.
-    
-        :class:`~org.hipparchus.analysis.differentiation.Gradient` instances can be used directly thanks to the arithmetic
-        operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
-    
-        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
-        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
-    
-        Instances of this class are guaranteed to be immutable.
-    
-        Since:
-            1.7
-    
-        Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldGradient`, :meth:`~serialized`
-    """
     @typing.overload
-    def __init__(self, double: float, *double2: float): ...
+    def getPartialDerivative(self, int: int) -> _FieldGradient__T: ...
     @typing.overload
-    def __init__(self, derivativeStructure: DerivativeStructure): ...
-    def abs(self) -> 'Gradient':
+    def getPartialDerivative(self, *int: int) -> _FieldGradient__T: ...
+    def getPi(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def getValue(self) -> _FieldGradient__T:
         """
-            absolute value.
-        
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
+            Get the value part of the function.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
         
             Returns:
-                abs(this)
+                value part of the value of the function
         
         
         """
         ...
-    def acos(self) -> 'Gradient':
+    def getValueField(self) -> org.hipparchus.Field[_FieldGradient__T]: ...
+    def hashCode(self) -> int:
         """
-            Arc cosine operation.
+            Get a hashCode for the univariate derivative.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.acos` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
-                acos(this)
-        
-        
-        """
-        ...
-    def acosh(self) -> 'Gradient':
-        """
-            Inverse hyperbolic cosine operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.acosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                acosh(this)
+                a hash code value for this object
         
         
         """
         ...
+    def hypot(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldGradient: 'FieldGradient'[_FieldGradient__T], double2: float, fieldGradient2: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldGradient: 'FieldGradient'[_FieldGradient__T], double2: float, fieldGradient2: 'FieldGradient'[_FieldGradient__T], double3: float, fieldGradient3: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldGradient: 'FieldGradient'[_FieldGradient__T], double2: float, fieldGradient2: 'FieldGradient'[_FieldGradient__T], double3: float, fieldGradient3: 'FieldGradient'[_FieldGradient__T], double4: float, fieldGradient4: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldGradientArray: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, t: _FieldGradient__T, fieldGradient: 'FieldGradient'[_FieldGradient__T], t2: _FieldGradient__T, fieldGradient2: 'FieldGradient'[_FieldGradient__T], t3: _FieldGradient__T, fieldGradient3: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, tArray: typing.Union[typing.List[_FieldGradient__T], jpype.JArray], fieldGradientArray: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldGradient: 'FieldGradient'[_FieldGradient__T], fieldGradient2: 'FieldGradient'[_FieldGradient__T], fieldGradient3: 'FieldGradient'[_FieldGradient__T], fieldGradient4: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldGradient: 'FieldGradient'[_FieldGradient__T], fieldGradient2: 'FieldGradient'[_FieldGradient__T], fieldGradient3: 'FieldGradient'[_FieldGradient__T], fieldGradient4: 'FieldGradient'[_FieldGradient__T], fieldGradient5: 'FieldGradient'[_FieldGradient__T], fieldGradient6: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldGradient: 'FieldGradient'[_FieldGradient__T], fieldGradient2: 'FieldGradient'[_FieldGradient__T], fieldGradient3: 'FieldGradient'[_FieldGradient__T], fieldGradient4: 'FieldGradient'[_FieldGradient__T], fieldGradient5: 'FieldGradient'[_FieldGradient__T], fieldGradient6: 'FieldGradient'[_FieldGradient__T], fieldGradient7: 'FieldGradient'[_FieldGradient__T], fieldGradient8: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldGradientArray: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray], fieldGradientArray2: typing.Union[typing.List['FieldGradient'[_FieldGradient__T]], jpype.JArray]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def multiply(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def multiply(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def multiply(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def multiply(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def negate(self) -> 'FieldGradient'[_FieldGradient__T]: ...
     @typing.overload
-    def add(self, double: float) -> 'Gradient':
+    def newInstance(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def newInstance(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pow(self, t: _FieldGradient__T) -> _FieldGradient__T: ...
+    @typing.overload
+    def pow(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def pow(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    @staticmethod
+    def pow(double: float, fieldGradient: 'FieldGradient'[_pow_3__T]) -> 'FieldGradient'[_pow_3__T]:
         """
-            '+' operator.
+            Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+        
+            Parameters:
+                a (double): number to exponentiate
+                x (:class:`~org.hipparchus.analysis.differentiation.FieldGradient`<T> x): power to apply
+        
+            Returns:
+                a :sup:`x`
+        
+        public :class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> pow(double p)
+        
+            Power operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.add` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (double): right hand side parameter of the operator
+                p (double): power to apply
         
             Returns:
-                this+a
+                this :sup:`p`
         
-            Compute this + a.
+        public :class:`~org.hipparchus.analysis.differentiation.FieldGradient`<:class:`~org.hipparchus.analysis.differentiation.FieldGradient`> pow(int n)
+        
+            Integer power operation.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.add` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): element to add
+                n (int): power to apply
         
             Returns:
-                a new element representing this + a
+                this :sup:`n`
         
         
         """
         ...
     @typing.overload
-    def add(self, gradient: 'Gradient') -> 'Gradient': ...
-    def asin(self) -> 'Gradient':
+    def remainder(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def remainder(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def remainder(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def rootN(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def scalb(self, int: int) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldGradient'[_FieldGradient__T]]: ...
+    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldGradient'[_FieldGradient__T]]: ...
+    @typing.overload
+    def subtract(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldGradient__T: ...
+    @typing.overload
+    def subtract(self, double: float) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def subtract(self, fieldGradient: 'FieldGradient'[_FieldGradient__T]) -> 'FieldGradient'[_FieldGradient__T]: ...
+    @typing.overload
+    def taylor(self, *double: float) -> _FieldGradient__T:
         """
-            Arc sine operation.
+            Evaluate Taylor expansion of a gradient.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.asin` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                delta (double...): parameters offsets (Δx, Δy, ...)
         
             Returns:
-                asin(this)
-        
+                value of the Taylor expansion at x + Δx, y + Δy, ...
         
-        """
-        ...
-    def asinh(self) -> 'Gradient':
-        """
-            Inverse hyperbolic sine operation.
+            Evaluate Taylor expansion of a gradient.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.asinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                delta (:class:`~org.hipparchus.analysis.differentiation.FieldGradient`...): parameters offsets (Δx, Δy, ...)
         
             Returns:
-                asin(this)
+                value of the Taylor expansion at x + Δx, y + Δy, ...
         
         
         """
         ...
-    def atan(self) -> 'Gradient':
+    @typing.overload
+    def taylor(self, *t: _FieldGradient__T) -> _FieldGradient__T: ...
+    def toDegrees(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldGradient__T]: ...
+    def toRadians(self) -> 'FieldGradient'[_FieldGradient__T]: ...
+    _variable__T = typing.TypeVar('_variable__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def variable(int: int, int2: int, t: _variable__T) -> 'FieldGradient'[_variable__T]:
         """
-            Arc tangent operation.
+            Build a :code:`Gradient` representing a variable.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atan` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Instances built using this method are considered to be the free variables with respect to which differentials are
+            computed. As such, their differential with respect to themselves is +1.
+        
+            Parameters:
+                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
+                index (int): index of the variable (from 0 to :meth:`~org.hipparchus.analysis.differentiation.FieldGradient.getFreeParameters` - 1)
+                value (T): value of the variable
         
             Returns:
-                atan(this)
+                a :code:`FieldGradient` with a constant value and all derivatives set to 0.0 except the one at :code:`index` which will
+                be set to 1.0
         
         
         """
         ...
-    def atan2(self, gradient: 'Gradient') -> 'Gradient':
+    def withValue(self, t: _FieldGradient__T) -> 'FieldGradient'[_FieldGradient__T]: ...
+
+_FieldUnivariateDerivative1__T = typing.TypeVar('_FieldUnivariateDerivative1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldUnivariateDerivative1(FieldUnivariateDerivative[_FieldUnivariateDerivative1__T, 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], FieldDerivative1[_FieldUnivariateDerivative1__T, 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], typing.Generic[_FieldUnivariateDerivative1__T]):
+    """
+    public classFieldUnivariateDerivative1<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`<T,:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T>>
+    implements :class:`~org.hipparchus.analysis.differentiation.FieldDerivative1`<T,:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T>>
+    
+        Class representing both the value and the differentials of a function.
+    
+        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` with
+        only one :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getFreeParameters` and
+        :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getOrder` also limited to one. It should have
+        less overhead than :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` in its domain.
+    
+        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
+        mathematical expressions; they hold the derivative together with the value of a function.
+    
+        :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1` instances can be used directly thanks to
+        the arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
+    
+        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
+        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
+    
+        Instances of this class are guaranteed to be immutable.
+    
+        Since:
+            1.7
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.Gradient`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+    """
+    @typing.overload
+    def __init__(self, t: _FieldUnivariateDerivative1__T, t2: _FieldUnivariateDerivative1__T): ...
+    @typing.overload
+    def __init__(self, fieldDerivativeStructure: FieldDerivativeStructure[_FieldUnivariateDerivative1__T]): ...
+    def abs(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def add(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldUnivariateDerivative1__T: ...
+    @typing.overload
+    def add(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def add(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def atan2(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def compose(self, t: _FieldUnivariateDerivative1__T, t2: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def copySign(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def copySign(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def copySign(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def divide(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def divide(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def divide(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def equals(self, object: typing.Any) -> bool:
         """
-            Two arguments arc tangent operation.
+            Test for the equality of two univariate derivatives.
         
-            Beware of the order or arguments! As this is based on a two-arguments functions, in order to be consistent with
-            arguments order, the instance is the *first* argument and the single provided argument is the *second* argument. In
-            order to be consistent with programming languages :code:`atan2`, this method computes :code:`atan2(this, x)`, i.e. the
-            instance represents the :code:`y` argument and the :code:`x` argument is the one passed as a single argument. This may
-            seem confusing especially for users of Wolfram alpha, as this site is *not* consistent with programming languages
-            :code:`atan2` two-arguments arc tangent and puts :code:`x` as its first argument.
+            univariate derivatives are considered equal if they have the same derivatives.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atan2` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                x (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second argument of the arc tangent
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
+                true if two univariate derivatives are equal
+        
         
         """
         ...
-    def atanh(self) -> 'Gradient':
+    def getDerivative(self, int: int) -> _FieldUnivariateDerivative1__T:
         """
-            Inverse hyperbolic tangent operation.
+            Get a derivative from the univariate derivative.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.atanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative.getDerivative` in
+                class :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`
+        
+            Parameters:
+                n (int): derivation order (must be between 0 and :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder`,
+                    both inclusive)
         
             Returns:
-                atanh(this)
+                n :sup:`th` derivative, or :code:`NaN` if n is either negative or strictly larger than
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder`
         
         
         """
         ...
-    def cbrt(self) -> 'Gradient':
+    def getField(self) -> FieldUnivariateDerivative1Field[_FieldUnivariateDerivative1__T]: ...
+    def getFirstDerivative(self) -> _FieldUnivariateDerivative1__T:
         """
-            Cubic root.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cbrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Get the first derivative.
         
             Returns:
-                cubic root of the instance
+                first derivative
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1.getValue`
+        
         
         
         """
         ...
-    def ceil(self) -> 'Gradient':
+    def getPi(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def getValue(self) -> _FieldUnivariateDerivative1__T:
         """
-            Get the smallest whole number larger than instance.
+            Get the value part of the univariate derivative.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.ceil` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.FieldDerivative.getValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.FieldDerivative`
         
             Returns:
-                ceil(this)
+                value part of the univariate derivative
         
         
         """
         ...
-    def compose(self, *double: float) -> 'Gradient':
+    def getValueField(self) -> org.hipparchus.Field[_FieldUnivariateDerivative1__T]: ...
+    def hashCode(self) -> int:
         """
-            Compute composition of the instance by a univariate function.
-        
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.compose` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+            Get a hashCode for the univariate derivative.
         
-            Parameters:
-                f (double...): array of value and derivatives of the function at the current point (i.e.
-                    [f(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`),
-                    f'(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`),
-                    f''(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`)...]).
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
-                f(this)
-        
-        
-        """
-        ...
-    @staticmethod
-    def constant(int: int, double: float) -> 'Gradient':
-        """
-            Build an instance corresponding to a constant value.
-        
-            Parameters:
-                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
-                value (double): constant value of the function
-        
-            Returns:
-                a :code:`Gradient` with a constant value and all derivatives set to 0.0
+                a hash code value for this object
         
         
         """
         ...
+    def hypot(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
     @typing.overload
-    def copySign(self, double: float) -> 'Gradient':
+    def linearCombination(self, double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double2: float, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double2: float, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double3: float, fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double2: float, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double3: float, fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double4: float, fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldUnivariateDerivative1Array: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, t: _FieldUnivariateDerivative1__T, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], t2: _FieldUnivariateDerivative1__T, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], t3: _FieldUnivariateDerivative1__T, fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, tArray: typing.Union[typing.List[_FieldUnivariateDerivative1__T], jpype.JArray], fieldUnivariateDerivative1Array: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative15: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative16: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative15: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative16: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative17: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative18: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative1Array: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray], fieldUnivariateDerivative1Array2: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def multiply(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def multiply(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def multiply(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def multiply(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def negate(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def newInstance(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def newInstance(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pow(self, t: _FieldUnivariateDerivative1__T) -> _FieldUnivariateDerivative1__T: ...
+    @typing.overload
+    def pow(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def pow(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    @staticmethod
+    def pow(double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_pow_3__T]) -> 'FieldUnivariateDerivative1'[_pow_3__T]:
         """
-            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Compute a :sup:`x` where a is a double and x a
+            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
         
             Parameters:
-                sign (:class:`~org.hipparchus.analysis.differentiation.Gradient`): the sign for the returned value
+                a (double): number to exponentiate
+                x (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T> x): power to apply
         
             Returns:
-                the instance with the same sign as the :code:`sign` argument
+                a :sup:`x`
         
-            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
+        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> pow(double p)
+        
+            Power operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                sign (double): the sign for the returned value
+                p (double): power to apply
         
             Returns:
-                the instance with the same sign as the :code:`sign` argument
+                this :sup:`p`
         
+        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> pow(int n)
         
-        """
-        ...
-    @typing.overload
-    def copySign(self, gradient: 'Gradient') -> 'Gradient': ...
-    def cos(self) -> 'Gradient':
-        """
-            Cosine operation.
+            Integer power operation.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cos` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                cos(this)
-        
-        
-        """
-        ...
-    def cosh(self) -> 'Gradient':
-        """
-            Hyperbolic cosine operation.
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cosh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                n (int): power to apply
         
             Returns:
-                cosh(this)
+                this :sup:`n`
         
         
         """
         ...
     @typing.overload
-    def divide(self, double: float) -> 'Gradient':
+    def remainder(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def remainder(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def remainder(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def rootN(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def scalb(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def subtract(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldUnivariateDerivative1__T: ...
+    @typing.overload
+    def subtract(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def subtract(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    @typing.overload
+    def taylor(self, double: float) -> _FieldUnivariateDerivative1__T:
         """
-            '÷' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Evaluate Taylor expansion of a univariate derivative.
         
             Parameters:
-                a (double): right hand side parameter of the operator
+                delta (double): parameter offset Δx
         
             Returns:
-                this÷a
-        
-            Compute this ÷ a.
+                value of the Taylor expansion at x + Δx
         
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
+            Evaluate Taylor expansion of a univariate derivative.
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): element to divide by
+                delta (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`): parameter offset Δx
         
             Returns:
-                a new element representing this ÷ a
+                value of the Taylor expansion at x + Δx
         
         
         """
         ...
     @typing.overload
-    def divide(self, gradient: 'Gradient') -> 'Gradient': ...
+    def taylor(self, t: _FieldUnivariateDerivative1__T) -> _FieldUnivariateDerivative1__T: ...
+    def toDegrees(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldUnivariateDerivative1__T]: ...
+    def toRadians(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def withValue(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+
+_FieldUnivariateDerivative2__T = typing.TypeVar('_FieldUnivariateDerivative2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldUnivariateDerivative2(FieldUnivariateDerivative[_FieldUnivariateDerivative2__T, 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], typing.Generic[_FieldUnivariateDerivative2__T]):
+    """
+    public classFieldUnivariateDerivative2<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`<T,:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<T>>
+    
+        Class representing both the value and the differentials of a function.
+    
+        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` with
+        only one :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getFreeParameters` and
+        :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getOrder` limited to two. It should have less
+        overhead than :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` in its domain.
+    
+        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
+        mathematical expressions; they hold the derivative together with the value of a function.
+    
+        :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2` instances can be used directly thanks to
+        the arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
+    
+        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
+        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
+    
+        Instances of this class are guaranteed to be immutable.
+    
+        Since:
+            1.7
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.Gradient`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+    """
+    @typing.overload
+    def __init__(self, t: _FieldUnivariateDerivative2__T, t2: _FieldUnivariateDerivative2__T, t3: _FieldUnivariateDerivative2__T): ...
+    @typing.overload
+    def __init__(self, fieldDerivativeStructure: FieldDerivativeStructure[_FieldUnivariateDerivative2__T]): ...
+    def abs(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def acos(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def acosh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def add(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldUnivariateDerivative2__T: ...
+    @typing.overload
+    def add(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def add(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def asin(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def asinh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def atan(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def atan2(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def atanh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def cbrt(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def compose(self, t: _FieldUnivariateDerivative2__T, t2: _FieldUnivariateDerivative2__T, t3: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def copySign(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def copySign(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def copySign(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def cos(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def cosh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def divide(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def divide(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def divide(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
     def equals(self, object: typing.Any) -> bool:
         """
             Test for the equality of two univariate derivatives.
@@ -5670,11 +5553,11 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
             univariate derivatives are considered equal if they have the same derivatives.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two univariate derivatives are equal
@@ -5682,237 +5565,598 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
         
         """
         ...
-    def exp(self) -> 'Gradient':
+    def exp(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def expm1(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def getDerivative(self, int: int) -> _FieldUnivariateDerivative2__T:
         """
-            Exponential.
+            Get a derivative from the univariate derivative.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.exp` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative.getDerivative` in
+                class :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`
+        
+            Parameters:
+                n (int): derivation order (must be between 0 and
+                    :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getOrder`, both inclusive)
         
             Returns:
-                exponential of the instance
+                n :sup:`th` derivative, or :code:`NaN` if n is either negative or strictly larger than
+                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getOrder`
         
         
         """
         ...
-    def expm1(self) -> 'Gradient':
+    def getField(self) -> FieldUnivariateDerivative2Field[_FieldUnivariateDerivative2__T]: ...
+    def getFirstDerivative(self) -> _FieldUnivariateDerivative2__T:
         """
-            Exponential minus 1.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.expm1` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Get the first derivative.
         
             Returns:
-                exponential minus one of the instance
+                first derivative
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getValue`
+        
         
         
         """
         ...
-    def floor(self) -> 'Gradient':
+    def getOrder(self) -> int:
         """
-            Get the largest whole number smaller than instance.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.floor` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Get the derivation order.
         
             Returns:
-                floor(this)
+                derivation order
         
         
         """
         ...
-    def getExponent(self) -> int:
+    def getPi(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def getSecondDerivative(self) -> _FieldUnivariateDerivative2__T:
         """
-            Return the exponent of the instance, removing the bias.
+            Get the second derivative.
         
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
+            Returns:
+                second derivative
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.getExponent` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Also see:
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getValue`
+                  - :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getFirstDerivative`
         
-            Returns:
-                exponent for the instance, without bias
         
         
         """
         ...
-    def getField(self) -> GradientField:
+    def getValue(self) -> _FieldUnivariateDerivative2__T:
         """
-            Get the :class:`~org.hipparchus.Field` to which the instance belongs.
-        
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.getField` in interface :class:`~org.hipparchus.FieldElement`
+            Get the value part of the univariate derivative.
         
             Returns:
-                :class:`~org.hipparchus.Field` to which the instance belongs
+                value part of the univariate derivative
         
         
         """
         ...
-    def getFreeParameters(self) -> int:
+    def getValueField(self) -> org.hipparchus.Field[_FieldUnivariateDerivative2__T]: ...
+    def hashCode(self) -> int:
         """
-            Get the number of free parameters.
+            Get a hashCode for the univariate derivative.
         
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getFreeParameters` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
-                number of free parameters
+                a hash code value for this object
         
         
         """
         ...
-    def getGradient(self) -> typing.MutableSequence[float]:
+    def hypot(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double2: float, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double2: float, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double3: float, fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double2: float, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double3: float, fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double4: float, fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldUnivariateDerivative2Array: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, t: _FieldUnivariateDerivative2__T, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], t2: _FieldUnivariateDerivative2__T, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], t3: _FieldUnivariateDerivative2__T, fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, tArray: typing.Union[typing.List[_FieldUnivariateDerivative2__T], jpype.JArray], fieldUnivariateDerivative2Array: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative25: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative26: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative25: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative26: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative27: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative28: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def linearCombination(self, fieldUnivariateDerivative2Array: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray], fieldUnivariateDerivative2Array2: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def log(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def log10(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def log1p(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def multiply(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def multiply(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def multiply(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def multiply(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def negate(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def newInstance(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def newInstance(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pow(self, t: _FieldUnivariateDerivative2__T) -> _FieldUnivariateDerivative2__T: ...
+    @typing.overload
+    def pow(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def pow(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    @staticmethod
+    def pow(double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_pow_3__T]) -> 'FieldUnivariateDerivative2'[_pow_3__T]:
         """
-            Get the gradient part of the function.
+            Compute a :sup:`x` where a is a double and x a
+            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+        
+            Parameters:
+                a (double): number to exponentiate
+                x (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<T> x): power to apply
         
             Returns:
-                gradient part of the value of the function
+                a :sup:`x`
         
-            Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.Gradient.getPartialDerivative`
+        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> pow(double p)
         
+            Power operation.
         
-        """
-        ...
-    def getOrder(self) -> int:
-        """
-            Get the derivation order.
+            Parameters:
+                p (double): power to apply
         
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getOrder` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+            Returns:
+                this :sup:`p`
+        
+        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> pow(int n)
+        
+            Integer power operation.
+        
+            Parameters:
+                n (int): power to apply
         
             Returns:
-                derivation order
+                this :sup:`n`
         
         
         """
         ...
+    def reciprocal(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
     @typing.overload
-    def getPartialDerivative(self, int: int) -> float: ...
+    def remainder(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
     @typing.overload
-    def getPartialDerivative(self, *int: int) -> float: ...
-    def getPi(self) -> 'Gradient':
+    def remainder(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def remainder(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def rootN(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def scalb(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def sin(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]]: ...
+    def sinh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]]: ...
+    def sqrt(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def square(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def subtract(self, s2: org.hipparchus.CalculusFieldElement) -> _FieldUnivariateDerivative2__T: ...
+    @typing.overload
+    def subtract(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def subtract(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def tan(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def tanh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    @typing.overload
+    def taylor(self, double: float) -> _FieldUnivariateDerivative2__T:
         """
-            Get the Archimedes constant π.
+            Evaluate Taylor expansion a univariate derivative.
         
-            Archimedes constant is the ratio of a circle's circumference to its diameter.
+            Parameters:
+                delta (double): parameter offset Δx
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.getPi` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Returns:
+                value of the Taylor expansion at x + Δx
+        
+            Evaluate Taylor expansion a univariate derivative.
+        
+            Parameters:
+                delta (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`): parameter offset Δx
         
             Returns:
-                Archimedes constant π
+                value of the Taylor expansion at x + Δx
         
         
         """
         ...
-    def getReal(self) -> float:
+    @typing.overload
+    def taylor(self, t: _FieldUnivariateDerivative2__T) -> _FieldUnivariateDerivative2__T: ...
+    def toDegrees(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldUnivariateDerivative2__T]: ...
+    def toRadians(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def withValue(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+
+class Gradient(Derivative1['Gradient'], java.io.Serializable):
+    """
+    public classGradient extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.Derivative1`<:class:`~org.hipparchus.analysis.differentiation.Gradient`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
+    
+        Class representing both the value and the differentials of a function.
+    
+        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` with
+        :meth:`~org.hipparchus.analysis.differentiation.DerivativeStructure.getOrder` limited to one. It should have less
+        overhead than :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` in its domain.
+    
+        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
+        mathematical expressions; they hold the derivative together with the value of a function.
+    
+        :class:`~org.hipparchus.analysis.differentiation.Gradient` instances can be used directly thanks to the arithmetic
+        operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
+    
+        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
+        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
+    
+        Instances of this class are guaranteed to be immutable.
+    
+        Since:
+            1.7
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+              - :meth:`~serialized`
+    """
+    @typing.overload
+    def __init__(self, double: float, *double2: float): ...
+    @typing.overload
+    def __init__(self, derivativeStructure: DerivativeStructure): ...
+    def abs(self) -> 'Gradient':
         """
-            Get the real value of the number.
+            absolute value.
         
             Specified by:
-                :meth:`~org.hipparchus.FieldElement.getReal` in interface :class:`~org.hipparchus.FieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                real value
+                abs(this)
         
         
         """
         ...
-    def getValue(self) -> float:
+    @typing.overload
+    def add(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            Get the value part of the function.
+            Compute this + a.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+                :meth:`~org.hipparchus.FieldElement.add` in interface :class:`~org.hipparchus.FieldElement`
+        
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): element to add
         
             Returns:
-                value part of the value of the function
+                a new element representing this + a
         
         
         """
         ...
-    def hashCode(self) -> int:
+    @typing.overload
+    def add(self, gradient: 'Gradient') -> 'Gradient': ...
+    def atan2(self, gradient: 'Gradient') -> 'Gradient':
         """
-            Get a hashCode for the univariate derivative.
+            Two arguments arc tangent operation.
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Beware of the order or arguments! As this is based on a two-arguments functions, in order to be consistent with
+            arguments order, the instance is the *first* argument and the single provided argument is the *second* argument. In
+            order to be consistent with programming languages :code:`atan2`, this method computes :code:`atan2(this, x)`, i.e. the
+            instance represents the :code:`y` argument and the :code:`x` argument is the one passed as a single argument. This may
+            seem confusing especially for users of Wolfram alpha, as this site is *not* consistent with programming languages
+            :code:`atan2` two-arguments arc tangent and puts :code:`x` as its first argument.
         
-            Returns:
-                a hash code value for this object
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.atan2` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second argument of the arc tangent
         
+            Returns:
         
         """
         ...
-    def hypot(self, gradient: 'Gradient') -> 'Gradient':
+    @typing.overload
+    def compose(self, double: float, double2: float) -> 'Gradient':
         """
-            Returns the hypotenuse of a triangle with sides :code:`this` and :code:`y` - sqrt(*this* :sup:`2`  +*y* :sup:`2` )
-            avoiding intermediate overflow or underflow.
-        
-              - If either argument is infinite, then the result is positive infinity.
-              - else, if either argument is NaN then the result is NaN.
-        
+            Compute composition of the instance by a univariate function differentiable at order 1.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.hypot` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative1.compose` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative1`
         
             Parameters:
-                y (:class:`~org.hipparchus.analysis.differentiation.Gradient`): a value
+                f0 (double): value of function
+                f1 (double): first-order derivative
         
             Returns:
-                sqrt(*this* :sup:`2`  +*y* :sup:`2` )
+                f(this)
         
         
         """
         ...
     @typing.overload
-    def linearCombination(self, double: float, gradient: 'Gradient', double2: float, gradient2: 'Gradient') -> 'Gradient':
+    def compose(self, *double: float) -> 'Gradient':
         """
-            Compute a linear combination.
+            Compute composition of the instance by a univariate function.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.compose` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Parameters:
-                a1 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the first term
-                a2 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the second term
+                f (double...): array of value and derivatives of the function at the current point (i.e.
+                    [f(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`),
+                    f'(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`),
+                    f''(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`)...]).
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
-        
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
-        
-            Compute a linear combination.
+                f(this)
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
-                interface :class:`~org.hipparchus.CalculusFieldElement`
+        """
+        ...
+    @staticmethod
+    def constant(int: int, double: float) -> 'Gradient':
+        """
+            Build an instance corresponding to a constant value.
         
             Parameters:
-                a1 (double): first factor of the first term
-                b1 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the first term
-                a2 (double): first factor of the second term
-                b2 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the second term
+                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
+                value (double): constant value of the function
         
             Returns:
-                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
+                a :code:`Gradient` with a constant value and all derivatives set to 0.0
         
-            Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
         
-            Compute a linear combination.
+        """
+        ...
+    @typing.overload
+    def copySign(self, double: float) -> 'Gradient':
+        """
+            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                sign (:class:`~org.hipparchus.analysis.differentiation.Gradient`): the sign for the returned value
+        
+            Returns:
+                the instance with the same sign as the :code:`sign` argument
+        
+            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                sign (double): the sign for the returned value
+        
+            Returns:
+                the instance with the same sign as the :code:`sign` argument
+        
+        
+        """
+        ...
+    @typing.overload
+    def copySign(self, gradient: 'Gradient') -> 'Gradient': ...
+    @typing.overload
+    def divide(self, double: float) -> 'Gradient':
+        """
+            '÷' operator.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a (double): right hand side parameter of the operator
+        
+            Returns:
+                this÷a
+        
+            Compute this ÷ a.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
+        
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): element to divide by
+        
+            Returns:
+                a new element representing this ÷ a
+        
+        
+        """
+        ...
+    @typing.overload
+    def divide(self, gradient: 'Gradient') -> 'Gradient': ...
+    def equals(self, object: typing.Any) -> bool:
+        """
+            Test for the equality of two univariate derivatives.
+        
+            univariate derivatives are considered equal if they have the same derivatives.
+        
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+            Parameters:
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
+        
+            Returns:
+                true if two univariate derivatives are equal
+        
+        
+        """
+        ...
+    def getField(self) -> GradientField:
+        """
+            Get the :class:`~org.hipparchus.Field` to which the instance belongs.
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.getField` in interface :class:`~org.hipparchus.FieldElement`
+        
+            Returns:
+                :class:`~org.hipparchus.Field` to which the instance belongs
+        
+        
+        """
+        ...
+    def getFreeParameters(self) -> int:
+        """
+            Get the number of free parameters.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
+        
+            Returns:
+                number of free parameters
+        
+        
+        """
+        ...
+    def getGradient(self) -> typing.MutableSequence[float]:
+        """
+            Get the gradient part of the function.
+        
+            Returns:
+                gradient part of the value of the function
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.Gradient.getPartialDerivative`
+        
+        
+        
+        """
+        ...
+    @typing.overload
+    def getPartialDerivative(self, int: int) -> float: ...
+    @typing.overload
+    def getPartialDerivative(self, *int: int) -> float: ...
+    def getValue(self) -> float:
+        """
+            Get the value part of the function.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
+            Returns:
+                value part of the value of the function
+        
+        
+        """
+        ...
+    def hashCode(self) -> int:
+        """
+            Get a hashCode for the univariate derivative.
+        
+            Overrides:
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+            Returns:
+                a hash code value for this object
+        
+        
+        """
+        ...
+    def hypot(self, gradient: 'Gradient') -> 'Gradient':
+        """
+            Returns the hypotenuse of a triangle with sides :code:`this` and :code:`y` - sqrt(*this* :sup:`2`  +*y* :sup:`2` )
+            avoiding intermediate overflow or underflow.
+        
+              - If either argument is infinite, then the result is positive infinity.
+              - else, if either argument is NaN then the result is NaN.
+        
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.hypot` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                y (:class:`~org.hipparchus.analysis.differentiation.Gradient`): a value
+        
+            Returns:
+                sqrt(*this* :sup:`2`  +*y* :sup:`2` )
+        
+        
+        """
+        ...
+    @typing.overload
+    def linearCombination(self, double: float, gradient: 'Gradient', double2: float, gradient2: 'Gradient') -> 'Gradient':
+        """
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a1 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the first term
+                a2 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the second term
+        
+            Returns:
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a1 (double): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the first term
+                a2 (double): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.Gradient`): second factor of the second term
+        
+            Returns:
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
         
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
@@ -5930,8 +6174,10 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -5951,8 +6197,10 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -5974,8 +6222,10 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -5997,8 +6247,10 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -6046,51 +6298,15 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
     def linearCombination(self, gradient: 'Gradient', gradient2: 'Gradient', gradient3: 'Gradient', gradient4: 'Gradient', gradient5: 'Gradient', gradient6: 'Gradient', gradient7: 'Gradient', gradient8: 'Gradient') -> 'Gradient': ...
     @typing.overload
     def linearCombination(self, gradientArray: typing.Union[typing.List['Gradient'], jpype.JArray], gradientArray2: typing.Union[typing.List['Gradient'], jpype.JArray]) -> 'Gradient': ...
-    def log(self) -> 'Gradient':
-        """
-            Natural logarithm.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.log` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                logarithm of the instance
-        
-        
-        """
-        ...
-    def log10(self) -> 'Gradient':
-        """
-            Base 10 logarithm.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.log10` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                base 10 logarithm of the instance
-        
-        
-        """
-        ...
-    def log1p(self) -> 'Gradient':
-        """
-            Shifted natural logarithm.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.log1p` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                logarithm of one plus the instance
-        
-        
-        """
-        ...
     @typing.overload
     def multiply(self, double: float) -> 'Gradient':
         """
             Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
             \sum_{i=1}^n \mathrm{this} \]
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -6159,7 +6375,7 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
         """
         ...
     @typing.overload
-    def pow(self, double: float) -> 'Gradient':
+    def pow(self, t: org.hipparchus.CalculusFieldElement) -> org.hipparchus.CalculusFieldElement:
         """
             Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.Gradient`
         
@@ -6192,534 +6408,481 @@ class Gradient(Derivative['Gradient'], org.hipparchus.CalculusFieldElement['Grad
             Returns:
                 this :sup:`n`
         
-            Power operation.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.Gradient`): exponent
-        
-            Returns:
-                this :sup:`e`
-        
         
         """
         ...
     @typing.overload
-    def pow(self, int: int) -> 'Gradient': ...
+    def pow(self, double: float) -> 'Gradient': ...
     @typing.overload
-    def pow(self, gradient: 'Gradient') -> 'Gradient': ...
+    def pow(self, int: int) -> 'Gradient': ...
     @typing.overload
     @staticmethod
     def pow(double: float, gradient: 'Gradient') -> 'Gradient': ...
-    def reciprocal(self) -> 'Gradient':
+    @typing.overload
+    def remainder(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            Returns the multiplicative inverse of :code:`this` element.
+            IEEE remainder operator.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): right hand side parameter of the operator
         
             Returns:
-                the inverse of :code:`this`.
+                this - n × a where n is the closest integer to this/a
         
         
         """
         ...
     @typing.overload
-    def remainder(self, double: float) -> 'Gradient':
+    def remainder(self, gradient: 'Gradient') -> 'Gradient': ...
+    def scalb(self, int: int) -> 'Gradient':
         """
-            IEEE remainder operator.
+            Multiply the instance by a power of 2.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.scalb` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (double): right hand side parameter of the operator
+                n (int): power of 2
         
             Returns:
-                this - n × a where n is the closest integer to this/a
+                this × 2 :sup:`n`
         
-            IEEE remainder operator.
+        
+        """
+        ...
+    def sinCos(self) -> org.hipparchus.util.FieldSinCos['Gradient']: ...
+    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['Gradient']: ...
+    @typing.overload
+    def subtract(self, double: float) -> org.hipparchus.CalculusFieldElement:
+        """
+            Compute this - a.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): right hand side parameter of the operator
+                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): element to subtract
         
             Returns:
-                this - n × a where n is the closest integer to this/a
+                a new element representing this - a
         
         
         """
         ...
     @typing.overload
-    def remainder(self, gradient: 'Gradient') -> 'Gradient': ...
-    def rint(self) -> 'Gradient':
+    def subtract(self, gradient: 'Gradient') -> 'Gradient': ...
+    def taylor(self, *double: float) -> float:
         """
-            Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
+            Evaluate Taylor expansion a derivative structure.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.rint` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                delta (double...): parameters offsets (Δx, Δy, ...)
         
             Returns:
-                a double number r such that r is an integer r - 0.5 ≤ this ≤ r + 0.5
+                value of the Taylor expansion at x + Δx, y + Δy, ...
         
         
         """
         ...
-    def rootN(self, int: int) -> 'Gradient':
+    def toDegrees(self) -> 'Gradient':
         """
-            N :sup:`th` root.
+            Convert radians to degrees, with error of less than 0.5 ULP
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.rootN` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                n (int): order of the root
+                :meth:`~org.hipparchus.CalculusFieldElement.toDegrees` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                n :sup:`th` root of the instance
+                instance converted into degrees
         
         
         """
         ...
-    def scalb(self, int: int) -> 'Gradient':
+    def toDerivativeStructure(self) -> DerivativeStructure:
         """
-            Multiply the instance by a power of 2.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.scalb` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                n (int): power of 2
+            Convert the instance to a :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`.
         
             Returns:
-                this × 2 :sup:`n`
+                derivative structure with same value and derivative as the instance
         
         
         """
         ...
-    def sign(self) -> 'Gradient':
+    def toRadians(self) -> 'Gradient':
         """
-            Compute the sign of the instance. The sign is -1 for negative numbers, +1 for positive numbers and 0 otherwise, for
-            Complex number, it is extended on the unit circle (equivalent to z/|z|, with special handling for 0 and NaN)
+            Convert degrees to radians, with error of less than 0.5 ULP
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.toRadians` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                -1.0, -0.0, +0.0, +1.0 or NaN depending on sign of a
+                instance converted into radians
         
         
         """
         ...
-    def sin(self) -> 'Gradient':
+    @staticmethod
+    def variable(int: int, int2: int, double: float) -> 'Gradient':
         """
-            Sine operation.
+            Build a :code:`Gradient` representing a variable.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sin` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Instances built using this method are considered to be the free variables with respect to which differentials are
+            computed. As such, their differential with respect to themselves is +1.
+        
+            Parameters:
+                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
+                index (int): index of the variable (from 0 to :meth:`~org.hipparchus.analysis.differentiation.Gradient.getFreeParameters` - 1)
+                value (double): value of the variable
         
             Returns:
-                sin(this)
+                a :code:`Gradient` with a constant value and all derivatives set to 0.0 except the one at :code:`index` which will be
+                set to 1.0
         
         
         """
         ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['Gradient']: ...
-    def sinh(self) -> 'Gradient':
+    def withValue(self, double: float) -> 'Gradient':
         """
-            Hyperbolic sine operation.
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
+        
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sinh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.withValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
+            Parameters:
+                v (double): zeroth-order derivative of new represented function
         
             Returns:
-                sinh(this)
+                new object with changed value
         
         
         """
         ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['Gradient']: ...
-    def sqrt(self) -> 'Gradient':
+
+class SparseGradient(Derivative1['SparseGradient'], java.io.Serializable):
+    """
+    public classSparseGradient extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.Derivative1`<:class:`~org.hipparchus.analysis.differentiation.SparseGradient`>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
+    
+        First derivative computation with large number of variables.
+    
+        This class plays a similar role to :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`, with a focus
+        on efficiency when dealing with large number of independent variables and most computation depend only on a few of them,
+        and when only first derivative is desired. When these conditions are met, this class should be much faster than
+        :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure` and use less memory.
+    
+        Also see:
+    
+              - :meth:`~serialized`
+    """
+    def abs(self) -> 'SparseGradient':
         """
-            Square root.
+            absolute value.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.sqrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                square root of the instance
+                abs(this)
         
         
         """
         ...
     @typing.overload
-    def subtract(self, double: float) -> 'Gradient':
+    def add(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            '-' operator.
+            Compute this + a.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.FieldElement.add` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
-                a (double): right hand side parameter of the operator
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to add
         
             Returns:
-                this-a
+                a new element representing this + a
         
-            Compute this - a.
         
-            Specified by:
-                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
+        """
+        ...
+    @typing.overload
+    def add(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
+    def addInPlace(self, sparseGradient: 'SparseGradient') -> None:
+        """
+            Add in place.
         
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.Gradient`): element to subtract
+            This method is designed to be faster when used multiple times in a loop.
         
-            Returns:
-                a new element representing this - a
+            The instance is changed here, in order to not change the instance the
+            :meth:`~org.hipparchus.analysis.differentiation.SparseGradient.add` method should be used.
+        
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): instance to add
         
         
         """
         ...
     @typing.overload
-    def subtract(self, gradient: 'Gradient') -> 'Gradient': ...
-    def tan(self) -> 'Gradient':
+    def atan2(self, sparseGradient: 'SparseGradient') -> 'SparseGradient':
         """
-            Tangent operation.
+            Two arguments arc tangent operation.
+        
+            Beware of the order or arguments! As this is based on a two-arguments functions, in order to be consistent with
+            arguments order, the instance is the *first* argument and the single provided argument is the *second* argument. In
+            order to be consistent with programming languages :code:`atan2`, this method computes :code:`atan2(this, x)`, i.e. the
+            instance represents the :code:`y` argument and the :code:`x` argument is the one passed as a single argument. This may
+            seem confusing especially for users of Wolfram alpha, as this site is *not* consistent with programming languages
+            :code:`atan2` two-arguments arc tangent and puts :code:`x` as its first argument.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.tan` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.atan2` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second argument of the arc tangent
         
             Returns:
-                tan(this)
+        public static :class:`~org.hipparchus.analysis.differentiation.SparseGradient` atan2(:class:`~org.hipparchus.analysis.differentiation.SparseGradient` y, :class:`~org.hipparchus.analysis.differentiation.SparseGradient` x)
+        
+            Two arguments arc tangent operation.
+        
+            Parameters:
+                y (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first argument of the arc tangent
+                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second argument of the arc tangent
         
+            Returns:
         
         """
         ...
-    def tanh(self) -> 'Gradient':
+    @typing.overload
+    @staticmethod
+    def atan2(sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient') -> 'SparseGradient': ...
+    @typing.overload
+    def compose(self, double: float, double2: float) -> 'SparseGradient':
         """
-            Hyperbolic tangent operation.
+            Compute composition of the instance by a univariate function differentiable at order 1.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.tanh` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative1.compose` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative1`
+        
+            Parameters:
+                f0 (double): value of function
+                f1 (double): first-order derivative
         
             Returns:
-                tanh(this)
+                f(this)
         
         
         """
         ...
-    def taylor(self, *double: float) -> float:
+    @typing.overload
+    def compose(self, *double: float) -> 'SparseGradient':
         """
-            Evaluate Taylor expansion a derivative structure.
+            Compute composition of the instance by a univariate function.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.compose` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Parameters:
-                delta (double...): parameters offsets (Δx, Δy, ...)
+                f (double...): array of value and derivatives of the function at the current point (i.e.
+                    [f(:meth:`~org.hipparchus.analysis.differentiation.SparseGradient.getValue`),
+                    f'(:meth:`~org.hipparchus.analysis.differentiation.SparseGradient.getValue`),
+                    f''(:meth:`~org.hipparchus.analysis.differentiation.SparseGradient.getValue`)...]).
         
             Returns:
-                value of the Taylor expansion at x + Δx, y + Δy, ...
+                f(this)
         
+            Raises:
+                :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the number of elements in the array is not equal to 2 (i.e. value and first derivative)
         
         """
         ...
-    def toDegrees(self) -> 'Gradient':
+    @typing.overload
+    def copySign(self, double: float) -> 'SparseGradient':
         """
-            Convert radians to degrees, with error of less than 0.5 ULP
+            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
         
             Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.toDegrees` in interface :class:`~org.hipparchus.CalculusFieldElement`
+                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                sign (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): the sign for the returned value
         
             Returns:
-                instance converted into degrees
+                the instance with the same sign as the :code:`sign` argument
         
+            Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
         
-        """
-        ...
-    def toDerivativeStructure(self) -> DerivativeStructure:
-        """
-            Convert the instance to a :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                sign (double): the sign for the returned value
         
             Returns:
-                derivative structure with same value and derivative as the instance
+                the instance with the same sign as the :code:`sign` argument
         
         
         """
         ...
-    def toRadians(self) -> 'Gradient':
+    @typing.overload
+    def copySign(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
+    @staticmethod
+    def createConstant(double: float) -> 'SparseGradient':
         """
-            Convert degrees to radians, with error of less than 0.5 ULP
+            Factory method creating a constant.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.toRadians` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                value (double): value of the constant
         
             Returns:
-                instance converted into radians
+                a new instance
         
         
         """
         ...
-    def ulp(self) -> 'Gradient':
+    @staticmethod
+    def createVariable(int: int, double: float) -> 'SparseGradient':
         """
-            Compute least significant bit (Unit in Last Position) for a number.
+            Factory method creating an independent variable.
         
-            The :code:`ulp` function is a step function, hence all its derivatives are 0.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.ulp` in interface :class:`~org.hipparchus.CalculusFieldElement`
+            Parameters:
+                idx (int): index of the variable
+                value (double): value of the variable
         
             Returns:
-                ulp(this)
-        
-            Since:
-                2.0
+                a new instance
         
         
         """
         ...
-    @staticmethod
-    def variable(int: int, int2: int, double: float) -> 'Gradient':
+    @typing.overload
+    def divide(self, double: float) -> 'SparseGradient':
         """
-            Build a :code:`Gradient` representing a variable.
+            Compute this ÷ a.
         
-            Instances built using this method are considered to be the free variables with respect to which differentials are
-            computed. As such, their differential with respect to themselves is +1.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
-                freeParameters (int): number of free parameters (i.e. dimension of the gradient)
-                index (int): index of the variable (from 0 to :meth:`~org.hipparchus.analysis.differentiation.Gradient.getFreeParameters` - 1)
-                value (double): value of the variable
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to divide by
         
             Returns:
-                a :code:`Gradient` with a constant value and all derivatives set to 0.0 except the one at :code:`index` which will be
-                set to 1.0
-        
+                a new element representing this ÷ a
         
-        """
-        ...
-
-_UnivariateDerivative__T = typing.TypeVar('_UnivariateDerivative__T', bound='UnivariateDerivative')  # <T>
-class UnivariateDerivative(Derivative[_UnivariateDerivative__T], java.io.Serializable, java.lang.Comparable[_UnivariateDerivative__T], typing.Generic[_UnivariateDerivative__T]):
-    """
-    public abstract class UnivariateDerivative<T extends UnivariateDerivative<T>> extends :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<T>
-    
-        Abstract class representing both the value and the differentials of a function.
-    
-        Since:
-            1.7
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    def __init__(self): ...
-    def getDerivative(self, int: int) -> float: ...
-    def getFreeParameters(self) -> int:
-        """
-            Get the number of free parameters.
+            '÷' operator.
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getFreeParameters` in
-                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
-        
-            Returns:
-                number of free parameters
-        
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-        """
-        ...
-    def getPartialDerivative(self, *int: int) -> float: ...
-    def toDerivativeStructure(self) -> DerivativeStructure:
-        """
-            Convert the instance to a :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`.
+            Parameters:
+                c (double): right hand side parameter of the operator
         
             Returns:
-                derivative structure with same value and derivative as the instance
+                this÷a
         
         
         """
         ...
-
-_FieldUnivariateDerivative1__T = typing.TypeVar('_FieldUnivariateDerivative1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldUnivariateDerivative1(FieldUnivariateDerivative[_FieldUnivariateDerivative1__T, 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], typing.Generic[_FieldUnivariateDerivative1__T]):
-    """
-    public class FieldUnivariateDerivative1<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`<T, :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T>>
-    
-        Class representing both the value and the differentials of a function.
-    
-        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` with
-        only one :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getFreeParameters` and
-        :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getOrder` also limited to one. It should have
-        less overhead than :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` in its domain.
-    
-        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
-        mathematical expressions; they hold the derivative together with the value of a function.
-    
-        :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1` instances can be used directly thanks to
-        the arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
-    
-        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
-        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
-    
-        Instances of this class are guaranteed to be immutable.
-    
-        Since:
-            1.7
-    
-        Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.Gradient`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
-    """
-    @typing.overload
-    def __init__(self, t: _FieldUnivariateDerivative1__T, t2: _FieldUnivariateDerivative1__T): ...
-    @typing.overload
-    def __init__(self, fieldDerivativeStructure: FieldDerivativeStructure[_FieldUnivariateDerivative1__T]): ...
-    def abs(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def acos(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def acosh(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def add(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def add(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def add(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def asin(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def asinh(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def atan(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def atan2(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def atanh(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def cbrt(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def ceil(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def compose(self, t: _FieldUnivariateDerivative1__T, t2: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def copySign(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def copySign(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def copySign(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def cos(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def cosh(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def divide(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def divide(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
     @typing.overload
-    def divide(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
+    def divide(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
     def equals(self, object: typing.Any) -> bool:
         """
-            Test for the equality of two univariate derivatives.
+            Test for the equality of two sparse gradients.
         
-            univariate derivatives are considered equal if they have the same derivatives.
+            Sparse gradients are considered equal if they have the same value and the same derivatives.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
-                true if two univariate derivatives are equal
+                true if two sparse gradients are equal
         
         
         """
         ...
-    def exp(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def expm1(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def floor(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def getDerivative(self, int: int) -> _FieldUnivariateDerivative1__T:
+    def getDerivative(self, int: int) -> float:
         """
-            Get a derivative from the univariate derivative.
-        
-            Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative.getDerivative` in
-                class :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`
+            Get the derivative with respect to a particular index variable.
         
             Parameters:
-                n (int): derivation order (must be between 0 and
-                    :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1.getOrder`, both inclusive)
+                index (int): index to differentiate with.
         
             Returns:
-                n :sup:`th` derivative, or :code:`NaN` if n is either negative or strictly larger than
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1.getOrder`
+                derivative with respect to a particular index variable
         
         
         """
         ...
-    def getExponent(self) -> int:
+    def getField(self) -> org.hipparchus.Field['SparseGradient']: ...
+    def getFreeParameters(self) -> int:
         """
-            Return the exponent of the instance, removing the bias.
+            Get the number of free parameters.
         
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getFreeParameters` in
+                interface :class:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra`
         
             Returns:
-                exponent for the instance, without bias
+                number of free parameters
         
         
         """
         ...
-    def getField(self) -> FieldUnivariateDerivative1Field[_FieldUnivariateDerivative1__T]: ...
-    def getFirstDerivative(self) -> _FieldUnivariateDerivative1__T:
+    def getPartialDerivative(self, *int: int) -> float: ...
+    def getPi(self) -> 'SparseGradient':
         """
-            Get the first derivative.
-        
-            Returns:
-                first derivative
-        
-            Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1.getValue`
+            Get the Archimedes constant π.
         
+            Archimedes constant is the ratio of a circle's circumference to its diameter.
         
-        """
-        ...
-    def getOrder(self) -> int:
-        """
-            Get the derivation order.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.getPi` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                derivation order
+                Archimedes constant π
         
         
         """
         ...
-    def getPi(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def getReal(self) -> float:
+    def getValue(self) -> float:
         """
-            Get the real value of the number.
-        
-            Returns:
-                real value
-        
+            Get the value of the function.
         
-        """
-        ...
-    def getValue(self) -> _FieldUnivariateDerivative1__T:
-        """
-            Get the value part of the univariate derivative.
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Returns:
-                value part of the univariate derivative
+                value of the function.
         
         
         """
         ...
-    def getValueField(self) -> org.hipparchus.Field[_FieldUnivariateDerivative1__T]: ...
     def hashCode(self) -> int:
         """
-            Get a hashCode for the univariate derivative.
+            Get a hashCode for the derivative structure.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -6727,488 +6890,519 @@ class FieldUnivariateDerivative1(FieldUnivariateDerivative[_FieldUnivariateDeriv
         
         """
         ...
-    def hypot(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double2: float, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
     @typing.overload
-    def linearCombination(self, double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double2: float, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double3: float, fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double2: float, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double3: float, fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], double4: float, fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldUnivariateDerivative1Array: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, t: _FieldUnivariateDerivative1__T, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], t2: _FieldUnivariateDerivative1__T, fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], t3: _FieldUnivariateDerivative1__T, fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, tArray: typing.Union[typing.List[_FieldUnivariateDerivative1__T], jpype.JArray], fieldUnivariateDerivative1Array: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative15: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative16: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative12: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative13: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative14: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative15: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative16: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative17: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T], fieldUnivariateDerivative18: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative1Array: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray], fieldUnivariateDerivative1Array2: typing.Union[typing.List['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]], jpype.JArray]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def log(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def log10(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def log1p(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def multiply(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def multiply(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def multiply(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def multiply(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def negate(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def newInstance(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def pow(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def pow(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def pow(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    @staticmethod
-    def pow(double: float, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_pow_3__T]) -> 'FieldUnivariateDerivative1'[_pow_3__T]:
+    def hypot(self, sparseGradient: 'SparseGradient') -> 'SparseGradient':
         """
-            Compute a :sup:`x` where a is a double and x a
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
+            Returns the hypotenuse of a triangle with sides :code:`this` and :code:`y` - sqrt(*this* :sup:`2`  +*y* :sup:`2` )
+            avoiding intermediate overflow or underflow.
+        
+              - If either argument is infinite, then the result is positive infinity.
+              - else, if either argument is NaN then the result is NaN.
+        
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.hypot` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (double): number to exponentiate
-                x (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<T> x): power to apply
+                y (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): a value
         
             Returns:
-                a :sup:`x`
+                sqrt(*this* :sup:`2`  +*y* :sup:`2` )
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> pow (double p)
+            Returns the hypotenuse of a triangle with sides :code:`x` and :code:`y` - sqrt(*x* :sup:`2`  +*y* :sup:`2` ) avoiding
+            intermediate overflow or underflow.
+        
+              - If either argument is infinite, then the result is positive infinity.
+              - else, if either argument is NaN then the result is NaN.
         
-            Power operation.
         
             Parameters:
-                p (double): power to apply
+                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): a value
+                y (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): a value
         
             Returns:
-                this :sup:`p`
+                sqrt(*x* :sup:`2`  +*y* :sup:`2` )
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> pow (int n)
         
-            Integer power operation.
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def hypot(sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient') -> 'SparseGradient': ...
+    @typing.overload
+    def linearCombination(self, double: float, sparseGradient: 'SparseGradient', double2: float, sparseGradient2: 'SparseGradient') -> 'SparseGradient':
+        """
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                n (int): power to apply
+                a1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
+                a2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
         
             Returns:
-                this :sup:`n`
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> pow (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> e)
+            Also see:
         
-            Power operation.
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`> e): exponent
+                a1 (double): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
+                a2 (double): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
         
             Returns:
-                this :sup:`e`
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
+            Also see:
         
-        """
-        ...
-    def reciprocal(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def remainder(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def remainder(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def remainder(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def rint(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def rootN(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def scalb(self, int: int) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def sign(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def sin(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]]: ...
-    def sinh(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]]: ...
-    def sqrt(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def subtract(self, double: float) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def subtract(self, t: _FieldUnivariateDerivative1__T) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def subtract(self, fieldUnivariateDerivative1: 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def tan(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def tanh(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    @typing.overload
-    def taylor(self, double: float) -> _FieldUnivariateDerivative1__T:
-        """
-            Evaluate Taylor expansion of a univariate derivative.
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                delta (double): parameter offset Δx
+                a1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
+                a2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
+                a3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the third term
+                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
         
             Returns:
-                value of the Taylor expansion at x + Δx
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
-            Evaluate Taylor expansion of a univariate derivative.
+            Also see:
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                delta (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`): parameter offset Δx
+                a1 (double): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
+                a2 (double): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
+                a3 (double): first factor of the third term
+                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
         
             Returns:
-                value of the Taylor expansion at x + Δx
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
+                a2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
+                a3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the third term
+                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
+                a4 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): first factor of the fourth term
+                b4 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the fourth term
+        
+            Returns:
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+        
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a1 (double): first factor of the first term
+                b1 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the first term
+                a2 (double): first factor of the second term
+                b2 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the second term
+                a3 (double): first factor of the third term
+                b3 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the third term
+                a4 (double): first factor of the fourth term
+                b4 (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): second factor of the fourth term
+        
+            Returns:
+                a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
+        
+            Also see:
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
         ...
     @typing.overload
-    def taylor(self, t: _FieldUnivariateDerivative1__T) -> _FieldUnivariateDerivative1__T: ...
-    def toDegrees(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldUnivariateDerivative1__T]: ...
-    def toRadians(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-    def ulp(self) -> 'FieldUnivariateDerivative1'[_FieldUnivariateDerivative1__T]: ...
-
-_FieldUnivariateDerivative2__T = typing.TypeVar('_FieldUnivariateDerivative2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldUnivariateDerivative2(FieldUnivariateDerivative[_FieldUnivariateDerivative2__T, 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], typing.Generic[_FieldUnivariateDerivative2__T]):
-    """
-    public class FieldUnivariateDerivative2<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`<T, :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<T>>
-    
-        Class representing both the value and the differentials of a function.
-    
-        This class is a stripped-down version of :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` with
-        only one :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getFreeParameters` and
-        :meth:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure.getOrder` limited to two. It should have less
-        overhead than :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure` in its domain.
-    
-        This class is an implementation of Rall's numbers. Rall's numbers are an extension to the real numbers used throughout
-        mathematical expressions; they hold the derivative together with the value of a function.
-    
-        :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2` instances can be used directly thanks to
-        the arithmetic operators to the mathematical functions provided as methods by this class (+, -, *, /, %, sin, cos ...).
-    
-        Implementing complex expressions by hand using these classes is a tedious and error-prone task but has the advantage of
-        having no limitation on the derivation order despite not requiring users to compute the derivatives by themselves.
-    
-        Instances of this class are guaranteed to be immutable.
-    
-        Since:
-            1.7
-    
-        Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.Gradient`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
-    """
-    @typing.overload
-    def __init__(self, t: _FieldUnivariateDerivative2__T, t2: _FieldUnivariateDerivative2__T, t3: _FieldUnivariateDerivative2__T): ...
-    @typing.overload
-    def __init__(self, fieldDerivativeStructure: FieldDerivativeStructure[_FieldUnivariateDerivative2__T]): ...
-    def abs(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def acos(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def acosh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def add(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def add(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, double: float, sparseGradient: 'SparseGradient', double2: float, sparseGradient2: 'SparseGradient', double3: float, sparseGradient3: 'SparseGradient') -> 'SparseGradient': ...
     @typing.overload
-    def add(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def asin(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def asinh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def atan(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def atan2(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def atanh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def cbrt(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def ceil(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def compose(self, t: _FieldUnivariateDerivative2__T, t2: _FieldUnivariateDerivative2__T, t3: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, double: float, sparseGradient: 'SparseGradient', double2: float, sparseGradient2: 'SparseGradient', double3: float, sparseGradient3: 'SparseGradient', double4: float, sparseGradient4: 'SparseGradient') -> 'SparseGradient': ...
     @typing.overload
-    def copySign(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], sparseGradientArray: typing.Union[typing.List['SparseGradient'], jpype.JArray]) -> 'SparseGradient':
+        """
+            Compute a linear combination.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                a (double[]): Factors.
+                b (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`[]): Factors.
+        
+            Returns:
+                :code:`Σ :sub:`i` a :sub:`i` b :sub:`i``.
+        
+        """
+        ...
     @typing.overload
-    def copySign(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient', sparseGradient3: 'SparseGradient', sparseGradient4: 'SparseGradient') -> 'SparseGradient': ...
     @typing.overload
-    def copySign(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def cos(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def cosh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient', sparseGradient3: 'SparseGradient', sparseGradient4: 'SparseGradient', sparseGradient5: 'SparseGradient', sparseGradient6: 'SparseGradient') -> 'SparseGradient': ...
     @typing.overload
-    def divide(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, sparseGradient: 'SparseGradient', sparseGradient2: 'SparseGradient', sparseGradient3: 'SparseGradient', sparseGradient4: 'SparseGradient', sparseGradient5: 'SparseGradient', sparseGradient6: 'SparseGradient', sparseGradient7: 'SparseGradient', sparseGradient8: 'SparseGradient') -> 'SparseGradient': ...
     @typing.overload
-    def divide(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def linearCombination(self, sparseGradientArray: typing.Union[typing.List['SparseGradient'], jpype.JArray], sparseGradientArray2: typing.Union[typing.List['SparseGradient'], jpype.JArray]) -> 'SparseGradient': ...
     @typing.overload
-    def divide(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def equals(self, object: typing.Any) -> bool:
+    def multiply(self, double: float) -> 'SparseGradient':
         """
-            Test for the equality of two univariate derivatives.
+            Compute this × a.
         
-            univariate derivatives are considered equal if they have the same derivatives.
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to multiply
+        
+            Returns:
+                a new element representing this × a
+        
+            '×' operator.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                c (double): right hand side parameter of the operator
         
             Returns:
-                true if two univariate derivatives are equal
+                this×a
         
+            Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
+            \sum_{i=1}^n \mathrm{this} \]
         
-        """
-        ...
-    def exp(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def expm1(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def floor(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def getDerivative(self, int: int) -> _FieldUnivariateDerivative2__T:
-        """
-            Get a derivative from the univariate derivative.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Specified by:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative.getDerivative` in
-                class :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative`
+                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
-                n (int): derivation order (must be between 0 and
-                    :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getOrder`, both inclusive)
+                n (int): Number of times :code:`this` must be added to itself.
         
             Returns:
-                n :sup:`th` derivative, or :code:`NaN` if n is either negative or strictly larger than
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getOrder`
+                A new element representing n × this.
         
         
         """
         ...
-    def getExponent(self) -> int:
+    @typing.overload
+    def multiply(self, int: int) -> 'SparseGradient': ...
+    @typing.overload
+    def multiply(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
+    def multiplyInPlace(self, sparseGradient: 'SparseGradient') -> None:
         """
-            Return the exponent of the instance, removing the bias.
+            Multiply in place.
         
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
+            This method is designed to be faster when used multiple times in a loop.
         
-            Returns:
-                exponent for the instance, without bias
+            The instance is changed here, in order to not change the instance the
+            :meth:`~org.hipparchus.analysis.differentiation.SparseGradient.add` method should be used.
+        
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): instance to multiply
         
         
         """
         ...
-    def getField(self) -> FieldUnivariateDerivative2Field[_FieldUnivariateDerivative2__T]: ...
-    def getFirstDerivative(self) -> _FieldUnivariateDerivative2__T:
+    def negate(self) -> 'SparseGradient':
         """
-            Get the first derivative.
+            Returns the additive inverse of :code:`this` element.
         
-            Returns:
-                first derivative
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.negate` in interface :class:`~org.hipparchus.FieldElement`
         
-            Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getValue`
+            Returns:
+                the opposite of :code:`this`.
         
         
         """
         ...
-    def getOrder(self) -> int:
+    def newInstance(self, double: float) -> 'SparseGradient':
         """
-            Get the derivation order.
+            Create an instance corresponding to a constant real value.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.newInstance` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                v (double): constant real value
         
             Returns:
-                derivation order
+                instance corresponding to a constant real value
         
         
         """
         ...
-    def getPi(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def getReal(self) -> float:
+    def numVars(self) -> int:
         """
-            Get the real value of the number.
+            Deprecated.
+            Find the number of variables.
         
             Returns:
-                real value
+                number of variables
         
         
         """
         ...
-    def getSecondDerivative(self) -> _FieldUnivariateDerivative2__T:
+    @typing.overload
+    def pow(self, t: org.hipparchus.CalculusFieldElement) -> org.hipparchus.CalculusFieldElement:
         """
-            Get the second derivative.
+            Power operation.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                p (double): power to apply
         
             Returns:
-                second derivative
+                this :sup:`p`
         
-            Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getValue`,
-                :meth:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2.getFirstDerivative`
+            Integer power operation.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-        """
-        ...
-    def getValue(self) -> _FieldUnivariateDerivative2__T:
-        """
-            Get the value part of the univariate derivative.
+            Parameters:
+                n (int): power to apply
         
             Returns:
-                value part of the univariate derivative
-        
+                this :sup:`n`
         
-        """
-        ...
-    def getValueField(self) -> org.hipparchus.Field[_FieldUnivariateDerivative2__T]: ...
-    def hashCode(self) -> int:
-        """
-            Get a hashCode for the univariate derivative.
+            Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.SparseGradient`
         
-            Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Parameters:
+                a (double): number to exponentiate
+                x (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): power to apply
         
             Returns:
-                a hash code value for this object
+                a :sup:`x`
         
         
         """
         ...
-    def hypot(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double2: float, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double2: float, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double3: float, fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double2: float, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double3: float, fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], double4: float, fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], fieldUnivariateDerivative2Array: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
     @typing.overload
-    def linearCombination(self, t: _FieldUnivariateDerivative2__T, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], t2: _FieldUnivariateDerivative2__T, fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], t3: _FieldUnivariateDerivative2__T, fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, tArray: typing.Union[typing.List[_FieldUnivariateDerivative2__T], jpype.JArray], fieldUnivariateDerivative2Array: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative25: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative26: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative22: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative23: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative24: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative25: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative26: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative27: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T], fieldUnivariateDerivative28: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def linearCombination(self, fieldUnivariateDerivative2Array: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray], fieldUnivariateDerivative2Array2: typing.Union[typing.List['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]], jpype.JArray]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def log(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def log10(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def log1p(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def multiply(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def multiply(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def multiply(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def pow(self, double: float) -> 'SparseGradient': ...
     @typing.overload
-    def multiply(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def negate(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def newInstance(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    _pow_3__T = typing.TypeVar('_pow_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def pow(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def pow(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def pow(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
+    def pow(self, int: int) -> 'SparseGradient': ...
     @typing.overload
     @staticmethod
-    def pow(double: float, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_pow_3__T]) -> 'FieldUnivariateDerivative2'[_pow_3__T]:
+    def pow(double: float, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
+    @typing.overload
+    def remainder(self, double: float) -> 'SparseGradient':
         """
-            Compute a :sup:`x` where a is a double and x a
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+            IEEE remainder operator.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.remainder` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
+            Parameters:
+                a (double): right hand side parameter of the operator
+        
+            Returns:
+                this - n × a where n is the closest integer to this/a
+        
+            IEEE remainder operator.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (double): number to exponentiate
-                x (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<T> x): power to apply
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): right hand side parameter of the operator
         
             Returns:
-                a :sup:`x`
+                this - n × a where n is the closest integer to this/a
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> pow (double p)
         
-            Power operation.
+        """
+        ...
+    @typing.overload
+    def remainder(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
+    def scalb(self, int: int) -> 'SparseGradient':
+        """
+            Multiply the instance by a power of 2.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.scalb` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                p (double): power to apply
+                n (int): power of 2
         
             Returns:
-                this :sup:`p`
+                this × 2 :sup:`n`
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> pow (int n)
         
-            Integer power operation.
+        """
+        ...
+    def sqrt(self) -> 'SparseGradient':
+        """
+            Square root.
         
-            Parameters:
-                n (int): power to apply
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.sqrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative1.sqrt` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative1`
         
             Returns:
-                this :sup:`n`
+                square root of the instance
         
-        public :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> pow (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> e)
         
-            Power operation.
+        """
+        ...
+    @typing.overload
+    def subtract(self, double: float) -> org.hipparchus.CalculusFieldElement:
+        """
+            Compute this - a.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`<:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`> e): exponent
+                a (:class:`~org.hipparchus.analysis.differentiation.SparseGradient`): element to subtract
         
             Returns:
-                this :sup:`e`
+                a new element representing this - a
         
         
         """
         ...
-    def reciprocal(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def remainder(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def remainder(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def remainder(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def rint(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def rootN(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def scalb(self, int: int) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def sign(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def sin(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]]: ...
-    def sinh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]]: ...
-    def sqrt(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def subtract(self, double: float) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def subtract(self, t: _FieldUnivariateDerivative2__T) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    @typing.overload
-    def subtract(self, fieldUnivariateDerivative2: 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def tan(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def tanh(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
     @typing.overload
-    def taylor(self, double: float) -> _FieldUnivariateDerivative2__T:
+    def subtract(self, sparseGradient: 'SparseGradient') -> 'SparseGradient': ...
+    def taylor(self, *double: float) -> float:
         """
-            Evaluate Taylor expansion a univariate derivative.
+            Evaluate Taylor expansion of a sparse gradient.
         
             Parameters:
-                delta (double): parameter offset Δx
+                delta (double...): parameters offsets (Δx, Δy, ...)
         
             Returns:
-                value of the Taylor expansion at x + Δx
+                value of the Taylor expansion at x + Δx, y + Δy, ...
+        
+        
+        """
+        ...
+    def toDegrees(self) -> 'SparseGradient':
+        """
+            Convert radians to degrees, with error of less than 0.5 ULP
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.toDegrees` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                instance converted into degrees
         
-            Evaluate Taylor expansion a univariate derivative.
+        
+        """
+        ...
+    def toRadians(self) -> 'SparseGradient':
+        """
+            Convert degrees to radians, with error of less than 0.5 ULP
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.toRadians` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                instance converted into radians
+        
+        
+        """
+        ...
+    def withValue(self, double: float) -> 'SparseGradient':
+        """
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
+        
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
+        
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.withValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
             Parameters:
-                delta (:class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`): parameter offset Δx
+                v (double): zeroth-order derivative of new represented function
         
             Returns:
-                value of the Taylor expansion at x + Δx
+                new object with changed value
         
         
         """
         ...
-    @typing.overload
-    def taylor(self, t: _FieldUnivariateDerivative2__T) -> _FieldUnivariateDerivative2__T: ...
-    def toDegrees(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def toDerivativeStructure(self) -> FieldDerivativeStructure[_FieldUnivariateDerivative2__T]: ...
-    def toRadians(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
-    def ulp(self) -> 'FieldUnivariateDerivative2'[_FieldUnivariateDerivative2__T]: ...
 
-class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
+class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1'], Derivative1['UnivariateDerivative1']):
     """
-    public class UnivariateDerivative1 extends :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`>
+    public classUnivariateDerivative1 extends :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`>
+    implements :class:`~org.hipparchus.analysis.differentiation.Derivative1`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`>
     
         Class representing both the value and the differentials of a function.
     
@@ -7232,13 +7426,15 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
             1.7
     
         Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.Gradient`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldGradient`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.Gradient`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+              - :meth:`~serialized`
     """
     PI: typing.ClassVar['UnivariateDerivative1'] = ...
     """
@@ -7259,47 +7455,23 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             absolute value.
         
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
                 abs(this)
         
         
-        """
-        ...
-    def acos(self) -> 'UnivariateDerivative1':
-        """
-            Arc cosine operation.
-        
-            Returns:
-                acos(this)
-        
-        
-        """
-        ...
-    def acosh(self) -> 'UnivariateDerivative1':
-        """
-            Inverse hyperbolic cosine operation.
-        
-            Returns:
-                acosh(this)
-        
-        
         """
         ...
     @typing.overload
-    def add(self, double: float) -> 'UnivariateDerivative1':
+    def add(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            '+' operator.
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this+a
-        
             Compute this + a.
         
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.add` in interface :class:`~org.hipparchus.FieldElement`
+        
             Parameters:
                 a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): element to add
         
@@ -7311,36 +7483,6 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         ...
     @typing.overload
     def add(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    def asin(self) -> 'UnivariateDerivative1':
-        """
-            Arc sine operation.
-        
-            Returns:
-                asin(this)
-        
-        
-        """
-        ...
-    def asinh(self) -> 'UnivariateDerivative1':
-        """
-            Inverse hyperbolic sine operation.
-        
-            Returns:
-                asin(this)
-        
-        
-        """
-        ...
-    def atan(self) -> 'UnivariateDerivative1':
-        """
-            Arc tangent operation.
-        
-            Returns:
-                atan(this)
-        
-        
-        """
-        ...
     def atan2(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1':
         """
             Two arguments arc tangent operation.
@@ -7352,6 +7494,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
             seem confusing especially for users of Wolfram alpha, as this site is *not* consistent with programming languages
             :code:`atan2` two-arguments arc tangent and puts :code:`x` as its first argument.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.atan2` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 x (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second argument of the arc tangent
         
@@ -7359,52 +7504,51 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         
         """
         ...
-    def atanh(self) -> 'UnivariateDerivative1':
+    def compareTo(self, univariateDerivative1: 'UnivariateDerivative1') -> int:
         """
-            Inverse hyperbolic tangent operation.
-        
-            Returns:
-                atanh(this)
         
+            Comparison performed considering that derivatives are intrinsically linked to monomials in the corresponding Taylor
+            expansion and that the higher the degree, the smaller the term.
         
-        """
-        ...
-    def cbrt(self) -> 'UnivariateDerivative1':
-        """
-            Cubic root.
+            Specified by:
+                
+                meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo` in
+                interface :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`
         
-            Returns:
-                cubic root of the instance
+            Since:
+                3.0
         
         
         """
         ...
-    def ceil(self) -> 'UnivariateDerivative1':
+    @typing.overload
+    def compose(self, double: float, double2: float) -> 'UnivariateDerivative1':
         """
-            Get the smallest whole number larger than instance.
-        
-            Returns:
-                ceil(this)
-        
+            Compute composition of the instance by a univariate function differentiable at order 1.
         
-        """
-        ...
-    def compareTo(self, univariateDerivative1: 'UnivariateDerivative1') -> int:
-        """
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative1.compose` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative1`
         
-            Comparison performed considering that derivatives are intrinsically linked to monomials in the corresponding Taylor
-            expansion and that the higher the degree, the smaller the term.
+            Parameters:
+                ff0 (double): value of function
+                ff1 (double): first-order derivative
         
-            Since:
-                3.0
+            Returns:
+                f(this)
         
         
         """
         ...
+    @typing.overload
     def compose(self, *double: float) -> 'UnivariateDerivative1':
         """
             Compute composition of the instance by a univariate function.
         
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.compose` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
             Parameters:
                 f (double...): array of value and derivatives of the function at the current point (i.e.
                     [f(:meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue`),
@@ -7414,7 +7558,6 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
             Returns:
                 f(this)
         
-        
         """
         ...
     @typing.overload
@@ -7422,6 +7565,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 sign (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): the sign for the returned value
         
@@ -7430,6 +7576,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         
             Returns the instance with the sign of the argument. A NaN :code:`sign` argument is treated as positive.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.copySign` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 sign (double): the sign for the returned value
         
@@ -7441,38 +7590,27 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         ...
     @typing.overload
     def copySign(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    def cos(self) -> 'UnivariateDerivative1':
-        """
-            Cosine operation.
-        
-            Returns:
-                cos(this)
-        
-        
-        """
-        ...
-    def cosh(self) -> 'UnivariateDerivative1':
-        """
-            Hyperbolic cosine operation.
-        
-            Returns:
-                cosh(this)
-        
-        
-        """
-        ...
     @typing.overload
     def divide(self, double: float) -> 'UnivariateDerivative1':
         """
             '÷' operator.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a (double): right hand side parameter of the operator
         
             Returns:
                 this÷a
         
-            Compute this ÷ a.
+            Compute this ÷ a.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
                 a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): element to divide by
@@ -7492,46 +7630,16 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
             univariate derivatives are considered equal if they have the same derivatives.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two univariate derivatives are equal
         
         
-        """
-        ...
-    def exp(self) -> 'UnivariateDerivative1':
-        """
-            Exponential.
-        
-            Returns:
-                exponential of the instance
-        
-        
-        """
-        ...
-    def expm1(self) -> 'UnivariateDerivative1':
-        """
-            Exponential minus 1.
-        
-            Returns:
-                exponential minus one of the instance
-        
-        
-        """
-        ...
-    def floor(self) -> 'UnivariateDerivative1':
-        """
-            Get the largest whole number smaller than instance.
-        
-            Returns:
-                floor(this)
-        
-        
         """
         ...
     def getDerivative(self, int: int) -> float:
@@ -7543,31 +7651,22 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 class :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative`
         
             Parameters:
-                n (int): derivation order (must be between 0 and :meth:`~org.hipparchus.analysis.differentiation.Derivative.getOrder`, both
-                    inclusive)
+                n (int): derivation order (must be between 0 and :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder`,
+                    both inclusive)
         
             Returns:
                 n :sup:`th` derivative
         
         
-        """
-        ...
-    def getExponent(self) -> int:
-        """
-            Return the exponent of the instance, removing the bias.
-        
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
-        
-            Returns:
-                exponent for the instance, without bias
-        
-        
         """
         ...
     def getField(self) -> UnivariateDerivative1Field:
         """
             Get the :class:`~org.hipparchus.Field` to which the instance belongs.
         
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.getField` in interface :class:`~org.hipparchus.FieldElement`
+        
             Returns:
                 :class:`~org.hipparchus.Field` to which the instance belongs
         
@@ -7582,17 +7681,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 first derivative
         
             Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1.getValue`
-        
         
-        """
-        ...
-    def getOrder(self) -> int:
-        """
-            Get the derivation order.
+                  - :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1.getValue`
         
-            Returns:
-                derivation order
         
         
         """
@@ -7603,18 +7694,11 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         
             Archimedes constant is the ratio of a circle's circumference to its diameter.
         
-            Returns:
-                Archimedes constant π
-        
-        
-        """
-        ...
-    def getReal(self) -> float:
-        """
-            Get the real value of the number.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.getPi` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Returns:
-                real value
+                Archimedes constant π
         
         
         """
@@ -7623,6 +7707,10 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             Get the value part of the function.
         
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.getValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
+        
             Returns:
                 value part of the value of the function
         
@@ -7634,8 +7722,8 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
             Get a hashCode for the univariate derivative.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -7652,6 +7740,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
               - else, if either argument is NaN then the result is NaN.
         
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.hypot` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 y (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): a value
         
@@ -7666,6 +7757,10 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): first factor of the first term
                 b1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second factor of the first term
@@ -7676,11 +7771,17 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a1 (double): first factor of the first term
                 b1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second factor of the first term
@@ -7691,11 +7792,17 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): first factor of the first term
                 b1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second factor of the first term
@@ -7708,11 +7815,17 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a1 (double): first factor of the first term
                 b1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second factor of the first term
@@ -7725,11 +7838,17 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): first factor of the first term
                 b1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second factor of the first term
@@ -7744,11 +7863,17 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a1 (double): first factor of the first term
                 b1 (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): second factor of the first term
@@ -7763,8 +7888,10 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -7778,6 +7905,10 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`[]): Factors.
                 b (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`[]): Factors.
@@ -7787,6 +7918,10 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         
             Compute a linear combination.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination` in
+                interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a (double[]): Factors.
                 b (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`[]): Factors.
@@ -7804,42 +7939,18 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
     def linearCombination(self, univariateDerivative1: 'UnivariateDerivative1', univariateDerivative12: 'UnivariateDerivative1', univariateDerivative13: 'UnivariateDerivative1', univariateDerivative14: 'UnivariateDerivative1', univariateDerivative15: 'UnivariateDerivative1', univariateDerivative16: 'UnivariateDerivative1', univariateDerivative17: 'UnivariateDerivative1', univariateDerivative18: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
     @typing.overload
     def linearCombination(self, univariateDerivative1Array: typing.Union[typing.List['UnivariateDerivative1'], jpype.JArray], univariateDerivative1Array2: typing.Union[typing.List['UnivariateDerivative1'], jpype.JArray]) -> 'UnivariateDerivative1': ...
-    def log(self) -> 'UnivariateDerivative1':
-        """
-            Natural logarithm.
-        
-            Returns:
-                logarithm of the instance
-        
-        
-        """
-        ...
-    def log10(self) -> 'UnivariateDerivative1':
-        """
-            Base 10 logarithm.
-        
-            Returns:
-                base 10 logarithm of the instance
-        
-        
-        """
-        ...
-    def log1p(self) -> 'UnivariateDerivative1':
-        """
-            Shifted natural logarithm.
-        
-            Returns:
-                logarithm of one plus the instance
-        
-        
-        """
-        ...
     @typing.overload
     def multiply(self, double: float) -> 'UnivariateDerivative1':
         """
             Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
             \sum_{i=1}^n \mathrm{this} \]
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
+        
             Parameters:
                 n (int): Number of times :code:`this` must be added to itself.
         
@@ -7848,6 +7959,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         
             '×' operator.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Parameters:
                 a (double): right hand side parameter of the operator
         
@@ -7856,245 +7970,152 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         
             Compute this × a.
         
-            Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): element to multiply
-        
-            Returns:
-                a new element representing this × a
-        
-        
-        """
-        ...
-    @typing.overload
-    def multiply(self, int: int) -> 'UnivariateDerivative1': ...
-    @typing.overload
-    def multiply(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    def negate(self) -> 'UnivariateDerivative1':
-        """
-            Returns the additive inverse of :code:`this` element.
-        
-            Returns:
-                the opposite of :code:`this`.
-        
-        
-        """
-        ...
-    def newInstance(self, double: float) -> 'UnivariateDerivative1':
-        """
-            Create an instance corresponding to a constant real value.
-        
-            Parameters:
-                value (double): constant real value
-        
-            Returns:
-                instance corresponding to a constant real value
-        
-        
-        """
-        ...
-    @typing.overload
-    def pow(self, double: float) -> 'UnivariateDerivative1':
-        """
-            Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
-        
-            Parameters:
-                a (double): number to exponentiate
-                x (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): power to apply
-        
-            Returns:
-                a :sup:`x`
-        
-            Power operation.
-        
-            Parameters:
-                p (double): power to apply
-        
-            Returns:
-                this :sup:`p`
-        
-            Integer power operation.
-        
-            Parameters:
-                n (int): power to apply
-        
-            Returns:
-                this :sup:`n`
-        
-            Power operation.
-        
-            Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): exponent
-        
-            Returns:
-                this :sup:`e`
-        
-        
-        """
-        ...
-    @typing.overload
-    def pow(self, int: int) -> 'UnivariateDerivative1': ...
-    @typing.overload
-    def pow(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    @typing.overload
-    @staticmethod
-    def pow(double: float, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    def reciprocal(self) -> 'UnivariateDerivative1':
-        """
-            Returns the multiplicative inverse of :code:`this` element.
-        
-            Returns:
-                the inverse of :code:`this`.
-        
-        
-        """
-        ...
-    @typing.overload
-    def remainder(self, double: float) -> 'UnivariateDerivative1':
-        """
-            IEEE remainder operator.
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this - n × a where n is the closest integer to this/a
-        
-            IEEE remainder operator.
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): right hand side parameter of the operator
+                a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): element to multiply
         
             Returns:
-                this - n × a where n is the closest integer to this/a
+                a new element representing this × a
         
         
         """
         ...
     @typing.overload
-    def remainder(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    def rint(self) -> 'UnivariateDerivative1':
+    def multiply(self, int: int) -> 'UnivariateDerivative1': ...
+    @typing.overload
+    def multiply(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
+    def negate(self) -> 'UnivariateDerivative1':
         """
-            Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
+            Returns the additive inverse of :code:`this` element.
+        
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.negate` in interface :class:`~org.hipparchus.FieldElement`
         
             Returns:
-                a double number r such that r is an integer r - 0.5 ≤ this ≤ r + 0.5
+                the opposite of :code:`this`.
         
         
         """
         ...
-    def rootN(self, int: int) -> 'UnivariateDerivative1':
+    def newInstance(self, double: float) -> 'UnivariateDerivative1':
         """
-            N :sup:`th` root.
+            Create an instance corresponding to a constant real value.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.newInstance` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                n (int): order of the root
+                value (double): constant real value
         
             Returns:
-                n :sup:`th` root of the instance
+                instance corresponding to a constant real value
         
         
         """
         ...
-    def scalb(self, int: int) -> 'UnivariateDerivative1':
+    @typing.overload
+    def pow(self, t: org.hipparchus.CalculusFieldElement) -> org.hipparchus.CalculusFieldElement:
         """
-            Multiply the instance by a power of 2.
+            Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`
         
             Parameters:
-                n (int): power of 2
+                a (double): number to exponentiate
+                x (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): power to apply
         
             Returns:
-                this × 2 :sup:`n`
+                a :sup:`x`
         
+            Power operation.
         
-        """
-        ...
-    def sign(self) -> 'UnivariateDerivative1':
-        """
-            Compute the sign of the instance. The sign is -1 for negative numbers, +1 for positive numbers and 0 otherwise, for
-            Complex number, it is extended on the unit circle (equivalent to z/|z|, with special handling for 0 and NaN)
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                p (double): power to apply
         
             Returns:
-                -1.0, -0.0, +0.0, +1.0 or NaN depending on sign of a
+                this :sup:`p`
         
+            Integer power operation.
         
-        """
-        ...
-    def sin(self) -> 'UnivariateDerivative1':
-        """
-            Sine operation.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.pow` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Parameters:
+                n (int): power to apply
         
             Returns:
-                sin(this)
+                this :sup:`n`
         
         
         """
         ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['UnivariateDerivative1']: ...
-    def sinh(self) -> 'UnivariateDerivative1':
+    @typing.overload
+    def pow(self, double: float) -> 'UnivariateDerivative1': ...
+    @typing.overload
+    def pow(self, int: int) -> 'UnivariateDerivative1': ...
+    @typing.overload
+    @staticmethod
+    def pow(double: float, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
+    @typing.overload
+    def remainder(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            Hyperbolic sine operation.
-        
-            Returns:
-                sinh(this)
+            IEEE remainder operator.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.remainder` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
-        """
-        ...
-    def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['UnivariateDerivative1']: ...
-    def sqrt(self) -> 'UnivariateDerivative1':
-        """
-            Square root.
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): right hand side parameter of the operator
         
             Returns:
-                square root of the instance
+                this - n × a where n is the closest integer to this/a
         
         
         """
         ...
     @typing.overload
-    def subtract(self, double: float) -> 'UnivariateDerivative1':
+    def remainder(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
+    def scalb(self, int: int) -> 'UnivariateDerivative1':
         """
-            '-' operator.
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this-a
+            Multiply the instance by a power of 2.
         
-            Compute this - a.
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.scalb` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
             Parameters:
-                a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): element to subtract
+                n (int): power of 2
         
             Returns:
-                a new element representing this - a
+                this × 2 :sup:`n`
         
         
         """
         ...
     @typing.overload
-    def subtract(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
-    def tan(self) -> 'UnivariateDerivative1':
+    def subtract(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            Tangent operation.
+            Compute this - a.
         
-            Returns:
-                tan(this)
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
+            Specified by:
+                :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
         
-        """
-        ...
-    def tanh(self) -> 'UnivariateDerivative1':
-        """
-            Hyperbolic tangent operation.
+            Parameters:
+                a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative1`): element to subtract
         
             Returns:
-                tanh(this)
+                a new element representing this - a
         
         
         """
         ...
+    @typing.overload
+    def subtract(self, univariateDerivative1: 'UnivariateDerivative1') -> 'UnivariateDerivative1': ...
     def taylor(self, double: float) -> float:
         """
             Evaluate Taylor expansion a univariate derivative.
@@ -8112,6 +8133,9 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             Convert radians to degrees, with error of less than 0.5 ULP
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.toDegrees` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Returns:
                 instance converted into degrees
         
@@ -8136,23 +8160,32 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
         """
             Convert degrees to radians, with error of less than 0.5 ULP
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.toRadians` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Returns:
                 instance converted into radians
         
         
         """
         ...
-    def ulp(self) -> 'UnivariateDerivative1':
+    def withValue(self, double: float) -> 'UnivariateDerivative1':
         """
-            Compute least significant bit (Unit in Last Position) for a number.
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
         
-            The :code:`ulp` function is a step function, hence all its derivatives are 0.
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
         
-            Returns:
-                ulp(this)
+            Specified by:
+                :meth:`~org.hipparchus.analysis.differentiation.Derivative.withValue` in
+                interface :class:`~org.hipparchus.analysis.differentiation.Derivative`
         
-            Since:
-                2.0
+            Parameters:
+                value (double): zeroth-order derivative of new represented function
+        
+            Returns:
+                new object with changed value
         
         
         """
@@ -8160,7 +8193,7 @@ class UnivariateDerivative1(UnivariateDerivative['UnivariateDerivative1']):
 
 class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
     """
-    public class UnivariateDerivative2 extends :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`>
+    public classUnivariateDerivative2 extends :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`>
     
         Class representing both the value and the differentials of a function.
     
@@ -8184,13 +8217,15 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
             1.7
     
         Also see:
-            :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.Gradient`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`,
-            :class:`~org.hipparchus.analysis.differentiation.FieldGradient`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.analysis.differentiation.DerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.Gradient`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldDerivativeStructure`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2`
+              - :class:`~org.hipparchus.analysis.differentiation.FieldGradient`
+              - :meth:`~serialized`
     """
     PI: typing.ClassVar['UnivariateDerivative2'] = ...
     """
@@ -8211,8 +8246,6 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         """
             absolute value.
         
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
             Returns:
                 abs(this)
         
@@ -8240,16 +8273,8 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         """
         ...
     @typing.overload
-    def add(self, double: float) -> 'UnivariateDerivative2':
+    def add(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
-            '+' operator.
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this+a
-        
             Compute this + a.
         
             Parameters:
@@ -8329,16 +8354,6 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 cubic root of the instance
         
         
-        """
-        ...
-    def ceil(self) -> 'UnivariateDerivative2':
-        """
-            Get the smallest whole number larger than instance.
-        
-            Returns:
-                ceil(this)
-        
-        
         """
         ...
     def compareTo(self, univariateDerivative2: 'UnivariateDerivative2') -> int:
@@ -8444,11 +8459,11 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
             univariate derivatives are considered equal if they have the same derivatives.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two univariate derivatives are equal
@@ -8474,16 +8489,6 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 exponential minus one of the instance
         
         
-        """
-        ...
-    def floor(self) -> 'UnivariateDerivative2':
-        """
-            Get the largest whole number smaller than instance.
-        
-            Returns:
-                floor(this)
-        
-        
         """
         ...
     def getDerivative(self, int: int) -> float:
@@ -8495,25 +8500,13 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 class :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative`
         
             Parameters:
-                n (int): derivation order (must be between 0 and :meth:`~org.hipparchus.analysis.differentiation.Derivative.getOrder`, both
-                    inclusive)
+                n (int): derivation order (must be between 0 and :meth:`~org.hipparchus.analysis.differentiation.DifferentialAlgebra.getOrder`,
+                    both inclusive)
         
             Returns:
                 n :sup:`th` derivative
         
         
-        """
-        ...
-    def getExponent(self) -> int:
-        """
-            Return the exponent of the instance, removing the bias.
-        
-            For double numbers of the form 2 :sup:`x` , the unbiased exponent is exactly x.
-        
-            Returns:
-                exponent for the instance, without bias
-        
-        
         """
         ...
     def getField(self) -> UnivariateDerivative2Field:
@@ -8534,18 +8527,20 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 first derivative
         
             Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getValue`,
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getSecondDerivative`
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getValue`
+                  - :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getSecondDerivative`
+        
         
         
         """
         ...
     def getOrder(self) -> int:
         """
-            Get the derivation order.
+            Get the maximum derivation order.
         
             Returns:
-                derivation order
+                maximum derivation order
         
         
         """
@@ -8560,16 +8555,6 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 Archimedes constant π
         
         
-        """
-        ...
-    def getReal(self) -> float:
-        """
-            Get the real value of the number.
-        
-            Returns:
-                real value
-        
-        
         """
         ...
     def getSecondDerivative(self) -> float:
@@ -8580,8 +8565,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 second derivative
         
             Also see:
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getValue`,
-                :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getFirstDerivative`
+        
+                  - :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getValue`
+                  - :meth:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2.getFirstDerivative`
+        
         
         
         """
@@ -8601,8 +8588,8 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
             Get a hashCode for the univariate derivative.
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.differentiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -8643,8 +8630,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8658,8 +8647,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8675,8 +8666,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8692,8 +8685,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8711,8 +8706,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8730,8 +8727,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -8860,7 +8859,7 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         """
         ...
     @typing.overload
-    def pow(self, double: float) -> 'UnivariateDerivative2':
+    def pow(self, t: org.hipparchus.CalculusFieldElement) -> org.hipparchus.CalculusFieldElement:
         """
             Compute a :sup:`x` where a is a double and x a :class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`
         
@@ -8887,21 +8886,13 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
             Returns:
                 this :sup:`n`
         
-            Power operation.
-        
-            Parameters:
-                e (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`): exponent
-        
-            Returns:
-                this :sup:`e`
-        
         
         """
         ...
     @typing.overload
-    def pow(self, int: int) -> 'UnivariateDerivative2': ...
+    def pow(self, double: float) -> 'UnivariateDerivative2': ...
     @typing.overload
-    def pow(self, univariateDerivative2: 'UnivariateDerivative2') -> 'UnivariateDerivative2': ...
+    def pow(self, int: int) -> 'UnivariateDerivative2': ...
     @typing.overload
     @staticmethod
     def pow(double: float, univariateDerivative2: 'UnivariateDerivative2') -> 'UnivariateDerivative2': ...
@@ -8916,18 +8907,10 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         """
         ...
     @typing.overload
-    def remainder(self, double: float) -> 'UnivariateDerivative2':
+    def remainder(self, double: float) -> org.hipparchus.CalculusFieldElement:
         """
             IEEE remainder operator.
         
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this - n × a where n is the closest integer to this/a
-        
-            IEEE remainder operator.
-        
             Parameters:
                 a (:class:`~org.hipparchus.analysis.differentiation.UnivariateDerivative2`): right hand side parameter of the operator
         
@@ -8939,16 +8922,6 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         ...
     @typing.overload
     def remainder(self, univariateDerivative2: 'UnivariateDerivative2') -> 'UnivariateDerivative2': ...
-    def rint(self) -> 'UnivariateDerivative2':
-        """
-            Get the whole number that is the nearest to the instance, or the even one if x is exactly half way between two integers.
-        
-            Returns:
-                a double number r such that r is an integer r - 0.5 ≤ this ≤ r + 0.5
-        
-        
-        """
-        ...
     def rootN(self, int: int) -> 'UnivariateDerivative2':
         """
             N :sup:`th` root.
@@ -8973,17 +8946,6 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
                 this × 2 :sup:`n`
         
         
-        """
-        ...
-    def sign(self) -> 'UnivariateDerivative2':
-        """
-            Compute the sign of the instance. The sign is -1 for negative numbers, +1 for positive numbers and 0 otherwise, for
-            Complex number, it is extended on the unit circle (equivalent to z/|z|, with special handling for 0 and NaN)
-        
-            Returns:
-                -1.0, -0.0, +0.0, +1.0 or NaN depending on sign of a
-        
-        
         """
         ...
     def sin(self) -> 'UnivariateDerivative2':
@@ -9018,17 +8980,19 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         
         """
         ...
-    @typing.overload
-    def subtract(self, double: float) -> 'UnivariateDerivative2':
+    def square(self) -> 'UnivariateDerivative2':
         """
-            '-' operator.
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
+            Compute this × this.
         
             Returns:
-                this-a
+                a new element representing this × this
         
+        
+        """
+        ...
+    @typing.overload
+    def subtract(self, double: float) -> org.hipparchus.CalculusFieldElement:
+        """
             Compute this - a.
         
             Parameters:
@@ -9109,17 +9073,20 @@ class UnivariateDerivative2(UnivariateDerivative['UnivariateDerivative2']):
         
         """
         ...
-    def ulp(self) -> 'UnivariateDerivative2':
+    def withValue(self, double: float) -> 'UnivariateDerivative2':
         """
-            Compute least significant bit (Unit in Last Position) for a number.
+            Description copied from interface: :meth:`~org.hipparchus.analysis.differentiation.Derivative.withValue`
+            Create a new object with new value (zeroth-order derivative, as passed as input) and same derivatives of order one and
+            above.
         
-            The :code:`ulp` function is a step function, hence all its derivatives are 0.
+            This default implementation is there so that no API gets broken by the next release, which is not a major one. Custom
+            inheritors should probably overwrite it.
         
-            Returns:
-                ulp(this)
+            Parameters:
+                value (double): zeroth-order derivative of new represented function
         
-            Since:
-                2.0
+            Returns:
+                new object with changed value
         
         
         """
@@ -9132,9 +9099,12 @@ class __module_protocol__(Protocol):
     DSCompiler: typing.Type[DSCompiler]
     DSFactory: typing.Type[DSFactory]
     Derivative: typing.Type[Derivative]
+    Derivative1: typing.Type[Derivative1]
     DerivativeStructure: typing.Type[DerivativeStructure]
+    DifferentialAlgebra: typing.Type[DifferentialAlgebra]
     FDSFactory: typing.Type[FDSFactory]
     FieldDerivative: typing.Type[FieldDerivative]
+    FieldDerivative1: typing.Type[FieldDerivative1]
     FieldDerivativeStructure: typing.Type[FieldDerivativeStructure]
     FieldGradient: typing.Type[FieldGradient]
     FieldGradientField: typing.Type[FieldGradientField]
diff --git a/org-stubs/hipparchus/analysis/function/__init__.pyi b/org-stubs/hipparchus/analysis/function/__init__.pyi
index 5e98ab86bba284982677dba999c490f4b334e4ab..136aa361545ab9f21f40ea72cd4e1f9a486b3387 100644
--- a/org-stubs/hipparchus/analysis/function/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/function/__init__.pyi
@@ -14,7 +14,8 @@ import typing
 
 class Abs(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Abs extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAbs extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Absolute value function.
     """
@@ -58,7 +59,8 @@ class Abs(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFuncti
 
 class Acos(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Acos extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAcos extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Arc-cosine function.
     """
@@ -102,7 +104,8 @@ class Acos(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Acosh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Acosh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAcosh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Hyperbolic arc-cosine function.
     """
@@ -146,7 +149,8 @@ class Acosh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Add(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Add extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classAdd extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Add the two operands.
     """
@@ -172,7 +176,8 @@ class Add(org.hipparchus.analysis.BivariateFunction):
 
 class Asin(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Asin extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAsin extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Arc-sine function.
     """
@@ -216,7 +221,8 @@ class Asin(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Asinh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Asinh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAsinh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Hyperbolic arc-sine function.
     """
@@ -260,7 +266,8 @@ class Asinh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Atan(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Atan extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAtan extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Arc-tangent function.
     """
@@ -304,7 +311,8 @@ class Atan(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Atan2(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Atan2 extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classAtan2 extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Arc-tangent function.
     """
@@ -330,7 +338,8 @@ class Atan2(org.hipparchus.analysis.BivariateFunction):
 
 class Atanh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Atanh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classAtanh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Hyperbolic arc-tangent function.
     """
@@ -374,7 +383,8 @@ class Atanh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Cbrt(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Cbrt extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classCbrt extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Cube root function.
     """
@@ -418,7 +428,8 @@ class Cbrt(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Ceil(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Ceil extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classCeil extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         :code:`ceil` function.
     """
@@ -462,7 +473,8 @@ class Ceil(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Constant(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Constant extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classConstant extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Constant function.
     """
@@ -506,7 +518,8 @@ class Constant(org.hipparchus.analysis.differentiation.UnivariateDifferentiableF
 
 class Cos(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Cos extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classCos extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Cosine function.
     """
@@ -550,7 +563,8 @@ class Cos(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFuncti
 
 class Cosh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Cosh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classCosh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Hyperbolic cosine function.
     """
@@ -594,7 +608,8 @@ class Cosh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Divide(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Divide extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classDivide extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Divide the first operand by the second.
     """
@@ -620,7 +635,8 @@ class Divide(org.hipparchus.analysis.BivariateFunction):
 
 class Exp(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Exp extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classExp extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Exponential function.
     """
@@ -664,7 +680,8 @@ class Exp(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFuncti
 
 class Expm1(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Expm1 extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classExpm1 extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         :code:`e :sup:`x` -1` function.
     """
@@ -708,7 +725,8 @@ class Expm1(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Floor(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Floor extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classFloor extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         :code:`floor` function.
     """
@@ -752,7 +770,8 @@ class Floor(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Gaussian(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Gaussian extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classGaussian extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         ` Gaussian <http://en.wikipedia.org/wiki/Gaussian_function>` function.
     """
@@ -778,7 +797,7 @@ class Gaussian(org.hipparchus.analysis.differentiation.UnivariateDifferentiableF
             Returns:
                 the value of the function.
         
-        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value (T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value(T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Compute the value for the function.
         
@@ -808,7 +827,8 @@ class Gaussian(org.hipparchus.analysis.differentiation.UnivariateDifferentiableF
 
 class HarmonicOscillator(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class HarmonicOscillator extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classHarmonicOscillator extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         ` simple harmonic oscillator <http://en.wikipedia.org/wiki/Harmonic_oscillator>` function.
     """
@@ -829,7 +849,7 @@ class HarmonicOscillator(org.hipparchus.analysis.differentiation.UnivariateDiffe
             Returns:
                 the value of the function.
         
-        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value (T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value(T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Compute the value for the function.
         
@@ -859,7 +879,8 @@ class HarmonicOscillator(org.hipparchus.analysis.differentiation.UnivariateDiffe
 
 class Identity(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Identity extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classIdentity extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Identity function.
     """
@@ -903,7 +924,8 @@ class Identity(org.hipparchus.analysis.differentiation.UnivariateDifferentiableF
 
 class Inverse(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Inverse extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classInverse extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Inverse function.
     """
@@ -947,7 +969,8 @@ class Inverse(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFu
 
 class Log(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Log extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classLog extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Natural logarithm function.
     """
@@ -991,7 +1014,8 @@ class Log(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFuncti
 
 class Log10(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Log10 extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classLog10 extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Base 10 logarithm function.
     """
@@ -1035,7 +1059,8 @@ class Log10(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Log1p(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Log1p extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classLog1p extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         :code:`log(1 + p)` function.
     """
@@ -1079,7 +1104,8 @@ class Log1p(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Logistic(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Logistic extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classLogistic extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         ` Generalised logistic <http://en.wikipedia.org/wiki/Generalised_logistic_function>` function.
     """
@@ -1127,7 +1153,8 @@ class Logistic(org.hipparchus.analysis.differentiation.UnivariateDifferentiableF
 
 class Logit(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Logit extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classLogit extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         ` Logit <http://en.wikipedia.org/wiki/Logit>` function. It is the inverse of the
         :class:`~org.hipparchus.analysis.function.Sigmoid` function.
@@ -1148,7 +1175,8 @@ class Logit(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Max(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Max extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classMax extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Maximum function.
     """
@@ -1174,7 +1202,8 @@ class Max(org.hipparchus.analysis.BivariateFunction):
 
 class Min(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Min extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classMin extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Minimum function.
     """
@@ -1200,7 +1229,8 @@ class Min(org.hipparchus.analysis.BivariateFunction):
 
 class Minus(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Minus extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classMinus extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Minus function.
     """
@@ -1244,7 +1274,8 @@ class Minus(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Multiply(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Multiply extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classMultiply extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Multiply the two operands.
     """
@@ -1270,7 +1301,8 @@ class Multiply(org.hipparchus.analysis.BivariateFunction):
 
 class Pow(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Pow extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classPow extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Power function.
     """
@@ -1296,7 +1328,8 @@ class Pow(org.hipparchus.analysis.BivariateFunction):
 
 class Power(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Power extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classPower extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Power function.
     """
@@ -1340,7 +1373,8 @@ class Power(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunc
 
 class Rint(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Rint extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classRint extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         :code:`rint` function.
     """
@@ -1384,7 +1418,8 @@ class Rint(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Sigmoid(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Sigmoid extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classSigmoid extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         ` Sigmoid <http://en.wikipedia.org/wiki/Sigmoid_function>` function. It is the inverse of the
         :class:`~org.hipparchus.analysis.function.Logit` function. A more flexible version, the generalised logistic, is
@@ -1410,7 +1445,7 @@ class Sigmoid(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFu
             Returns:
                 the value of the function.
         
-        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value (T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value(T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Compute the value for the function.
         
@@ -1440,7 +1475,8 @@ class Sigmoid(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFu
 
 class Sin(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Sin extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classSin extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Sine function.
     """
@@ -1484,14 +1520,14 @@ class Sin(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFuncti
 
 class Sinc(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Sinc extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classSinc extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         `Sinc <http://en.wikipedia.org/wiki/Sinc_function>` function, defined by
     
         .. code-block: java
         
-        
-           sinc(x) = 1            if x = 0,
+           sinc(x) = 1            if x = 0,
                      sin(x) / x   otherwise.
     """
     @typing.overload
@@ -1514,7 +1550,7 @@ class Sinc(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
             Returns:
                 the value of the function.
         
-        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value (T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value(T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Compute the value for the function.
         
@@ -1540,7 +1576,8 @@ class Sinc(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Sinh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Sinh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classSinh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Hyperbolic sine function.
     """
@@ -1584,7 +1621,8 @@ class Sinh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Sqrt(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Sqrt extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classSqrt extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Square-root function.
     """
@@ -1628,7 +1666,8 @@ class Sqrt(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class StepFunction(org.hipparchus.analysis.UnivariateFunction):
     """
-    public class StepFunction extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.UnivariateFunction`
+    public classStepFunction extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.UnivariateFunction`
     
         ` Step function <http://en.wikipedia.org/wiki/Step_function>`.
     """
@@ -1653,7 +1692,8 @@ class StepFunction(org.hipparchus.analysis.UnivariateFunction):
 
 class Subtract(org.hipparchus.analysis.BivariateFunction):
     """
-    public class Subtract extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classSubtract extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Subtract the second operand from the first.
     """
@@ -1679,7 +1719,8 @@ class Subtract(org.hipparchus.analysis.BivariateFunction):
 
 class Tan(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Tan extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classTan extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Tangent function.
     """
@@ -1723,7 +1764,8 @@ class Tan(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFuncti
 
 class Tanh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction):
     """
-    public class Tanh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
+    public classTanh extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`
     
         Hyperbolic tangent function.
     """
@@ -1767,7 +1809,8 @@ class Tanh(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunct
 
 class Ulp(org.hipparchus.analysis.UnivariateFunction):
     """
-    public class Ulp extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.UnivariateFunction`
+    public classUlp extends :class:`~org.hipparchus.analysis.function.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.UnivariateFunction`
     
         :code:`ulp` function.
     """
diff --git a/org-stubs/hipparchus/analysis/integration/__init__.pyi b/org-stubs/hipparchus/analysis/integration/__init__.pyi
index 4a063eef32050be3c8aa3a44268187f1088d57d8..41e521f31f6efe0d856557bc17eee59b54aab37c 100644
--- a/org-stubs/hipparchus/analysis/integration/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/integration/__init__.pyi
@@ -15,7 +15,7 @@ import typing
 _FieldUnivariateIntegrator__T = typing.TypeVar('_FieldUnivariateIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldUnivariateIntegrator(typing.Generic[_FieldUnivariateIntegrator__T]):
     """
-    public interface FieldUnivariateIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceFieldUnivariateIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         Interface for univariate real integration algorithms.
     
@@ -86,7 +86,7 @@ class FieldUnivariateIntegrator(typing.Generic[_FieldUnivariateIntegrator__T]):
 
 class UnivariateIntegrator:
     """
-    public interface UnivariateIntegrator
+    public interfaceUnivariateIntegrator
     
         Interface for univariate real integration algorithms.
     """
@@ -155,7 +155,8 @@ class UnivariateIntegrator:
 _BaseAbstractFieldUnivariateIntegrator__T = typing.TypeVar('_BaseAbstractFieldUnivariateIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class BaseAbstractFieldUnivariateIntegrator(FieldUnivariateIntegrator[_BaseAbstractFieldUnivariateIntegrator__T], typing.Generic[_BaseAbstractFieldUnivariateIntegrator__T]):
     """
-    public abstract class BaseAbstractFieldUnivariateIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.integration.FieldUnivariateIntegrator`<T>
+    public abstract classBaseAbstractFieldUnivariateIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.integration.FieldUnivariateIntegrator`<T>
     
         Provide a default implementation for several generic functions.
     
@@ -169,7 +170,9 @@ class BaseAbstractFieldUnivariateIntegrator(FieldUnivariateIntegrator[_BaseAbstr
         Default absolute accuracy.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -180,7 +183,9 @@ class BaseAbstractFieldUnivariateIntegrator(FieldUnivariateIntegrator[_BaseAbstr
         Default relative accuracy.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -191,7 +196,9 @@ class BaseAbstractFieldUnivariateIntegrator(FieldUnivariateIntegrator[_BaseAbstr
         Default minimal iteration count.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -202,7 +209,9 @@ class BaseAbstractFieldUnivariateIntegrator(FieldUnivariateIntegrator[_BaseAbstr
         Default maximal iteration count.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -295,7 +304,8 @@ class BaseAbstractFieldUnivariateIntegrator(FieldUnivariateIntegrator[_BaseAbstr
 
 class BaseAbstractUnivariateIntegrator(UnivariateIntegrator):
     """
-    public abstract class BaseAbstractUnivariateIntegrator extends :class:`~org.hipparchus.analysis.integration.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.integration.UnivariateIntegrator`
+    public abstract classBaseAbstractUnivariateIntegrator extends :class:`~org.hipparchus.analysis.integration.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.integration.UnivariateIntegrator`
     
         Provide a default implementation for several generic functions.
     """
@@ -306,7 +316,9 @@ class BaseAbstractUnivariateIntegrator(UnivariateIntegrator):
         Default absolute accuracy.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -317,7 +329,9 @@ class BaseAbstractUnivariateIntegrator(UnivariateIntegrator):
         Default relative accuracy.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -328,7 +342,9 @@ class BaseAbstractUnivariateIntegrator(UnivariateIntegrator):
         Default minimal iteration count.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -339,7 +355,9 @@ class BaseAbstractUnivariateIntegrator(UnivariateIntegrator):
         Default maximal iteration count.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -432,7 +450,7 @@ class BaseAbstractUnivariateIntegrator(UnivariateIntegrator):
 _FieldMidPointIntegrator__T = typing.TypeVar('_FieldMidPointIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldMidPointIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldMidPointIntegrator__T], typing.Generic[_FieldMidPointIntegrator__T]):
     """
-    public class FieldMidPointIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
+    public classFieldMidPointIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
     
         Implements the ` Midpoint Rule <http://en.wikipedia.org/wiki/Midpoint_method>` for integration of real univariate
         functions. For reference, see **Numerical Mathematics**, ISBN 0387989595, chapter 9.2.
@@ -449,7 +467,9 @@ class FieldMidPointIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldMidPoi
         Maximum number of iterations for midpoint.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -463,7 +483,7 @@ class FieldMidPointIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldMidPoi
 _FieldRombergIntegrator__T = typing.TypeVar('_FieldRombergIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldRombergIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldRombergIntegrator__T], typing.Generic[_FieldRombergIntegrator__T]):
     """
-    public class FieldRombergIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
+    public classFieldRombergIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
     
         Implements the ` Romberg Algorithm <http://mathworld.wolfram.com/RombergIntegration.html>` for integration of real
         univariate functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 3.
@@ -481,7 +501,9 @@ class FieldRombergIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldRomberg
         Maximal number of iterations for Romberg.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -495,7 +517,7 @@ class FieldRombergIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldRomberg
 _FieldSimpsonIntegrator__T = typing.TypeVar('_FieldSimpsonIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldSimpsonIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldSimpsonIntegrator__T], typing.Generic[_FieldSimpsonIntegrator__T]):
     """
-    public class FieldSimpsonIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
+    public classFieldSimpsonIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
     
         Implements ` Simpson's Rule <http://mathworld.wolfram.com/SimpsonsRule.html>` for integration of real univariate
         functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 3.
@@ -512,7 +534,9 @@ class FieldSimpsonIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldSimpson
         Maximal number of iterations for Simpson.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -526,7 +550,7 @@ class FieldSimpsonIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldSimpson
 _FieldTrapezoidIntegrator__T = typing.TypeVar('_FieldTrapezoidIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldTrapezoidIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldTrapezoidIntegrator__T], typing.Generic[_FieldTrapezoidIntegrator__T]):
     """
-    public class FieldTrapezoidIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
+    public classFieldTrapezoidIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
     
         Implements the ` Trapezoid Rule <http://mathworld.wolfram.com/TrapezoidalRule.html>` for integration of real univariate
         functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 3.
@@ -543,7 +567,9 @@ class FieldTrapezoidIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldTrape
         Maximum number of iterations for trapezoid.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -557,7 +583,7 @@ class FieldTrapezoidIntegrator(BaseAbstractFieldUnivariateIntegrator[_FieldTrape
 _IterativeLegendreFieldGaussIntegrator__T = typing.TypeVar('_IterativeLegendreFieldGaussIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class IterativeLegendreFieldGaussIntegrator(BaseAbstractFieldUnivariateIntegrator[_IterativeLegendreFieldGaussIntegrator__T], typing.Generic[_IterativeLegendreFieldGaussIntegrator__T]):
     """
-    public class IterativeLegendreFieldGaussIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
+    public classIterativeLegendreFieldGaussIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator`<T>
     
         This algorithm divides the integration interval into equally-sized sub-interval and on each of them performs a `
         Legendre-Gauss <http://mathworld.wolfram.com/Legendre-GaussQuadrature.html>` quadrature. Because of its *non-adaptive*
@@ -579,7 +605,7 @@ class IterativeLegendreFieldGaussIntegrator(BaseAbstractFieldUnivariateIntegrato
 
 class IterativeLegendreGaussIntegrator(BaseAbstractUnivariateIntegrator):
     """
-    public class IterativeLegendreGaussIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
+    public classIterativeLegendreGaussIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
     
         This algorithm divides the integration interval into equally-sized sub-interval and on each of them performs a `
         Legendre-Gauss <http://mathworld.wolfram.com/Legendre-GaussQuadrature.html>` quadrature. Because of its *non-adaptive*
@@ -598,7 +624,7 @@ class IterativeLegendreGaussIntegrator(BaseAbstractUnivariateIntegrator):
 
 class MidPointIntegrator(BaseAbstractUnivariateIntegrator):
     """
-    public class MidPointIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
+    public classMidPointIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
     
         Implements the ` Midpoint Rule <http://en.wikipedia.org/wiki/Midpoint_method>` for integration of real univariate
         functions. For reference, see **Numerical Mathematics**, ISBN 0387989595, chapter 9.2.
@@ -612,7 +638,9 @@ class MidPointIntegrator(BaseAbstractUnivariateIntegrator):
         Maximum number of iterations for midpoint.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -625,7 +653,7 @@ class MidPointIntegrator(BaseAbstractUnivariateIntegrator):
 
 class RombergIntegrator(BaseAbstractUnivariateIntegrator):
     """
-    public class RombergIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
+    public classRombergIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
     
         Implements the ` Romberg Algorithm <http://mathworld.wolfram.com/RombergIntegration.html>` for integration of real
         univariate functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 3.
@@ -640,7 +668,9 @@ class RombergIntegrator(BaseAbstractUnivariateIntegrator):
         Maximal number of iterations for Romberg.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -653,7 +683,7 @@ class RombergIntegrator(BaseAbstractUnivariateIntegrator):
 
 class SimpsonIntegrator(BaseAbstractUnivariateIntegrator):
     """
-    public class SimpsonIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
+    public classSimpsonIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
     
         Implements ` Simpson's Rule <http://mathworld.wolfram.com/SimpsonsRule.html>` for integration of real univariate
         functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 3.
@@ -667,7 +697,9 @@ class SimpsonIntegrator(BaseAbstractUnivariateIntegrator):
         Maximal number of iterations for Simpson.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -680,7 +712,7 @@ class SimpsonIntegrator(BaseAbstractUnivariateIntegrator):
 
 class TrapezoidIntegrator(BaseAbstractUnivariateIntegrator):
     """
-    public class TrapezoidIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
+    public classTrapezoidIntegrator extends :class:`~org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator`
     
         Implements the ` Trapezoid Rule <http://mathworld.wolfram.com/TrapezoidalRule.html>` for integration of real univariate
         functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 3.
@@ -694,7 +726,9 @@ class TrapezoidIntegrator(BaseAbstractUnivariateIntegrator):
         Maximum number of iterations for trapezoid.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
diff --git a/org-stubs/hipparchus/analysis/integration/gauss/__init__.pyi b/org-stubs/hipparchus/analysis/integration/gauss/__init__.pyi
index 456cbf740b7d3af17310d14110955db367710c12..2ba3349f83d7fa17e8344ee6b549856b218bab11 100644
--- a/org-stubs/hipparchus/analysis/integration/gauss/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/integration/gauss/__init__.pyi
@@ -16,7 +16,7 @@ import typing
 _FieldGaussIntegrator__T = typing.TypeVar('_FieldGaussIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldGaussIntegrator(typing.Generic[_FieldGaussIntegrator__T]):
     """
-    public class FieldGaussIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldGaussIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class that implements the Gaussian rule for
         :meth:`~org.hipparchus.analysis.integration.gauss.FieldGaussIntegrator.integrate` a weighted function.
@@ -70,7 +70,7 @@ class FieldGaussIntegrator(typing.Generic[_FieldGaussIntegrator__T]):
 _FieldGaussIntegratorFactory__T = typing.TypeVar('_FieldGaussIntegratorFactory__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldGaussIntegratorFactory(typing.Generic[_FieldGaussIntegratorFactory__T]):
     """
-    public class FieldGaussIntegratorFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldGaussIntegratorFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class that provides different ways to compute the nodes and weights to be used by the
         :class:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator`.
@@ -89,7 +89,7 @@ class FieldGaussIntegratorFactory(typing.Generic[_FieldGaussIntegratorFactory__T
 _FieldRuleFactory__T = typing.TypeVar('_FieldRuleFactory__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldRuleFactory(typing.Generic[_FieldRuleFactory__T]):
     """
-    public interface FieldRuleFactory<T extends :class:`~org.hipparchus.FieldElement`<T>>
+    public interfaceFieldRuleFactory<T extends :class:`~org.hipparchus.FieldElement`<T>>
     
         Interface for rules that determines the integration nodes and their weights.
     
@@ -100,7 +100,7 @@ class FieldRuleFactory(typing.Generic[_FieldRuleFactory__T]):
 
 class GaussIntegrator:
     """
-    public class GaussIntegrator extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classGaussIntegrator extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class that implements the Gaussian rule for :meth:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator.integrate`
         a weighted function.
@@ -164,7 +164,7 @@ class GaussIntegrator:
 
 class GaussIntegratorFactory:
     """
-    public class GaussIntegratorFactory extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classGaussIntegratorFactory extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class that provides different ways to compute the nodes and weights to be used by the
         :class:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator`.
@@ -176,7 +176,9 @@ class GaussIntegratorFactory:
         Number of digits for Legendre high precision.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -230,7 +232,7 @@ class GaussIntegratorFactory:
             Returns:
                 a Gauss-Legendre integrator.
         
-        public :class:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator` legendre (int numberOfPoints, double lowerBound, double upperBound) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public :class:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator` legendre(int numberOfPoints, double lowerBound, double upperBound) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Creates a Gauss-Legendre integrator of the given order. The call to the
             :meth:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator.integrate` method will perform an integration on the
@@ -259,7 +261,7 @@ class GaussIntegratorFactory:
 
 class RuleFactory:
     """
-    public interface RuleFactory
+    public interfaceRuleFactory
     
         Interface for rules that determines the integration nodes and their weights.
     
@@ -270,7 +272,8 @@ class RuleFactory:
 
 class AbstractRuleFactory(RuleFactory):
     """
-    public abstract class AbstractRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.integration.gauss.RuleFactory`
+    public abstract classAbstractRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.integration.gauss.RuleFactory`
     
         Base class for rules that determines the integration nodes and their weights. Subclasses must implement the
         :meth:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory.computeRule` method.
@@ -284,7 +287,8 @@ class AbstractRuleFactory(RuleFactory):
 _FieldAbstractRuleFactory__T = typing.TypeVar('_FieldAbstractRuleFactory__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldAbstractRuleFactory(FieldRuleFactory[_FieldAbstractRuleFactory__T], typing.Generic[_FieldAbstractRuleFactory__T]):
     """
-    public abstract class FieldAbstractRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.integration.gauss.FieldRuleFactory`<T>
+    public abstract classFieldAbstractRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.integration.gauss.FieldRuleFactory`<T>
     
         Base class for rules that determines the integration nodes and their weights. Subclasses must implement the
         :meth:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory.computeRule` method.
@@ -299,7 +303,7 @@ class FieldAbstractRuleFactory(FieldRuleFactory[_FieldAbstractRuleFactory__T], t
 _SymmetricFieldGaussIntegrator__T = typing.TypeVar('_SymmetricFieldGaussIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class SymmetricFieldGaussIntegrator(FieldGaussIntegrator[_SymmetricFieldGaussIntegrator__T], typing.Generic[_SymmetricFieldGaussIntegrator__T]):
     """
-    public class SymmetricFieldGaussIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldGaussIntegrator`<T>
+    public classSymmetricFieldGaussIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldGaussIntegrator`<T>
     
         This class's implements :meth:`~org.hipparchus.analysis.integration.gauss.SymmetricFieldGaussIntegrator.integrate`
         method assuming that the integral is symmetric about 0. This allows to reduce numerical errors.
@@ -315,7 +319,7 @@ class SymmetricFieldGaussIntegrator(FieldGaussIntegrator[_SymmetricFieldGaussInt
 
 class SymmetricGaussIntegrator(GaussIntegrator):
     """
-    public class SymmetricGaussIntegrator extends :class:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator`
+    public classSymmetricGaussIntegrator extends :class:`~org.hipparchus.analysis.integration.gauss.GaussIntegrator`
     
         This class's implements :meth:`~org.hipparchus.analysis.integration.gauss.SymmetricGaussIntegrator.integrate` method
         assuming that the integral is symmetric about 0. This allows to reduce numerical errors.
@@ -347,7 +351,7 @@ class SymmetricGaussIntegrator(GaussIntegrator):
 _ConvertingRuleFactory__T = typing.TypeVar('_ConvertingRuleFactory__T', bound=org.hipparchus.FieldElement)  # <T>
 class ConvertingRuleFactory(AbstractRuleFactory, typing.Generic[_ConvertingRuleFactory__T]):
     """
-    public class ConvertingRuleFactory<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
+    public classConvertingRuleFactory<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
     
         Factory converting :class:`~org.hipparchus.CalculusFieldElement`
         :class:`~org.hipparchus.analysis.integration.gauss.FieldRuleFactory` into
@@ -361,7 +365,7 @@ class ConvertingRuleFactory(AbstractRuleFactory, typing.Generic[_ConvertingRuleF
 _FieldHermiteRuleFactory__T = typing.TypeVar('_FieldHermiteRuleFactory__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldHermiteRuleFactory(FieldAbstractRuleFactory[_FieldHermiteRuleFactory__T], typing.Generic[_FieldHermiteRuleFactory__T]):
     """
-    public class FieldHermiteRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory`<T>
+    public classFieldHermiteRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory`<T>
     
         Factory that creates a ` Gauss-type quadrature rule using Hermite polynomials
         <http://en.wikipedia.org/wiki/Gauss-Hermite_quadrature>` of the first kind. Such a quadrature rule allows the
@@ -383,7 +387,7 @@ class FieldHermiteRuleFactory(FieldAbstractRuleFactory[_FieldHermiteRuleFactory_
 _FieldLaguerreRuleFactory__T = typing.TypeVar('_FieldLaguerreRuleFactory__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldLaguerreRuleFactory(FieldAbstractRuleFactory[_FieldLaguerreRuleFactory__T], typing.Generic[_FieldLaguerreRuleFactory__T]):
     """
-    public class FieldLaguerreRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory`<T>
+    public classFieldLaguerreRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory`<T>
     
         Factory that creates Gauss-type quadrature rule using Laguerre polynomials.
     
@@ -391,7 +395,8 @@ class FieldLaguerreRuleFactory(FieldAbstractRuleFactory[_FieldLaguerreRuleFactor
             2.0
     
         Also see:
-            `Gauss-Laguerre quadrature (Wikipedia) <http://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature>`
+    
+              - `Gauss-Laguerre quadrature (Wikipedia) <http://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature>`
     """
     def __init__(self, field: org.hipparchus.Field[_FieldLaguerreRuleFactory__T]): ...
     def computeRule(self, int: int) -> org.hipparchus.util.Pair[typing.MutableSequence[_FieldLaguerreRuleFactory__T], typing.MutableSequence[_FieldLaguerreRuleFactory__T]]: ...
@@ -399,7 +404,7 @@ class FieldLaguerreRuleFactory(FieldAbstractRuleFactory[_FieldLaguerreRuleFactor
 _FieldLegendreRuleFactory__T = typing.TypeVar('_FieldLegendreRuleFactory__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldLegendreRuleFactory(FieldAbstractRuleFactory[_FieldLegendreRuleFactory__T], typing.Generic[_FieldLegendreRuleFactory__T]):
     """
-    public class FieldLegendreRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory`<T>
+    public classFieldLegendreRuleFactory<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.integration.gauss.FieldAbstractRuleFactory`<T>
     
         Factory that creates Gauss-type quadrature rule using Legendre polynomials. In this implementation, the lower and upper
         bounds of the natural interval of integration are -1 and 1, respectively. The Legendre polynomials are evaluated using
@@ -414,7 +419,7 @@ class FieldLegendreRuleFactory(FieldAbstractRuleFactory[_FieldLegendreRuleFactor
 
 class HermiteRuleFactory(AbstractRuleFactory):
     """
-    public class HermiteRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
+    public classHermiteRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
     
         Factory that creates a ` Gauss-type quadrature rule using Hermite polynomials
         <http://en.wikipedia.org/wiki/Gauss-Hermite_quadrature>` of the first kind. Such a quadrature rule allows the
@@ -429,18 +434,19 @@ class HermiteRuleFactory(AbstractRuleFactory):
 
 class LaguerreRuleFactory(AbstractRuleFactory):
     """
-    public class LaguerreRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
+    public classLaguerreRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
     
         Factory that creates Gauss-type quadrature rule using Laguerre polynomials.
     
         Also see:
-            `Gauss-Laguerre quadrature (Wikipedia) <http://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature>`
+    
+              - `Gauss-Laguerre quadrature (Wikipedia) <http://en.wikipedia.org/wiki/Gauss%E2%80%93Laguerre_quadrature>`
     """
     def __init__(self): ...
 
 class LegendreRuleFactory(AbstractRuleFactory):
     """
-    public class LegendreRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
+    public classLegendreRuleFactory extends :class:`~org.hipparchus.analysis.integration.gauss.AbstractRuleFactory`
     
         Factory that creates Gauss-type quadrature rule using Legendre polynomials. In this implementation, the lower and upper
         bounds of the natural interval of integration are -1 and 1, respectively. The Legendre polynomials are evaluated using
diff --git a/org-stubs/hipparchus/analysis/interpolation/__init__.pyi b/org-stubs/hipparchus/analysis/interpolation/__init__.pyi
index 5d68f80f016e54dd844b0c50eb0f674dd7accacf..dd902827caf7799168468a9191534b3851a6c0ea 100644
--- a/org-stubs/hipparchus/analysis/interpolation/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/interpolation/__init__.pyi
@@ -18,7 +18,8 @@ import typing
 
 class BicubicInterpolatingFunction(org.hipparchus.analysis.BivariateFunction):
     """
-    public class BicubicInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`
+    public classBicubicInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`
     
         Function that implements the ` bicubic spline interpolation <http://en.wikipedia.org/wiki/Bicubic_interpolation>`.
     """
@@ -41,7 +42,8 @@ class BicubicInterpolatingFunction(org.hipparchus.analysis.BivariateFunction):
 
 class BilinearInterpolatingFunction(org.hipparchus.analysis.BivariateFunction, org.hipparchus.analysis.FieldBivariateFunction, java.io.Serializable):
     """
-    public class BilinearInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`, :class:`~org.hipparchus.analysis.FieldBivariateFunction`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBilinearInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`, :class:`~org.hipparchus.analysis.FieldBivariateFunction`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Interpolate grid data using bi-linear interpolation.
     
@@ -51,7 +53,8 @@ class BilinearInterpolatingFunction(org.hipparchus.analysis.BivariateFunction, o
             1.4
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], doubleArray3: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]): ...
     def getXInf(self) -> float:
@@ -138,7 +141,7 @@ class BilinearInterpolatingFunction(org.hipparchus.analysis.BivariateFunction, o
 
 class BivariateGridInterpolator:
     """
-    public interface BivariateGridInterpolator
+    public interfaceBivariateGridInterpolator
     
         Interface representing a bivariate real interpolating function where the sample points must be specified on a regular
         grid.
@@ -148,7 +151,7 @@ class BivariateGridInterpolator:
 _FieldHermiteInterpolator__T = typing.TypeVar('_FieldHermiteInterpolator__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldHermiteInterpolator(typing.Generic[_FieldHermiteInterpolator__T]):
     """
-    public class FieldHermiteInterpolator<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldHermiteInterpolator<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Polynomial interpolator using both sample values and sample derivatives.
     
@@ -167,7 +170,7 @@ class FieldHermiteInterpolator(typing.Generic[_FieldHermiteInterpolator__T]):
 
 class FieldUnivariateInterpolator:
     """
-    public interface FieldUnivariateInterpolator
+    public interfaceFieldUnivariateInterpolator
     
         Interface representing a univariate field interpolating function.
     
@@ -179,7 +182,8 @@ class FieldUnivariateInterpolator:
 
 class GridAxis(java.io.Serializable):
     """
-    public class GridAxis extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classGridAxis extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Helper for finding interpolation nodes along one axis of grid data.
     
@@ -199,7 +203,8 @@ class GridAxis(java.io.Serializable):
             1.4
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], int: int): ...
     def getN(self) -> int:
@@ -281,7 +286,8 @@ class GridAxis(java.io.Serializable):
 
 class HermiteInterpolator(org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction):
     """
-    public class HermiteInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction`
+    public classHermiteInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableVectorFunction`
     
         Polynomial interpolator using both sample values and sample derivatives.
     
@@ -305,7 +311,7 @@ class HermiteInterpolator(org.hipparchus.analysis.differentiation.UnivariateDiff
 
 class InterpolatingMicrosphere:
     """
-    public class InterpolatingMicrosphere extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classInterpolatingMicrosphere extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Utility class for the :class:`~org.hipparchus.analysis.interpolation.MicrosphereProjectionInterpolator` algorithm.
     """
@@ -366,7 +372,7 @@ class InterpolatingMicrosphere:
 
 class MultivariateInterpolator:
     """
-    public interface MultivariateInterpolator
+    public interfaceMultivariateInterpolator
     
         Interface representing a univariate real interpolating function.
     """
@@ -374,7 +380,8 @@ class MultivariateInterpolator:
 
 class PiecewiseBicubicSplineInterpolatingFunction(org.hipparchus.analysis.BivariateFunction, org.hipparchus.analysis.FieldBivariateFunction):
     """
-    public class PiecewiseBicubicSplineInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.BivariateFunction`, :class:`~org.hipparchus.analysis.FieldBivariateFunction`
+    public classPiecewiseBicubicSplineInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.BivariateFunction`, :class:`~org.hipparchus.analysis.FieldBivariateFunction`
     
         Function that implements the `bicubic spline <http://www.paulinternet.nl/?page=bicubic>` interpolation. This
         implementation currently uses :class:`~org.hipparchus.analysis.interpolation.AkimaSplineInterpolator` as the underlying
@@ -404,7 +411,8 @@ class PiecewiseBicubicSplineInterpolatingFunction(org.hipparchus.analysis.Bivari
 
 class TricubicInterpolatingFunction(org.hipparchus.analysis.TrivariateFunction):
     """
-    public class TricubicInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.TrivariateFunction`
+    public classTricubicInterpolatingFunction extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.TrivariateFunction`
     
         Function that implements the ` tricubic spline interpolation <http://en.wikipedia.org/wiki/Tricubic_interpolation>`, as
         proposed in
@@ -436,7 +444,7 @@ class TricubicInterpolatingFunction(org.hipparchus.analysis.TrivariateFunction):
 
 class TrivariateGridInterpolator:
     """
-    public interface TrivariateGridInterpolator
+    public interfaceTrivariateGridInterpolator
     
         Interface representing a trivariate real interpolating function where the sample points must be specified on a regular
         grid.
@@ -445,7 +453,7 @@ class TrivariateGridInterpolator:
 
 class UnivariateInterpolator:
     """
-    public interface UnivariateInterpolator
+    public interfaceUnivariateInterpolator
     
         Interface representing a univariate real interpolating function.
     """
@@ -453,11 +461,12 @@ class UnivariateInterpolator:
 
 class AkimaSplineInterpolator(UnivariateInterpolator, FieldUnivariateInterpolator):
     """
-    public class AkimaSplineInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.FieldUnivariateInterpolator`
+    public classAkimaSplineInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.FieldUnivariateInterpolator`
     
         Computes a cubic spline interpolation for the data set using the Akima algorithm, as originally formulated by Hiroshi
-        Akima in his 1970 paper "A New Method of Interpolation and Smooth Curve Fitting Based on Local Procedures." J. ACM 17, 4
-        (October 1970), 589-602. DOI=10.1145/321607.321609 http://doi.acm.org/10.1145/321607.321609
+        Akima in his 1970 paper `A New Method of Interpolation and Smooth Curve Fitting Based on Local Procedures.
+        <http://doi.acm.org/10.1145/321607.321609>` J. ACM 17, 4 (October 1970), 589-602. DOI=10.1145/321607.321609
     
         This implementation is based on the Akima implementation in the CubicSpline class in the Math.NET Numerics library. The
         method referenced is CubicSpline.InterpolateAkimaSorted
@@ -479,7 +488,8 @@ class AkimaSplineInterpolator(UnivariateInterpolator, FieldUnivariateInterpolato
 
 class BicubicInterpolator(BivariateGridInterpolator):
     """
-    public class BicubicInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.BivariateGridInterpolator`
+    public classBicubicInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.BivariateGridInterpolator`
     
         Generates a :class:`~org.hipparchus.analysis.interpolation.BicubicInterpolatingFunction`.
     
@@ -495,7 +505,8 @@ class BicubicInterpolator(BivariateGridInterpolator):
 
 class BilinearInterpolator(BivariateGridInterpolator):
     """
-    public class BilinearInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.BivariateGridInterpolator`
+    public classBilinearInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.BivariateGridInterpolator`
     
         Interpolate grid data using bi-linear interpolation.
     
@@ -507,7 +518,8 @@ class BilinearInterpolator(BivariateGridInterpolator):
 
 class DividedDifferenceInterpolator(UnivariateInterpolator, java.io.Serializable):
     """
-    public class DividedDifferenceInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classDividedDifferenceInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Implements the ` Divided Difference Algorithm
         <http://mathworld.wolfram.com/NewtonsDividedDifferenceInterpolationFormula.html>` for interpolation of real univariate
@@ -517,14 +529,15 @@ class DividedDifferenceInterpolator(UnivariateInterpolator, java.io.Serializable
         interface to it.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def interpolate(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.analysis.polynomials.PolynomialFunctionNewtonForm: ...
 
 class InterpolatingMicrosphere2D(InterpolatingMicrosphere):
     """
-    public class InterpolatingMicrosphere2D extends :class:`~org.hipparchus.analysis.interpolation.InterpolatingMicrosphere`
+    public classInterpolatingMicrosphere2D extends :class:`~org.hipparchus.analysis.interpolation.InterpolatingMicrosphere`
     
         Utility class for the :class:`~org.hipparchus.analysis.interpolation.MicrosphereProjectionInterpolator` algorithm. For
         2D interpolation, this class constructs the microsphere as a series of evenly spaced facets (rather than generating
@@ -548,7 +561,8 @@ class InterpolatingMicrosphere2D(InterpolatingMicrosphere):
 
 class LinearInterpolator(UnivariateInterpolator, FieldUnivariateInterpolator):
     """
-    public class LinearInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.FieldUnivariateInterpolator`
+    public classLinearInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.FieldUnivariateInterpolator`
     
         Implements a linear function for interpolation of real univariate functions.
     """
@@ -561,7 +575,8 @@ class LinearInterpolator(UnivariateInterpolator, FieldUnivariateInterpolator):
 
 class LoessInterpolator(UnivariateInterpolator, java.io.Serializable):
     """
-    public class LoessInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classLoessInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Implements the ` Local Regression Algorithm <http://en.wikipedia.org/wiki/Local_regression>` (also Loess, Lowess) for
         interpolation of real univariate functions.
@@ -573,7 +588,8 @@ class LoessInterpolator(UnivariateInterpolator, java.io.Serializable):
         on the obtained loess fit.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     DEFAULT_BANDWIDTH: typing.ClassVar[float] = ...
     """
@@ -582,7 +598,9 @@ class LoessInterpolator(UnivariateInterpolator, java.io.Serializable):
         Default value of the bandwidth parameter.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -593,7 +611,9 @@ class LoessInterpolator(UnivariateInterpolator, java.io.Serializable):
         Default value of the number of robustness iterations.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -604,7 +624,9 @@ class LoessInterpolator(UnivariateInterpolator, java.io.Serializable):
         Default value for accuracy.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -622,7 +644,8 @@ class LoessInterpolator(UnivariateInterpolator, java.io.Serializable):
 
 class MicrosphereProjectionInterpolator(MultivariateInterpolator):
     """
-    public class MicrosphereProjectionInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.MultivariateInterpolator`
+    public classMicrosphereProjectionInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.MultivariateInterpolator`
     
         Interpolator that implements the algorithm described in *William Dudziak*'s `MS thesis
         <http://www.dudziak.com/microsphere.pdf>`.
@@ -635,7 +658,8 @@ class MicrosphereProjectionInterpolator(MultivariateInterpolator):
 
 class NevilleInterpolator(UnivariateInterpolator, java.io.Serializable):
     """
-    public class NevilleInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classNevilleInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`, :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Implements the ` Neville's Algorithm <http://mathworld.wolfram.com/NevillesAlgorithm.html>` for interpolation of real
         univariate functions. For reference, see **Introduction to Numerical Analysis**, ISBN 038795452X, chapter 2.
@@ -644,14 +668,16 @@ class NevilleInterpolator(UnivariateInterpolator, java.io.Serializable):
         interface to it.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def interpolate(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.analysis.polynomials.PolynomialFunctionLagrangeForm: ...
 
 class PiecewiseBicubicSplineInterpolator(BivariateGridInterpolator):
     """
-    public class PiecewiseBicubicSplineInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.BivariateGridInterpolator`
+    public classPiecewiseBicubicSplineInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.BivariateGridInterpolator`
     
         Generates a piecewise-bicubic interpolating function.
     """
@@ -668,7 +694,8 @@ class SplineInterpolator(UnivariateInterpolator, FieldUnivariateInterpolator):
 
 class TricubicInterpolator(TrivariateGridInterpolator):
     """
-    public class TricubicInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.TrivariateGridInterpolator`
+    public classTricubicInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.TrivariateGridInterpolator`
     
         Generates a tricubic interpolating function.
     """
@@ -677,7 +704,8 @@ class TricubicInterpolator(TrivariateGridInterpolator):
 
 class UnivariatePeriodicInterpolator(UnivariateInterpolator):
     """
-    public class UnivariatePeriodicInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`
+    public classUnivariatePeriodicInterpolator extends :class:`~org.hipparchus.analysis.interpolation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator`
     
         Adapter for classes implementing the :class:`~org.hipparchus.analysis.interpolation.UnivariateInterpolator` interface.
         The data to be interpolated is assumed to be periodic. Thus values that are outside of the range can be passed to the
@@ -691,7 +719,9 @@ class UnivariatePeriodicInterpolator(UnivariateInterpolator):
         Default number of extension points of the samples array.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
diff --git a/org-stubs/hipparchus/analysis/polynomials/__init__.pyi b/org-stubs/hipparchus/analysis/polynomials/__init__.pyi
index ac35db1bc1752b3cdf0b3d85ed57b4b36156d540..568b8ce4b20e3dc3c488694c59439908acf3f676 100644
--- a/org-stubs/hipparchus/analysis/polynomials/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/polynomials/__init__.pyi
@@ -18,7 +18,8 @@ import typing
 _FieldPolynomialFunction__T = typing.TypeVar('_FieldPolynomialFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldPolynomialFunction(org.hipparchus.analysis.CalculusFieldUnivariateFunction[_FieldPolynomialFunction__T], typing.Generic[_FieldPolynomialFunction__T]):
     """
-    public class FieldPolynomialFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.CalculusFieldUnivariateFunction`<T>
+    public classFieldPolynomialFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.CalculusFieldUnivariateFunction`<T>
     
         Immutable representation of a real polynomial function with real coefficients.
     
@@ -109,7 +110,9 @@ class FieldPolynomialFunction(org.hipparchus.analysis.CalculusFieldUnivariateFun
                 the value of the polynomial at the given point.
         
             Also see:
-                :meth:`~org.hipparchus.analysis.UnivariateFunction.value`
+        
+                  - :meth:`~org.hipparchus.analysis.UnivariateFunction.value`
+        
         
             Compute the value of the function for the given argument.
         
@@ -128,7 +131,9 @@ class FieldPolynomialFunction(org.hipparchus.analysis.CalculusFieldUnivariateFun
                 the value of the polynomial at the given point.
         
             Also see:
-                :meth:`~org.hipparchus.analysis.UnivariateFunction.value`
+        
+                  - :meth:`~org.hipparchus.analysis.UnivariateFunction.value`
+        
         
         
         """
@@ -139,7 +144,8 @@ class FieldPolynomialFunction(org.hipparchus.analysis.CalculusFieldUnivariateFun
 _FieldPolynomialSplineFunction__T = typing.TypeVar('_FieldPolynomialSplineFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldPolynomialSplineFunction(org.hipparchus.analysis.CalculusFieldUnivariateFunction[_FieldPolynomialSplineFunction__T], typing.Generic[_FieldPolynomialSplineFunction__T]):
     """
-    public class FieldPolynomialSplineFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.CalculusFieldUnivariateFunction`<T>
+    public classFieldPolynomialSplineFunction<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.CalculusFieldUnivariateFunction`<T>
     
         Represents a polynomial spline function.
     
@@ -243,18 +249,62 @@ class FieldPolynomialSplineFunction(org.hipparchus.analysis.CalculusFieldUnivari
     @typing.overload
     def value(self, t: _FieldPolynomialSplineFunction__T) -> _FieldPolynomialSplineFunction__T: ...
 
+class JacobiKey:
+    """
+    public classJacobiKey extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    
+        Class for handling Jacobi polynomials keys.
+    
+        Since:
+            3.1
+    """
+    def __init__(self, int: int, int2: int): ...
+    def equals(self, object: typing.Any) -> bool:
+        """
+            Check if the instance represent the same key as another instance.
+        
+            Overrides:
+                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+            Parameters:
+                key (:class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): other key
+        
+            Returns:
+                true if the instance and the other key refer to the same polynomial
+        
+        
+        """
+        ...
+    def hashCode(self) -> int:
+        """
+            Get hash code.
+        
+            Overrides:
+                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+            Returns:
+                hash code
+        
+        
+        """
+        ...
+
 class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction, org.hipparchus.analysis.FieldUnivariateFunction, java.io.Serializable):
     """
-    public class PolynomialFunction extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`, :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classPolynomialFunction extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`, :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Immutable representation of a real polynomial function with real coefficients.
     
         `Horner's Method <http://mathworld.wolfram.com/HornersMethod.html>` is used to evaluate the function.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
-    def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]): ...
+    def __init__(self, *double: float): ...
     def add(self, polynomialFunction: 'PolynomialFunction') -> 'PolynomialFunction':
         """
             Add a polynomial to the instance.
@@ -292,8 +342,8 @@ class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDiffe
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -314,8 +364,8 @@ class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDiffe
         """
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -396,8 +446,8 @@ class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDiffe
             x^2` if the negative coefficient is not the first one displayed).
         
             Overrides:
-                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of the polynomial.
@@ -427,9 +477,11 @@ class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDiffe
                 the value of the polynomial at the given point.
         
             Also see:
-                :meth:`~org.hipparchus.analysis.UnivariateFunction.value`
         
-        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value (T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
+                  - :meth:`~org.hipparchus.analysis.UnivariateFunction.value`
+        
+        
+        public <T extends :class:`~org.hipparchus.analysis.differentiation.Derivative`<T>> T value(T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
         
             Compute the value for the function.
         
@@ -447,7 +499,7 @@ class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDiffe
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`coefficients` is empty.
                 :class:`~org.hipparchus.exception.NullArgumentException`: if :code:`coefficients` is :code:`null`.
         
-        public <T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> T value (T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
+        public <T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> T value(T t) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
         
             Compute the value of the function.
         
@@ -482,7 +534,8 @@ class PolynomialFunction(org.hipparchus.analysis.differentiation.UnivariateDiffe
 
 class PolynomialFunctionLagrangeForm(org.hipparchus.analysis.UnivariateFunction):
     """
-    public class PolynomialFunctionLagrangeForm extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.UnivariateFunction`
+    public classPolynomialFunctionLagrangeForm extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.UnivariateFunction`
     
         Implements the representation of a real polynomial function in ` Lagrange Form
         <http://mathworld.wolfram.com/LagrangeInterpolatingPolynomial.html>`. For reference, see **Introduction to Numerical
@@ -569,7 +622,8 @@ class PolynomialFunctionLagrangeForm(org.hipparchus.analysis.UnivariateFunction)
 
 class PolynomialFunctionNewtonForm(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction, org.hipparchus.analysis.FieldUnivariateFunction):
     """
-    public class PolynomialFunctionNewtonForm extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`
+    public classPolynomialFunctionNewtonForm extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`
     
         Implements the representation of a real polynomial function in Newton Form. For reference, see **Elementary Numerical
         Analysis**, ISBN 0070124477, chapter 2.
@@ -680,7 +734,8 @@ class PolynomialFunctionNewtonForm(org.hipparchus.analysis.differentiation.Univa
 
 class PolynomialSplineFunction(org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction, org.hipparchus.analysis.FieldUnivariateFunction):
     """
-    public class PolynomialSplineFunction extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`
+    public classPolynomialSplineFunction extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`, :class:`~org.hipparchus.analysis.FieldUnivariateFunction`
     
         Represents a polynomial spline function.
     
@@ -818,7 +873,7 @@ class PolynomialSplineFunction(org.hipparchus.analysis.differentiation.Univariat
 
 class PolynomialsUtils:
     """
-    public class PolynomialsUtils extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classPolynomialsUtils extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         A collection of static methods that operate on or return polynomials.
     """
@@ -944,7 +999,7 @@ class PolynomialsUtils:
 _SmoothStepFactory__FieldSmoothStepFunction__T = typing.TypeVar('_SmoothStepFactory__FieldSmoothStepFunction__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class SmoothStepFactory:
     """
-    public class SmoothStepFactory extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSmoothStepFactory extends :class:`~org.hipparchus.analysis.polynomials.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Smoothstep function factory.
     
@@ -1135,6 +1190,7 @@ class __module_protocol__(Protocol):
 
     FieldPolynomialFunction: typing.Type[FieldPolynomialFunction]
     FieldPolynomialSplineFunction: typing.Type[FieldPolynomialSplineFunction]
+    JacobiKey: typing.Type[JacobiKey]
     PolynomialFunction: typing.Type[PolynomialFunction]
     PolynomialFunctionLagrangeForm: typing.Type[PolynomialFunctionLagrangeForm]
     PolynomialFunctionNewtonForm: typing.Type[PolynomialFunctionNewtonForm]
diff --git a/org-stubs/hipparchus/analysis/solvers/__init__.pyi b/org-stubs/hipparchus/analysis/solvers/__init__.pyi
index cbb03d6e3119281ed681b3a0ac4180cdc4b59d8b..957bc028605f283c185f9b50be0a4a8d0d665ad6 100644
--- a/org-stubs/hipparchus/analysis/solvers/__init__.pyi
+++ b/org-stubs/hipparchus/analysis/solvers/__init__.pyi
@@ -18,7 +18,7 @@ import typing
 
 class AllowedSolution(java.lang.Enum['AllowedSolution']):
     """
-    public enum AllowedSolution extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.analysis.solvers.AllowedSolution`>
+    public enumAllowedSolution extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.analysis.solvers.AllowedSolution`>
     
         The kinds of solutions that a :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver` may accept as
         solutions. This basically controls whether or not under-approximations and over-approximations are allowed.
@@ -30,7 +30,8 @@ class AllowedSolution(java.lang.Enum['AllowedSolution']):
         to guarantee that a solution is returned that lies on a specific side the solution.
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver`
+    
+              - :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver`
     """
     ANY_SIDE: typing.ClassVar['AllowedSolution'] = ...
     LEFT_SIDE: typing.ClassVar['AllowedSolution'] = ...
@@ -49,14 +50,14 @@ class AllowedSolution(java.lang.Enum['AllowedSolution']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -64,15 +65,7 @@ class AllowedSolution(java.lang.Enum['AllowedSolution']):
     @staticmethod
     def values() -> typing.MutableSequence['AllowedSolution']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (AllowedSolution c : AllowedSolution.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -84,7 +77,7 @@ class AllowedSolution(java.lang.Enum['AllowedSolution']):
 _BaseUnivariateSolver__F = typing.TypeVar('_BaseUnivariateSolver__F', bound=org.hipparchus.analysis.UnivariateFunction)  # <F>
 class BaseUnivariateSolver(typing.Generic[_BaseUnivariateSolver__F]):
     """
-    public interface BaseUnivariateSolver<F extends :class:`~org.hipparchus.analysis.UnivariateFunction`>
+    public interfaceBaseUnivariateSolver<F extends :class:`~org.hipparchus.analysis.UnivariateFunction`>
     
         Interface for (univariate real) rootfinding algorithms. Implementations will search for only one zero in the given
         interval. This class is not intended for use outside of the Hipparchus library, regular user should rely on more
@@ -93,8 +86,10 @@ class BaseUnivariateSolver(typing.Generic[_BaseUnivariateSolver__F]):
         :class:`~org.hipparchus.analysis.solvers.UnivariateDifferentiableSolver`.
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.UnivariateSolver`, :class:`~org.hipparchus.analysis.solvers.PolynomialSolver`,
-            :class:`~org.hipparchus.analysis.solvers.UnivariateDifferentiableSolver`
+    
+              - :class:`~org.hipparchus.analysis.solvers.UnivariateSolver`
+              - :class:`~org.hipparchus.analysis.solvers.PolynomialSolver`
+              - :class:`~org.hipparchus.analysis.solvers.UnivariateDifferentiableSolver`
     """
     def getAbsoluteAccuracy(self) -> float:
         """
@@ -172,7 +167,7 @@ _BracketedRealFieldUnivariateSolver__Interval__T = typing.TypeVar('_BracketedRea
 _BracketedRealFieldUnivariateSolver__T = typing.TypeVar('_BracketedRealFieldUnivariateSolver__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class BracketedRealFieldUnivariateSolver(typing.Generic[_BracketedRealFieldUnivariateSolver__T]):
     """
-    public interface BracketedRealFieldUnivariateSolver<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
+    public interfaceBracketedRealFieldUnivariateSolver<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>>
     
         Interface for :class:`~org.hipparchus.analysis.solvers.UnivariateSolver` that maintain a bracketed solution. There are
         several advantages to having such root-finding algorithms:
@@ -189,7 +184,8 @@ class BracketedRealFieldUnivariateSolver(typing.Generic[_BracketedRealFieldUniva
         :meth:`~org.hipparchus.analysis.solvers.AllowedSolution.ANY_SIDE` as default for the allowed solutions.
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.AllowedSolution`
+    
+              - :class:`~org.hipparchus.analysis.solvers.AllowedSolution`
     """
     def getAbsoluteAccuracy(self) -> _BracketedRealFieldUnivariateSolver__T:
         """
@@ -266,7 +262,7 @@ class BracketedRealFieldUnivariateSolver(typing.Generic[_BracketedRealFieldUniva
 
 class UnivariateSolverUtils:
     """
-    public class UnivariateSolverUtils extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classUnivariateSolverUtils extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Utility routines for :class:`~org.hipparchus.analysis.solvers.UnivariateSolver` objects.
     """
@@ -342,7 +338,8 @@ class UnivariateSolverUtils:
 _BaseAbstractUnivariateSolver__F = typing.TypeVar('_BaseAbstractUnivariateSolver__F', bound=org.hipparchus.analysis.UnivariateFunction)  # <F>
 class BaseAbstractUnivariateSolver(BaseUnivariateSolver[_BaseAbstractUnivariateSolver__F], typing.Generic[_BaseAbstractUnivariateSolver__F]):
     """
-    public abstract class BaseAbstractUnivariateSolver<F extends :class:`~org.hipparchus.analysis.UnivariateFunction`> extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<F>
+    public abstract classBaseAbstractUnivariateSolver<F extends :class:`~org.hipparchus.analysis.UnivariateFunction`> extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<F>
     
         Provide a default implementation for several functions useful to generic solvers. The default values for relative and
         function tolerances are 1e-14 and 1e-15, respectively. It is however highly recommended to not rely on the default, but
@@ -460,7 +457,7 @@ class BaseAbstractUnivariateSolver(BaseUnivariateSolver[_BaseAbstractUnivariateS
             Returns:
                 a value where the function is zero.
         
-        public double solve (int maxEval, :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver` f, double startValue) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.MathIllegalStateException`
+        public double solve(int maxEval, :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver` f, double startValue) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.MathIllegalStateException`
         
             Solve for a zero in the vicinity of :code:`startValue`.
         
@@ -491,7 +488,7 @@ class BaseAbstractUnivariateSolver(BaseUnivariateSolver[_BaseAbstractUnivariateS
 _BracketedUnivariateSolver__F = typing.TypeVar('_BracketedUnivariateSolver__F', bound=org.hipparchus.analysis.UnivariateFunction)  # <F>
 class BracketedUnivariateSolver(BaseUnivariateSolver[_BracketedUnivariateSolver__F], typing.Generic[_BracketedUnivariateSolver__F]):
     """
-    public interface BracketedUnivariateSolver<F extends :class:`~org.hipparchus.analysis.UnivariateFunction`> extends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<F>
+    public interfaceBracketedUnivariateSolver<F extends :class:`~org.hipparchus.analysis.UnivariateFunction`>extends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<F>
     
         Interface for :class:`~org.hipparchus.analysis.solvers.UnivariateSolver` that maintain a bracketed solution. There are
         several advantages to having such root-finding algorithms:
@@ -508,7 +505,8 @@ class BracketedUnivariateSolver(BaseUnivariateSolver[_BracketedUnivariateSolver_
         :meth:`~org.hipparchus.analysis.solvers.AllowedSolution.ANY_SIDE` as default for the allowed solutions.
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.AllowedSolution`
+    
+              - :class:`~org.hipparchus.analysis.solvers.AllowedSolution`
     """
     @typing.overload
     def solve(self, int: int, f: _BracketedUnivariateSolver__F, double: float) -> float:
@@ -575,7 +573,8 @@ class BracketedUnivariateSolver(BaseUnivariateSolver[_BracketedUnivariateSolver_
 _FieldBracketingNthOrderBrentSolver__T = typing.TypeVar('_FieldBracketingNthOrderBrentSolver__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldBracketingNthOrderBrentSolver(BracketedRealFieldUnivariateSolver[_FieldBracketingNthOrderBrentSolver__T], typing.Generic[_FieldBracketingNthOrderBrentSolver__T]):
     """
-    public class FieldBracketingNthOrderBrentSolver<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.solvers.BracketedRealFieldUnivariateSolver`<T>
+    public classFieldBracketingNthOrderBrentSolver<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.solvers.BracketedRealFieldUnivariateSolver`<T>
     
         This class implements a modification of the ` Brent algorithm <http://mathworld.wolfram.com/BrentsMethod.html>`.
     
@@ -681,7 +680,7 @@ class FieldBracketingNthOrderBrentSolver(BracketedRealFieldUnivariateSolver[_Fie
 
 class PolynomialSolver(BaseUnivariateSolver[org.hipparchus.analysis.polynomials.PolynomialFunction]):
     """
-    public interface PolynomialSolver extends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<:class:`~org.hipparchus.analysis.polynomials.PolynomialFunction`>
+    public interfacePolynomialSolverextends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<:class:`~org.hipparchus.analysis.polynomials.PolynomialFunction`>
     
         Interface for (polynomial) root-finding algorithms. Implementations will search for only one zero in the given interval.
     """
@@ -689,7 +688,7 @@ class PolynomialSolver(BaseUnivariateSolver[org.hipparchus.analysis.polynomials.
 
 class UnivariateDifferentiableSolver(BaseUnivariateSolver[org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction]):
     """
-    public interface UnivariateDifferentiableSolver extends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`>
+    public interfaceUnivariateDifferentiableSolverextends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`>
     
         Interface for (univariate real) rootfinding algorithms. Implementations will search for only one zero in the given
         interval.
@@ -698,7 +697,7 @@ class UnivariateDifferentiableSolver(BaseUnivariateSolver[org.hipparchus.analysi
 
 class UnivariateSolver(BaseUnivariateSolver[org.hipparchus.analysis.UnivariateFunction]):
     """
-    public interface UnivariateSolver extends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
+    public interfaceUnivariateSolverextends :class:`~org.hipparchus.analysis.solvers.BaseUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
     
         Interface for (univariate real) root-finding algorithms. Implementations will search for only one zero in the given
         interval.
@@ -707,7 +706,8 @@ class UnivariateSolver(BaseUnivariateSolver[org.hipparchus.analysis.UnivariateFu
 
 class AbstractPolynomialSolver(BaseAbstractUnivariateSolver[org.hipparchus.analysis.polynomials.PolynomialFunction], PolynomialSolver):
     """
-    public abstract class AbstractPolynomialSolver extends :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`<:class:`~org.hipparchus.analysis.polynomials.PolynomialFunction`> implements :class:`~org.hipparchus.analysis.solvers.PolynomialSolver`
+    public abstract classAbstractPolynomialSolver extends :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`<:class:`~org.hipparchus.analysis.polynomials.PolynomialFunction`>
+    implements :class:`~org.hipparchus.analysis.solvers.PolynomialSolver`
     
         Base class for solvers.
     """
@@ -715,7 +715,8 @@ class AbstractPolynomialSolver(BaseAbstractUnivariateSolver[org.hipparchus.analy
 
 class AbstractUnivariateDifferentiableSolver(BaseAbstractUnivariateSolver[org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction], UnivariateDifferentiableSolver):
     """
-    public abstract class AbstractUnivariateDifferentiableSolver extends :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`> implements :class:`~org.hipparchus.analysis.solvers.UnivariateDifferentiableSolver`
+    public abstract classAbstractUnivariateDifferentiableSolver extends :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`<:class:`~org.hipparchus.analysis.differentiation.UnivariateDifferentiableFunction`>
+    implements :class:`~org.hipparchus.analysis.solvers.UnivariateDifferentiableSolver`
     
         Provide a default implementation for several functions useful to generic solvers.
     """
@@ -723,7 +724,8 @@ class AbstractUnivariateDifferentiableSolver(BaseAbstractUnivariateSolver[org.hi
 
 class AbstractUnivariateSolver(BaseAbstractUnivariateSolver[org.hipparchus.analysis.UnivariateFunction], UnivariateSolver):
     """
-    public abstract class AbstractUnivariateSolver extends :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`> implements :class:`~org.hipparchus.analysis.solvers.UnivariateSolver`
+    public abstract classAbstractUnivariateSolver extends :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
+    implements :class:`~org.hipparchus.analysis.solvers.UnivariateSolver`
     
         Base class for solvers.
     """
@@ -731,7 +733,8 @@ class AbstractUnivariateSolver(BaseAbstractUnivariateSolver[org.hipparchus.analy
 
 class BaseSecantSolver(AbstractUnivariateSolver, BracketedUnivariateSolver[org.hipparchus.analysis.UnivariateFunction]):
     """
-    public abstract class BaseSecantSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver` implements :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
+    public abstract classBaseSecantSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    implements :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
     
         Base class for all bracketing *Secant*-based methods for root-finding (approximating a zero of a univariate real
         function).
@@ -827,7 +830,7 @@ class BaseSecantSolver(AbstractUnivariateSolver, BracketedUnivariateSolver[org.h
 
 class BisectionSolver(AbstractUnivariateSolver):
     """
-    public class BisectionSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    public classBisectionSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
     
         Implements the ` bisection algorithm <http://mathworld.wolfram.com/Bisection.html>` for finding zeros of univariate real
         functions.
@@ -843,7 +846,8 @@ class BisectionSolver(AbstractUnivariateSolver):
 
 class BracketingNthOrderBrentSolver(AbstractUnivariateSolver, BracketedUnivariateSolver[org.hipparchus.analysis.UnivariateFunction]):
     """
-    public class BracketingNthOrderBrentSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver` implements :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
+    public classBracketingNthOrderBrentSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    implements :class:`~org.hipparchus.analysis.solvers.BracketedUnivariateSolver`<:class:`~org.hipparchus.analysis.UnivariateFunction`>
     
         This class implements a modification of the ` Brent algorithm <http://mathworld.wolfram.com/BrentsMethod.html>`.
     
@@ -891,7 +895,7 @@ class BracketingNthOrderBrentSolver(AbstractUnivariateSolver, BracketedUnivariat
 
 class BrentSolver(AbstractUnivariateSolver):
     """
-    public class BrentSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    public classBrentSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
     
         This class implements the ` Brent algorithm <http://mathworld.wolfram.com/BrentsMethod.html>` for finding zeros of real
         univariate functions. The function should be continuous but not necessarily smooth. The :code:`solve` method returns a
@@ -904,7 +908,8 @@ class BrentSolver(AbstractUnivariateSolver):
             **Algorithms for Minimization Without Derivatives**, *Richard P. Brent*, Dover, 2002
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`
+    
+              - :class:`~org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver`
     """
     @typing.overload
     def __init__(self): ...
@@ -917,7 +922,7 @@ class BrentSolver(AbstractUnivariateSolver):
 
 class LaguerreSolver(AbstractPolynomialSolver):
     """
-    public class LaguerreSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractPolynomialSolver`
+    public classLaguerreSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractPolynomialSolver`
     
         Implements the ` Laguerre's Method <http://mathworld.wolfram.com/LaguerresMethod.html>` for root finding of real
         coefficient polynomials. For reference, see
@@ -934,12 +939,15 @@ class LaguerreSolver(AbstractPolynomialSolver):
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float): ...
     def doSolve(self) -> float: ...
+    @typing.overload
     def solveAllComplex(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], double2: float) -> typing.MutableSequence[org.hipparchus.complex.Complex]: ...
+    @typing.overload
+    def solveAllComplex(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], int: int, double2: float) -> typing.MutableSequence[org.hipparchus.complex.Complex]: ...
     def solveComplex(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], double2: float) -> org.hipparchus.complex.Complex: ...
 
 class MullerSolver(AbstractUnivariateSolver):
     """
-    public class MullerSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    public classMullerSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
     
         This class implements the ` Muller's Method <http://mathworld.wolfram.com/MullersMethod.html>` for root finding of real
         univariate functions. For reference, see **Elementary Numerical Analysis**, ISBN 0070124477, chapter 3.
@@ -958,7 +966,8 @@ class MullerSolver(AbstractUnivariateSolver):
         The formulas here use divided differences directly.
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.MullerSolver2`
+    
+              - :class:`~org.hipparchus.analysis.solvers.MullerSolver2`
     """
     @typing.overload
     def __init__(self): ...
@@ -969,7 +978,7 @@ class MullerSolver(AbstractUnivariateSolver):
 
 class MullerSolver2(AbstractUnivariateSolver):
     """
-    public class MullerSolver2 extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    public classMullerSolver2 extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
     
         This class implements the ` Muller's Method <http://mathworld.wolfram.com/MullersMethod.html>` for root finding of real
         univariate functions. For reference, see **Elementary Numerical Analysis**, ISBN 0070124477, chapter 3.
@@ -987,7 +996,8 @@ class MullerSolver2(AbstractUnivariateSolver):
         The formulas here do not use divided differences directly.
     
         Also see:
-            :class:`~org.hipparchus.analysis.solvers.MullerSolver`
+    
+              - :class:`~org.hipparchus.analysis.solvers.MullerSolver`
     """
     @typing.overload
     def __init__(self): ...
@@ -998,7 +1008,7 @@ class MullerSolver2(AbstractUnivariateSolver):
 
 class NewtonRaphsonSolver(AbstractUnivariateDifferentiableSolver):
     """
-    public class NewtonRaphsonSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateDifferentiableSolver`
+    public classNewtonRaphsonSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateDifferentiableSolver`
     
         Implements ` Newton's Method <http://mathworld.wolfram.com/NewtonsMethod.html>` for finding zeros of real univariate
         differentiable functions.
@@ -1016,7 +1026,7 @@ class NewtonRaphsonSolver(AbstractUnivariateDifferentiableSolver):
 
 class RiddersSolver(AbstractUnivariateSolver):
     """
-    public class RiddersSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    public classRiddersSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
     
         Implements the ` Ridders' Method <http://mathworld.wolfram.com/RiddersMethod.html>` for root finding of real univariate
         functions. For reference, see C. Ridders, *A new algorithm for computing a single root of a real continuous function*,
@@ -1033,7 +1043,7 @@ class RiddersSolver(AbstractUnivariateSolver):
 
 class SecantSolver(AbstractUnivariateSolver):
     """
-    public class SecantSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
+    public classSecantSolver extends :class:`~org.hipparchus.analysis.solvers.AbstractUnivariateSolver`
     
         Implements the *Secant* method for root-finding (approximating a zero of a univariate real function). The solution that
         is maintained is not bracketed, and as such convergence is not guaranteed.
@@ -1055,7 +1065,7 @@ class SecantSolver(AbstractUnivariateSolver):
 
 class IllinoisSolver(BaseSecantSolver):
     """
-    public class IllinoisSolver extends :class:`~org.hipparchus.analysis.solvers.BaseSecantSolver`
+    public classIllinoisSolver extends :class:`~org.hipparchus.analysis.solvers.BaseSecantSolver`
     
         Implements the *Illinois* method for root-finding (approximating a zero of a univariate real function). It is a modified
         :class:`~org.hipparchus.analysis.solvers.RegulaFalsiSolver` method.
@@ -1081,7 +1091,7 @@ class IllinoisSolver(BaseSecantSolver):
 
 class PegasusSolver(BaseSecantSolver):
     """
-    public class PegasusSolver extends :class:`~org.hipparchus.analysis.solvers.BaseSecantSolver`
+    public classPegasusSolver extends :class:`~org.hipparchus.analysis.solvers.BaseSecantSolver`
     
         Implements the *Pegasus* method for root-finding (approximating a zero of a univariate real function). It is a modified
         :class:`~org.hipparchus.analysis.solvers.RegulaFalsiSolver` method.
@@ -1108,7 +1118,7 @@ class PegasusSolver(BaseSecantSolver):
 
 class RegulaFalsiSolver(BaseSecantSolver):
     """
-    public class RegulaFalsiSolver extends :class:`~org.hipparchus.analysis.solvers.BaseSecantSolver`
+    public classRegulaFalsiSolver extends :class:`~org.hipparchus.analysis.solvers.BaseSecantSolver`
     
         Implements the *Regula Falsi* or *False position* method for root-finding (approximating a zero of a univariate real
         function). It is a modified :class:`~org.hipparchus.analysis.solvers.SecantSolver` method.
@@ -1122,10 +1132,10 @@ class RegulaFalsiSolver(BaseSecantSolver):
     
         Unlike the *Secant* method, the *Regula Falsi* guarantees convergence, by maintaining a bracketed solution. Note
         however, that due to the finite/limited precision of Java's
-        :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double?is` type, which is
-        used in this implementation, the algorithm may get stuck in a situation where it no longer makes any progress. Such
-        cases are detected and result in a :code:`MathIllegalStateException` exception being thrown. In other words, the
-        algorithm theoretically guarantees convergence, but the implementation does not.
+        :class:`~org.hipparchus.analysis.solvers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double` type, which is used
+        in this implementation, the algorithm may get stuck in a situation where it no longer makes any progress. Such cases are
+        detected and result in a :code:`MathIllegalStateException` exception being thrown. In other words, the algorithm
+        theoretically guarantees convergence, but the implementation does not.
     
         The *Regula Falsi* method assumes that the function is continuous, but not necessarily smooth.
     
diff --git a/org-stubs/hipparchus/complex/__init__.pyi b/org-stubs/hipparchus/complex/__init__.pyi
index e1ae4096883dd5ee6cf94d5d2f9eeaac06325a24..77fc9c5e846a613bc4370efa05d422af3f4032db 100644
--- a/org-stubs/hipparchus/complex/__init__.pyi
+++ b/org-stubs/hipparchus/complex/__init__.pyi
@@ -20,12 +20,13 @@ import typing
 
 class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparable['Complex'], java.io.Serializable):
     """
-    public class Complex extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classComplex extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of a Complex number, i.e. a number which has both a real and imaginary part.
     
         Implementations of arithmetic operations handle :code:`NaN` and infinite values according to the rules for
-        :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double?is`, i.e.
+        :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double`, i.e.
         :meth:`~org.hipparchus.complex.Complex.equals` is an equivalence relation for all instances that have a :code:`NaN` in
         either real or imaginary part, e.g. the following are considered equal:
     
@@ -40,7 +41,8 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         Java object types.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     I: typing.ClassVar['Complex'] = ...
     """
@@ -178,7 +180,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`this + addend`.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Complex.add`
+        
+                  - :meth:`~org.hipparchus.complex.Complex.add`
+        
         
         
         """
@@ -324,8 +328,8 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
             order.
         
             Specified by:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.html?is` in
-                interface :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo` in
+                interface :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`
         
             Since:
                 3.0
@@ -405,13 +409,12 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               cos(1 ± INFINITY i) = 1 ∓ INFINITY i
-               cos(±INFINITY + i) = NaN + NaN i
-               cos(±INFINITY ± INFINITY i) = NaN + NaN i
-              
+              Examples:
+              
+               cos(1 ± INFINITY i) = 1 ∓ INFINITY i
+               cos(±INFINITY + i) = NaN + NaN i
+               cos(±INFINITY ± INFINITY i) = NaN + NaN i
+              
              
         
             Specified by:
@@ -430,10 +433,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               cosh(a + bi) = cosh(a)cos(b) + sinh(a)sin(b)i
-              
+              
+               cosh(a + bi) = cosh(a)cos(b) + sinh(a)sin(b)i
+              
              
             where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.sin`,
             :meth:`~org.hipparchus.util.FastMath.cos`, :meth:`~org.hipparchus.util.FastMath.cosh` and
@@ -446,13 +448,12 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               cosh(1 ± INFINITY i) = NaN + NaN i
-               cosh(±INFINITY + i) = INFINITY ± INFINITY i
-               cosh(±INFINITY ± INFINITY i) = NaN + NaN i
-              
+              Examples:
+              
+               cosh(1 ± INFINITY i) = NaN + NaN i
+               cosh(±INFINITY + i) = INFINITY ± INFINITY i
+               cosh(±INFINITY ± INFINITY i) = NaN + NaN i
+              
              
         
             Specified by:
@@ -479,7 +480,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`this / divisor`.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Complex.divide`
+        
+                  - :meth:`~org.hipparchus.complex.Complex.divide`
+        
         
         
         """
@@ -491,7 +494,7 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         """
             Test for equality with another object. If both the real and imaginary parts of two complex numbers are exactly the same,
             and neither is :code:`Double.NaN`, the two Complex objects are considered to be equal. The behavior is the same as for
-            JDK's :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`:
+            JDK's :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.equals`:
         
               - All :code:`NaN` values are considered to be equal, i.e, if either (or both) real and imaginary parts of the complex
                 number are equal to :code:`Double.NaN`, the complex number is equal to :code:`NaN`.
@@ -499,11 +502,11 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality with this instance.
+                other (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality with this instance.
         
             Returns:
                 :code:`true` if the objects are equal, :code:`false` if object is :code:`null`, not an instance of :code:`Complex`, or
@@ -523,7 +526,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`x` and :code:`y`.
         
             Also see:
-                :meth:`~org.hipparchus.util.Precision.equals`
+        
+                  - :meth:`~org.hipparchus.util.Precision.equals`
+        
         
             Returns :code:`true` iff the values are equal as defined by :meth:`~org.hipparchus.complex.Complex.equals`.
         
@@ -547,7 +552,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`true` if the values are two adjacent floating point numbers or they are within range of each other.
         
             Also see:
-                :meth:`~org.hipparchus.util.Precision.equals`
+        
+                  - :meth:`~org.hipparchus.util.Precision.equals`
+        
         
         
         """
@@ -577,7 +584,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`true` if the values are two adjacent floating point numbers or they are within range of each other.
         
             Also see:
-                :meth:`~org.hipparchus.util.Precision.equalsWithRelativeTolerance`
+        
+                  - :meth:`~org.hipparchus.util.Precision.equalsWithRelativeTolerance`
+        
         
         
         """
@@ -589,12 +598,11 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               exp(a + bi) = exp(a)cos(b) + exp(a)sin(b)i
-              
+              
+               exp(a + bi) = exp(a)cos(b) + exp(a)sin(b)i
+              
              
-            where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.exp`,
+            where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.exp` p},
             :meth:`~org.hipparchus.util.FastMath.cos`, and :meth:`~org.hipparchus.util.FastMath.sin`.
         
             Returns :meth:`~org.hipparchus.complex.Complex.NaN` if either real or imaginary part of the input argument is
@@ -604,14 +612,13 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               exp(1 ± INFINITY i) = NaN + NaN i
-               exp(INFINITY + i) = INFINITY + INFINITY i
-               exp(-INFINITY + i) = 0 + 0i
-               exp(±INFINITY ± INFINITY i) = NaN + NaN i
-              
+              Examples:
+              
+               exp(1 ± INFINITY i) = NaN + NaN i
+               exp(INFINITY + i) = INFINITY + INFINITY i
+               exp(-INFINITY + i) = 0 + 0i
+               exp(±INFINITY ± INFINITY i) = NaN + NaN i
+              
              
         
             Specified by:
@@ -754,8 +761,8 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
             code :code:`7`.
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object.
@@ -885,8 +892,10 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -907,8 +916,10 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -931,8 +942,10 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -955,8 +968,10 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -981,8 +996,10 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -1007,8 +1024,10 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -1034,10 +1053,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               log(a + bi) = ln(|a + bi|) + arg(a + bi)i
-              
+              
+               log(a + bi) = ln(|a + bi|) + arg(a + bi)i
+              
              
             where ln on the right hand side is :meth:`~org.hipparchus.util.FastMath.log`, :code:`|a + bi|` is the modulus,
             :meth:`~org.hipparchus.complex.Complex.abs`, and :code:`arg(a + bi) =`:meth:`~org.hipparchus.util.FastMath.atan2`(b, a).
@@ -1049,16 +1067,15 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               log(1 ± INFINITY i) = INFINITY ± (π/2)i
-               log(INFINITY + i) = INFINITY + 0i
-               log(-INFINITY + i) = INFINITY + πi
-               log(INFINITY ± INFINITY i) = INFINITY ± (π/4)i
-               log(-INFINITY ± INFINITY i) = INFINITY ± (3π/4)i
-               log(0 + 0i) = -INFINITY + 0i
-              
+              Examples:
+              
+               log(1 ± INFINITY i) = INFINITY ± (π/2)i
+               log(INFINITY + i) = INFINITY + 0i
+               log(-INFINITY + i) = INFINITY + πi
+               log(INFINITY ± INFINITY i) = INFINITY ± (π/4)i
+               log(-INFINITY ± INFINITY i) = INFINITY ± (3π/4)i
+               log(0 + 0i) = -INFINITY + 0i
+              
              
         
             Specified by:
@@ -1107,6 +1124,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         """
             Returns a :code:`Complex` whose value is :code:`this * factor`, with :code:`factor` interpreted as a integer number.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1117,7 +1137,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`this * factor`.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Complex.multiply`
+        
+                  - :meth:`~org.hipparchus.complex.Complex.multiply`
+        
         
             Returns a :code:`Complex` whose value is :code:`this * factor`, with :code:`factor` interpreted as a real number.
         
@@ -1131,7 +1153,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`this * factor`.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Complex.multiply`
+        
+                  - :meth:`~org.hipparchus.complex.Complex.multiply`
+        
         
         
         """
@@ -1254,9 +1278,6 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         """
             Returns the multiplicative inverse of :code:`this` element.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1387,10 +1408,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               sin(a + bi) = sin(a)cosh(b) + cos(a)sinh(b)i
-              
+              
+               sin(a + bi) = sin(a)cosh(b) + cos(a)sinh(b)i
+              
              
             where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.sin`,
             :meth:`~org.hipparchus.util.FastMath.cos`, :meth:`~org.hipparchus.util.FastMath.cosh` and
@@ -1404,13 +1424,12 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               sin(1 ± INFINITY i) = 1 ± INFINITY i
-               sin(±INFINITY + i) = NaN + NaN i
-               sin(±INFINITY ± INFINITY i) = NaN + NaN i
-              
+              Examples:
+              
+               sin(1 ± INFINITY i) = 1 ± INFINITY i
+               sin(±INFINITY + i) = NaN + NaN i
+               sin(±INFINITY ± INFINITY i) = NaN + NaN i
+              
              
         
             Specified by:
@@ -1430,10 +1449,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               sinh(a + bi) = sinh(a)cos(b)) + cosh(a)sin(b)i
-              
+              
+               sinh(a + bi) = sinh(a)cos(b)) + cosh(a)sin(b)i
+              
              
             where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.sin`,
             :meth:`~org.hipparchus.util.FastMath.cos`, :meth:`~org.hipparchus.util.FastMath.cosh` and
@@ -1447,13 +1465,12 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               sinh(1 ± INFINITY i) = NaN + NaN i
-               sinh(±INFINITY + i) = ± INFINITY + INFINITY i
-               sinh(±INFINITY ± INFINITY i) = NaN + NaN i
-              
+              Examples:
+              
+               sinh(1 ± INFINITY i) = NaN + NaN i
+               sinh(±INFINITY + i) = ± INFINITY + INFINITY i
+               sinh(±INFINITY ± INFINITY i) = NaN + NaN i
+              
              
         
             Specified by:
@@ -1475,7 +1492,7 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
               2.  
                 .. code-block: java
                 
-                if  a ≥ 0 return :code:`t + (b/2t)i`
+                if  a ≥ 0 return :code:`t + (b/2t)i`
                   else return :code:`|b|/2t + sign(b)t i`
         
             where
@@ -1494,15 +1511,14 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               sqrt(1 ± ∞ i) = ∞ + NaN i
-               sqrt(∞ + i) = ∞ + 0i
-               sqrt(-∞ + i) = 0 + ∞ i
-               sqrt(∞ ± ∞ i) = ∞ + NaN i
-               sqrt(-∞ ± ∞ i) = NaN ± ∞ i
-              
+              Examples:
+              
+               sqrt(1 ± ∞ i) = ∞ + NaN i
+               sqrt(∞ + i) = ∞ + 0i
+               sqrt(-∞ + i) = 0 + ∞ i
+               sqrt(∞ ± ∞ i) = ∞ + NaN i
+               sqrt(-∞ ± ∞ i) = NaN ± ∞ i
+              
              
         
             Specified by:
@@ -1517,7 +1533,7 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
     def sqrt1z(self) -> 'Complex':
         """
             Compute the ` square root <http://mathworld.wolfram.com/SquareRoot.html>` of :code:`1 - this :sup:`2`` for this complex
-            number. Computes the result directly as :code:`sqrt(ONE.subtract(z.multiply(z)))`.
+            number. Computes the result directly as :code:`sqrt(ONE.subtract(z.square()))`.
         
             Returns :meth:`~org.hipparchus.complex.Complex.NaN` if either real or imaginary part of the input argument is
             :code:`NaN`.
@@ -1528,6 +1544,19 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 the square root of :code:`1 - this :sup:`2``.
         
         
+        """
+        ...
+    def square(self) -> 'Complex':
+        """
+            Compute this × this.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                a new element representing this × this
+        
+        
         """
         ...
     @typing.overload
@@ -1545,7 +1574,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
                 :code:`this - subtrahend`.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Complex.subtract`
+        
+                  - :meth:`~org.hipparchus.complex.Complex.subtract`
+        
         
         
         """
@@ -1558,10 +1589,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               tan(a + bi) = sin(2a)/(cos(2a)+cosh(2b)) + [sinh(2b)/(cos(2a)+cosh(2b))]i
-              
+              
+               tan(a + bi) = sin(2a)/(cos(2a)+cosh(2b)) + [sinh(2b)/(cos(2a)+cosh(2b))]i
+              
              
             where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.sin`,
             :meth:`~org.hipparchus.util.FastMath.cos`, :meth:`~org.hipparchus.util.FastMath.cosh` and
@@ -1574,14 +1604,13 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               tan(a ± INFINITY i) = 0 ± i
-               tan(±INFINITY + bi) = NaN + NaN i
-               tan(±INFINITY ± INFINITY i) = NaN + NaN i
-               tan(±&pi;/2 + 0 i) = ±INFINITY + NaN i
-              
+              Examples:
+              
+               tan(a ± INFINITY i) = 0 ± i
+               tan(±INFINITY + bi) = NaN + NaN i
+               tan(±INFINITY ± INFINITY i) = NaN + NaN i
+               tan(±&pi;/2 + 0 i) = ±INFINITY + NaN i
+              
              
         
             Specified by:
@@ -1600,10 +1629,9 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              
-               tan(a + bi) = sinh(2a)/(cosh(2a)+cos(2b)) + [sin(2b)/(cosh(2a)+cos(2b))]i
-              
+              
+               tan(a + bi) = sinh(2a)/(cosh(2a)+cos(2b)) + [sin(2b)/(cosh(2a)+cos(2b))]i
+              
              
             where the (real) functions on the right-hand side are :meth:`~org.hipparchus.util.FastMath.sin`,
             :meth:`~org.hipparchus.util.FastMath.cos`, :meth:`~org.hipparchus.util.FastMath.cosh` and
@@ -1616,14 +1644,13 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         
             .. code-block: java
             
-            
-              Examples:
-              
-               tanh(a ± INFINITY i) = NaN + NaN i
-               tanh(±INFINITY + bi) = ±1 + 0 i
-               tanh(±INFINITY ± INFINITY i) = NaN + NaN i
-               tanh(0 + (Ï€/2)i) = NaN + INFINITY i
-              
+              Examples:
+              
+               tanh(a ± INFINITY i) = NaN + NaN i
+               tanh(±INFINITY + bi) = ±1 + 0 i
+               tanh(±INFINITY ± INFINITY i) = NaN + NaN i
+               tanh(0 + (Ï€/2)i) = NaN + INFINITY i
+              
              
         
             Specified by:
@@ -1665,8 +1692,8 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1714,12 +1741,14 @@ class Complex(org.hipparchus.CalculusFieldElement['Complex'], java.lang.Comparab
 
 class ComplexComparator(java.util.Comparator[Complex], java.io.Serializable):
     """
-    public class ComplexComparator extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Comparator?is`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classComplexComparator extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Comparator`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Comparator for Complex Numbers.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def compare(self, complex: Complex, complex2: Complex) -> int:
@@ -1728,8 +1757,8 @@ class ComplexComparator(java.util.Comparator[Complex], java.io.Serializable):
             order.
         
             Specified by:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Comparator.html?is` in
-                interface :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Comparator?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Comparator.compare` in
+                interface :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Comparator`
         
             Parameters:
                 o1 (:class:`~org.hipparchus.complex.Complex`): first complex number
@@ -1745,21 +1774,24 @@ class ComplexComparator(java.util.Comparator[Complex], java.io.Serializable):
 
 class ComplexField(org.hipparchus.Field[Complex], java.io.Serializable):
     """
-    public class ComplexField extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classComplexField extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.complex.Complex`>, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of the complex numbers field.
     
         This class is a singleton.
     
         Also see:
-            :class:`~org.hipparchus.complex.Complex`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.complex.Complex`
+              - :meth:`~serialized`
     """
     def equals(self, object: typing.Any) -> bool:
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1812,8 +1844,8 @@ class ComplexField(org.hipparchus.Field[Complex], java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1821,7 +1853,7 @@ class ComplexField(org.hipparchus.Field[Complex], java.io.Serializable):
 
 class ComplexFormat:
     """
-    public class ComplexFormat extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classComplexFormat extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Formats a Complex number in cartesian format "Re(c) + Im(c)i". 'i' can be replaced with 'j' (or anything else), and the
         number format for both real and imaginary parts can be configured.
@@ -1852,7 +1884,7 @@ class ComplexFormat:
             This method calls :meth:`~org.hipparchus.complex.ComplexFormat.format`.
         
             Parameters:
-                c (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double?is`): Double object to format.
+                c (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double`): Double object to format.
         
             Returns:
                 A formatted number.
@@ -1861,24 +1893,24 @@ class ComplexFormat:
         
             Parameters:
                 complex (:class:`~org.hipparchus.complex.Complex`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
         
-        public :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is` format (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` obj, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is` toAppendTo, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is` pos) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer` format(:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object` obj, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer` toAppendTo, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition` pos) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Formats a object to produce a string. :code:`obj` must be either a :class:`~org.hipparchus.complex.Complex` object or a
-            :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is` object. Any other type of
+            :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number` object. Any other type of
             object will result in an
-            :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is` being
+            :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException` being
             thrown.
         
             Parameters:
-                obj (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                obj (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to format.
+                toAppendTo (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -1887,7 +1919,9 @@ class ComplexFormat:
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: is :code:`obj` is not a valid type.
         
             Also see:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.Format.html?is`
+        
+                  - :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.Format.format`
+        
         
         
         """
@@ -1904,7 +1938,7 @@ class ComplexFormat:
             Get the set of locales for which complex formats are available.
         
             This is the same set as the
-            :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` set.
+            :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` set.
         
             Returns:
                 available complex format locales.
@@ -1936,7 +1970,7 @@ class ComplexFormat:
             Returns the default complex format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the complex format specific to the given locale.
@@ -1944,13 +1978,13 @@ class ComplexFormat:
             Since:
                 1.4
         
-        public static :class:`~org.hipparchus.complex.ComplexFormat` getComplexFormat (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` imaginaryCharacter, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is` locale) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
+        public static :class:`~org.hipparchus.complex.ComplexFormat` getComplexFormat(:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` imaginaryCharacter, :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale` locale) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
         
             Returns the default complex format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the specific locale used by the format.
-                imaginaryCharacter (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): Imaginary character.
+                locale (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the specific locale used by the format.
+                imaginaryCharacter (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): Imaginary character.
         
             Returns:
                 the complex format specific to the given locale.
@@ -2001,8 +2035,8 @@ class ComplexFormat:
             Parses a string to produce a :class:`~org.hipparchus.complex.Complex` object.
         
             Parameters:
-                source (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/ouput parsing parameter.
+                source (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/ouput parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.complex.Complex` object.
@@ -2015,7 +2049,7 @@ class ComplexFormat:
 
 class ComplexUnivariateIntegrator:
     """
-    public class ComplexUnivariateIntegrator extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classComplexUnivariateIntegrator extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Wrapper to perform univariate complex integration using an underlying real integration algorithms.
     
@@ -2030,7 +2064,7 @@ class ComplexUnivariateIntegrator:
 
 class ComplexUtils:
     """
-    public class ComplexUtils extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classComplexUtils extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Static implementations of common :class:`~org.hipparchus.complex.Complex` utilities functions.
     """
@@ -2059,12 +2093,13 @@ class ComplexUtils:
 _FieldComplex__T = typing.TypeVar('_FieldComplex__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComplex__T]], typing.Generic[_FieldComplex__T]):
     """
-    public class FieldComplex<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.complex.FieldComplex`<T>>
+    public classFieldComplex<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.complex.FieldComplex`<T>>
     
         Representation of a Complex number, i.e. a number which has both a real and imaginary part.
     
         Implementations of arithmetic operations handle :code:`NaN` and infinite values according to the rules for
-        :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double?is`, i.e.
+        :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double`, i.e.
         :meth:`~org.hipparchus.complex.FieldComplex.equals` is an equivalence relation for all instances that have a :code:`NaN`
         in either real or imaginary part, e.g. the following are considered equal:
     
@@ -2122,7 +2157,7 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
         """
             Test for equality with another object. If both the real and imaginary parts of two complex numbers are exactly the same,
             and neither is :code:`Double.NaN`, the two Complex objects are considered to be equal. The behavior is the same as for
-            JDK's :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`:
+            JDK's :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.equals`:
         
               - All :code:`NaN` values are considered to be equal, i.e, if either (or both) real and imaginary parts of the complex
                 number are equal to :code:`Double.NaN`, the complex number is equal to :code:`NaN`.
@@ -2130,11 +2165,11 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
         
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality with this instance.
+                other (:class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality with this instance.
         
             Returns:
                 :code:`true` if the objects are equal, :code:`false` if object is :code:`null`, not an instance of :code:`Complex`, or
@@ -2175,7 +2210,9 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
                 :code:`x` and :code:`y`.
         
             Also see:
-                :meth:`~org.hipparchus.util.Precision.equals`
+        
+                  - :meth:`~org.hipparchus.util.Precision.equals`
+        
         
             Returns :code:`true` if, both for the real part and for the imaginary part, there is no T value strictly between the
             arguments or the difference between them is within the range of allowed error (inclusive). Returns :code:`false` if
@@ -2190,7 +2227,9 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
                 :code:`true` if the values are two adjacent floating point numbers or they are within range of each other.
         
             Also see:
-                :meth:`~org.hipparchus.util.Precision.equals`
+        
+                  - :meth:`~org.hipparchus.util.Precision.equals`
+        
         
         
         """
@@ -2215,7 +2254,9 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
                 :code:`true` if the values are two adjacent floating point numbers or they are within range of each other.
         
             Also see:
-                :meth:`~org.hipparchus.util.Precision.equalsWithRelativeTolerance`
+        
+                  - :meth:`~org.hipparchus.util.Precision.equalsWithRelativeTolerance`
+        
         
         
         """
@@ -2425,8 +2466,8 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
             code :code:`7`.
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object.
@@ -2557,6 +2598,7 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
     def sinhCosh(self) -> org.hipparchus.util.FieldSinhCosh['FieldComplex'[_FieldComplex__T]]: ...
     def sqrt(self) -> 'FieldComplex'[_FieldComplex__T]: ...
     def sqrt1z(self) -> 'FieldComplex'[_FieldComplex__T]: ...
+    def square(self) -> 'FieldComplex'[_FieldComplex__T]: ...
     @typing.overload
     def subtract(self, double: float) -> 'FieldComplex'[_FieldComplex__T]: ...
     @typing.overload
@@ -2571,8 +2613,8 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -2611,7 +2653,8 @@ class FieldComplex(org.hipparchus.CalculusFieldElement['FieldComplex'[_FieldComp
 _FieldComplexField__T = typing.TypeVar('_FieldComplexField__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldComplexField(org.hipparchus.Field[FieldComplex[_FieldComplexField__T]], typing.Generic[_FieldComplexField__T]):
     """
-    public class FieldComplexField<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.complex.FieldComplex`<T>>
+    public classFieldComplexField<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.complex.FieldComplex`<T>>
     
         Representation of the complex numbers field.
     
@@ -2619,14 +2662,15 @@ class FieldComplexField(org.hipparchus.Field[FieldComplex[_FieldComplexField__T]
             2.0
     
         Also see:
-            :class:`~org.hipparchus.complex.FieldComplex`
+    
+              - :class:`~org.hipparchus.complex.FieldComplex`
     """
     def equals(self, object: typing.Any) -> bool:
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -2653,8 +2697,8 @@ class FieldComplexField(org.hipparchus.Field[FieldComplex[_FieldComplexField__T]
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -2663,7 +2707,7 @@ class FieldComplexField(org.hipparchus.Field[FieldComplex[_FieldComplexField__T]
 _FieldComplexUnivariateIntegrator__T = typing.TypeVar('_FieldComplexUnivariateIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldComplexUnivariateIntegrator(typing.Generic[_FieldComplexUnivariateIntegrator__T]):
     """
-    public class FieldComplexUnivariateIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldComplexUnivariateIntegrator<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Wrapper to perform univariate complex integration using an underlying real integration algorithms.
     
@@ -2678,14 +2722,16 @@ class FieldComplexUnivariateIntegrator(typing.Generic[_FieldComplexUnivariateInt
 
 class Quaternion(java.io.Serializable):
     """
-    public final class Quaternion extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public final classQuaternion extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements ` quaternions <http://mathworld.wolfram.com/Quaternion.html>` (Hamilton's hypercomplex numbers).
     
         Instance of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     IDENTITY: typing.ClassVar['Quaternion'] = ...
     """
@@ -2785,8 +2831,8 @@ class Quaternion(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Checks whether this instance is equal to another quaternion within a given tolerance.
         
@@ -2893,7 +2939,9 @@ class Quaternion(java.io.Serializable):
                 the scalar part.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Quaternion.getQ0`
+        
+                  - :meth:`~org.hipparchus.complex.Quaternion.getQ0`
+        
         
         
         """
@@ -2906,8 +2954,11 @@ class Quaternion(java.io.Serializable):
                 the vector part.
         
             Also see:
-                :meth:`~org.hipparchus.complex.Quaternion.getQ1`, :meth:`~org.hipparchus.complex.Quaternion.getQ2`,
-                :meth:`~org.hipparchus.complex.Quaternion.getQ3`
+        
+                  - :meth:`~org.hipparchus.complex.Quaternion.getQ1`
+                  - :meth:`~org.hipparchus.complex.Quaternion.getQ2`
+                  - :meth:`~org.hipparchus.complex.Quaternion.getQ3`
+        
         
         
         """
@@ -2916,8 +2967,8 @@ class Quaternion(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -3027,8 +3078,8 @@ class Quaternion(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -3036,12 +3087,14 @@ class Quaternion(java.io.Serializable):
 
 class RootsOfUnity(java.io.Serializable):
     """
-    public class RootsOfUnity extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classRootsOfUnity extends :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.complex.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A helper class for the computation and caching of the :code:`n`-th roots of unity.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def computeRoots(self, int: int) -> None: ...
diff --git a/org-stubs/hipparchus/dfp/__init__.pyi b/org-stubs/hipparchus/dfp/__init__.pyi
index 0eb99578ef1254017fe942334cc4d9d47fcd789e..50caaf7cde0f618b7c8dac190f0c58935d75a244 100644
--- a/org-stubs/hipparchus/dfp/__init__.pyi
+++ b/org-stubs/hipparchus/dfp/__init__.pyi
@@ -15,7 +15,8 @@ import typing
 
 class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
     """
-    public class Dfp extends :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.dfp.Dfp`>
+    public classDfp extends :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.dfp.Dfp`>
     
         Decimal floating point library for Java
     
@@ -67,7 +68,8 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         and is really only a matter of definition. Any side effects of this can be rendered invisible by a subclass.
     
         Also see:
-            :class:`~org.hipparchus.dfp.DfpField`
+    
+              - :class:`~org.hipparchus.dfp.DfpField`
     """
     RADIX: typing.ClassVar[int] = ...
     """
@@ -76,7 +78,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         The radix, or base of this system. Set to 10000
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -87,7 +91,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         The minimum exponent before underflow is signaled. Flush to zero occurs at minExp-DIGITS
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -98,7 +104,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         The maximum exponent before overflow is signaled and results flushed to infinity
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -109,7 +117,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         The amount under/overflows are scaled by before going to trap handler
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -120,7 +130,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         Indicator value for normal finite numbers.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -131,7 +143,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         Indicator value for Infinity.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -142,7 +156,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         Indicator value for signaling NaN.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -153,7 +169,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         Indicator value for quiet NaN.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -162,8 +180,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         """
             absolute value.
         
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
@@ -200,7 +216,7 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         """
         ...
     @typing.overload
-    def add(self, double: float) -> 'Dfp':
+    def add(self, double: float) -> org.hipparchus.FieldElement:
         """
             Add x to this.
         
@@ -213,17 +229,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Returns:
                 sum of this and x
         
-            '+' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.add` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this+a
-        
         
         """
         ...
@@ -287,19 +292,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 atanh(this)
         
         
-        """
-        ...
-    def cbrt(self) -> 'Dfp':
-        """
-            Cubic root.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.cbrt` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Returns:
-                cubic root of the instance
-        
-        
         """
         ...
     def ceil(self) -> 'Dfp':
@@ -397,10 +389,13 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         """
         ...
     @typing.overload
-    def divide(self, double: float) -> 'Dfp':
+    def divide(self, double: float) -> org.hipparchus.FieldElement:
         """
             Divide this by divisor.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -418,17 +413,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Returns:
                 quotient of this by divisor
         
-            '÷' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this÷a
-        
         
         """
         ...
@@ -442,7 +426,7 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         
             Parameters:
                 type (int): the trap type
-                what (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): - name of routine trap occurred in
+                what (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): - name of routine trap occurred in
                 oper (:class:`~org.hipparchus.dfp.Dfp`): - input operator to function
                 result (:class:`~org.hipparchus.dfp.Dfp`): - the result computed prior to the trap
         
@@ -457,11 +441,11 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Check if instance is equal to x.
         
             Overrides:
-                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): object to check instance against
+                other (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): object to check instance against
         
             Returns:
                 true if instance is equal to x and neither are NaN, false otherwise
@@ -624,8 +608,8 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Gets a hashCode for the instance.
         
             Overrides:
-                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -746,8 +730,10 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -765,8 +751,10 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -786,8 +774,10 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -807,8 +797,10 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -830,8 +822,10 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -853,8 +847,10 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -924,7 +920,7 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         """
         ...
     @typing.overload
-    def multiply(self, double: float) -> 'Dfp':
+    def multiply(self, double: float) -> org.hipparchus.FieldElement:
         """
             Multiply this by x.
         
@@ -939,6 +935,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         
             Multiply this by a single digit x.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -948,17 +947,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Returns:
                 product of this and x
         
-            '×' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this×a
-        
         
         """
         ...
@@ -1050,7 +1038,7 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             subclasses.
         
             Parameters:
-                s (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): string representation of the instance
+                s (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): string representation of the instance
         
             Returns:
                 a new instance parsed from specified string
@@ -1080,7 +1068,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 1.7
         
             Also see:
-                :meth:`~org.hipparchus.dfp.DfpField.getExtendedField`
+        
+                  - :meth:`~org.hipparchus.dfp.DfpField.getExtendedField`
+        
         
         
         """
@@ -1195,9 +1185,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         """
             Returns the multiplicative inverse of :code:`this` element.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1310,7 +1297,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         
         """
         ...
-    def sinCos(self) -> org.hipparchus.util.FieldSinCos['Dfp']: ...
     def sinh(self) -> 'Dfp':
         """
             Hyperbolic sine operation.
@@ -1336,6 +1322,19 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 square root of the instance
         
         
+        """
+        ...
+    def square(self) -> 'Dfp':
+        """
+            Compute this × this.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                a new element representing this × this
+        
+        
         """
         ...
     def strictlyNegative(self) -> bool:
@@ -1359,10 +1358,13 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
         """
         ...
     @typing.overload
-    def subtract(self, double: float) -> 'Dfp':
+    def subtract(self, double: float) -> org.hipparchus.FieldElement:
         """
             Subtract x from this.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1372,17 +1374,6 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Returns:
                 difference of this and a
         
-            '-' operator.
-        
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
-            Parameters:
-                a (double): right hand side parameter of the operator
-        
-            Returns:
-                this-a
-        
         
         """
         ...
@@ -1435,7 +1426,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 a double approximating the instance
         
             Also see:
-                :meth:`~org.hipparchus.dfp.Dfp.toSplitDouble`
+        
+                  - :meth:`~org.hipparchus.dfp.Dfp.toSplitDouble`
+        
         
         
         """
@@ -1461,7 +1454,9 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
                 an array of two doubles which sum represent the instance
         
             Also see:
-                :meth:`~org.hipparchus.dfp.Dfp.toDouble`
+        
+                  - :meth:`~org.hipparchus.dfp.Dfp.toDouble`
+        
         
         
         """
@@ -1471,8 +1466,8 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
             Get a string representation of the instance.
         
             Overrides:
-                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 string representation of the instance
@@ -1509,7 +1504,8 @@ class Dfp(org.hipparchus.CalculusFieldElement['Dfp']):
 
 class DfpField(org.hipparchus.Field[Dfp]):
     """
-    public class DfpField extends :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.dfp.Dfp`>
+    public classDfpField extends :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.dfp.Dfp`>
     
         Field for Decimal floating point instances.
     """
@@ -1520,7 +1516,9 @@ class DfpField(org.hipparchus.Field[Dfp]):
         IEEE 854-1987 flag for invalid operation.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1531,7 +1529,9 @@ class DfpField(org.hipparchus.Field[Dfp]):
         IEEE 854-1987 flag for division by zero.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1542,7 +1542,9 @@ class DfpField(org.hipparchus.Field[Dfp]):
         IEEE 854-1987 flag for overflow.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1553,7 +1555,9 @@ class DfpField(org.hipparchus.Field[Dfp]):
         IEEE 854-1987 flag for underflow.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1564,7 +1568,9 @@ class DfpField(org.hipparchus.Field[Dfp]):
         IEEE 854-1987 flag for inexact result.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1574,10 +1580,16 @@ class DfpField(org.hipparchus.Field[Dfp]):
             Clears the IEEE 854 status flags.
         
             Also see:
-                :meth:`~org.hipparchus.dfp.DfpField.getIEEEFlags`, :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlags`,
-                :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlagsBits`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
+                  - :meth:`~org.hipparchus.dfp.DfpField.getIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlagsBits`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
         
         
         """
@@ -1627,8 +1639,8 @@ class DfpField(org.hipparchus.Field[Dfp]):
             Two fields are considered equals if they have the same number of radix digits and the same rounding mode.
         
             Overrides:
-                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1689,10 +1701,16 @@ class DfpField(org.hipparchus.Field[Dfp]):
                 IEEE 854 status flags
         
             Also see:
-                :meth:`~org.hipparchus.dfp.DfpField.clearIEEEFlags`, :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlags`,
-                :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlagsBits`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
+                  - :meth:`~org.hipparchus.dfp.DfpField.clearIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlagsBits`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
         
         
         """
@@ -1888,8 +1906,8 @@ class DfpField(org.hipparchus.Field[Dfp]):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1950,7 +1968,7 @@ class DfpField(org.hipparchus.Field[Dfp]):
             Create a :class:`~org.hipparchus.dfp.Dfp` given a String representation.
         
             Parameters:
-                s (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): string representation of the instance
+                s (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): string representation of the instance
         
             Returns:
                 a new :class:`~org.hipparchus.dfp.Dfp` parsed from specified string
@@ -1988,10 +2006,16 @@ class DfpField(org.hipparchus.Field[Dfp]):
                 flags (int): desired value for the flags
         
             Also see:
-                :meth:`~org.hipparchus.dfp.DfpField.getIEEEFlags`, :meth:`~org.hipparchus.dfp.DfpField.clearIEEEFlags`,
-                :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlagsBits`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
+                  - :meth:`~org.hipparchus.dfp.DfpField.getIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.clearIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlagsBits`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
         
         
         """
@@ -2006,10 +2030,16 @@ class DfpField(org.hipparchus.Field[Dfp]):
                 bits (int): bits to set
         
             Also see:
-                :meth:`~org.hipparchus.dfp.DfpField.getIEEEFlags`, :meth:`~org.hipparchus.dfp.DfpField.clearIEEEFlags`,
-                :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlags`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`,
-                :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`, :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
+                  - :meth:`~org.hipparchus.dfp.DfpField.getIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.clearIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.setIEEEFlags`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INVALID`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_DIV_ZERO`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_OVERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_UNDERFLOW`
+                  - :meth:`~org.hipparchus.dfp.DfpField.FLAG_INEXACT`
+        
         
         
         """
@@ -2047,7 +2077,7 @@ class DfpField(org.hipparchus.Field[Dfp]):
 
 class DfpMath:
     """
-    public class DfpMath extends :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classDfpMath extends :class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Mathematical routines for use with :class:`~org.hipparchus.dfp.Dfp`. The constants are defined in
         :class:`~org.hipparchus.dfp.DfpField`
@@ -2233,7 +2263,7 @@ class DfpMath:
 
 class DfpDec(Dfp):
     """
-    public class DfpDec extends :class:`~org.hipparchus.dfp.Dfp`
+    public classDfpDec extends :class:`~org.hipparchus.dfp.Dfp`
     
         Subclass of :class:`~org.hipparchus.dfp.Dfp` which hides the radix-10000 artifacts of the superclass. This should give
         outward appearances of being a decimal number with DIGITS*4-3 decimal digits. This class can be subclassed to appear to
@@ -2341,7 +2371,7 @@ class DfpDec(Dfp):
                 :meth:`~org.hipparchus.dfp.Dfp.newInstance` in class :class:`~org.hipparchus.dfp.Dfp`
         
             Parameters:
-                s (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): string representation of the instance
+                s (:class:`~org.hipparchus.dfp.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): string representation of the instance
         
             Returns:
                 a new instance parsed from specified string
diff --git a/org-stubs/hipparchus/distribution/__init__.pyi b/org-stubs/hipparchus/distribution/__init__.pyi
index 2047a4af8e0ad27f959c077b78e45e5036cac374..75a6159a1074f94e9bff7628197c6fcfbd0bc7f5 100644
--- a/org-stubs/hipparchus/distribution/__init__.pyi
+++ b/org-stubs/hipparchus/distribution/__init__.pyi
@@ -19,7 +19,8 @@ import typing
 _EnumeratedDistribution__T = typing.TypeVar('_EnumeratedDistribution__T')  # <T>
 class EnumeratedDistribution(java.io.Serializable, typing.Generic[_EnumeratedDistribution__T]):
     """
-    public class EnumeratedDistribution<T> extends :class:`~org.hipparchus.distribution.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.distribution.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classEnumeratedDistribution<T> extends :class:`~org.hipparchus.distribution.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.distribution.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A generic implementation of a ` discrete probability distribution (Wikipedia)
         <http://en.wikipedia.org/wiki/Probability_distribution#Discrete_probability_distribution>` over a finite sample space,
@@ -36,7 +37,8 @@ class EnumeratedDistribution(java.io.Serializable, typing.Generic[_EnumeratedDis
         constructor, the resulting pmf will assign mass of 0.5 to null, 0.3 to "dog" and 0.2 to null.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, list: java.util.List[org.hipparchus.util.Pair[_EnumeratedDistribution__T, float]]): ...
     @staticmethod
@@ -78,7 +80,7 @@ class EnumeratedDistribution(java.io.Serializable, typing.Generic[_EnumeratedDis
 
 class IntegerDistribution:
     """
-    public interface IntegerDistribution
+    public interfaceIntegerDistribution
     
         Interface for discrete distributions.
     """
@@ -184,7 +186,7 @@ class IntegerDistribution:
             Returns:
                 the value of the probability mass function at :code:`x`
         
-        double probability (int x0, int x1) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        double probability(int x0, int x1) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             For a random variable :code:`X` whose values are distributed according to this distribution, this method returns
             :code:`P(x0 < X <= x1)`.
@@ -208,7 +210,7 @@ class IntegerDistribution:
 
 class MultivariateRealDistribution:
     """
-    public interface MultivariateRealDistribution
+    public interfaceMultivariateRealDistribution
     
         Base interface for multivariate continuous distributions.
     
@@ -260,7 +262,7 @@ class MultivariateRealDistribution:
             Returns:
                 a random value vector.
         
-        double[][] sample (int sampleSize) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        double[][] sample(int sampleSize) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Generates a list of a random value vectors from the distribution.
         
@@ -274,7 +276,9 @@ class MultivariateRealDistribution:
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`sampleSize` is not positive.
         
             Also see:
-                :meth:`~org.hipparchus.distribution.MultivariateRealDistribution.sample`
+        
+                  - :meth:`~org.hipparchus.distribution.MultivariateRealDistribution.sample`
+        
         
         
         """
@@ -284,7 +288,7 @@ class MultivariateRealDistribution:
 
 class RealDistribution:
     """
-    public interface RealDistribution
+    public interfaceRealDistribution
     
         Base interface for continuous distributions.
     """
diff --git a/org-stubs/hipparchus/distribution/continuous/__init__.pyi b/org-stubs/hipparchus/distribution/continuous/__init__.pyi
index b3dce18c112556dc5808d246e701eec285b1a27d..5efef40fcf6f0a58f16e3e9c37093162146288fc 100644
--- a/org-stubs/hipparchus/distribution/continuous/__init__.pyi
+++ b/org-stubs/hipparchus/distribution/continuous/__init__.pyi
@@ -16,14 +16,16 @@ import typing
 
 class AbstractRealDistribution(org.hipparchus.distribution.RealDistribution, java.io.Serializable):
     """
-    public abstract class AbstractRealDistribution extends :class:`~org.hipparchus.distribution.continuous.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.distribution.RealDistribution`, :class:`~org.hipparchus.distribution.continuous.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public abstract classAbstractRealDistribution extends :class:`~org.hipparchus.distribution.continuous.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.distribution.RealDistribution`, :class:`~org.hipparchus.distribution.continuous.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Base class for probability distributions on the reals.
     
         Default implementations are provided for some of the methods that do not vary from distribution to distribution.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def inverseCumulativeProbability(self, double: float) -> float: ...
     def logDensity(self, double: float) -> float:
@@ -55,12 +57,14 @@ class AbstractRealDistribution(org.hipparchus.distribution.RealDistribution, jav
 
 class BetaDistribution(AbstractRealDistribution):
     """
-    public class BetaDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classBetaDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implements the Beta distribution.
     
         Also see:
-            `Beta distribution <http://en.wikipedia.org/wiki/Beta_distribution>`, :meth:`~serialized`
+    
+              - `Beta distribution <http://en.wikipedia.org/wiki/Beta_distribution>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, double2: float): ...
@@ -213,13 +217,15 @@ class BetaDistribution(AbstractRealDistribution):
 
 class CauchyDistribution(AbstractRealDistribution):
     """
-    public class CauchyDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classCauchyDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the Cauchy distribution.
     
         Also see:
-            `Cauchy distribution (Wikipedia) <http://en.wikipedia.org/wiki/Cauchy_distribution>`, `Cauchy Distribution (MathWorld)
-            <http://mathworld.wolfram.com/CauchyDistribution.html>`, :meth:`~serialized`
+    
+              - `Cauchy distribution (Wikipedia) <http://en.wikipedia.org/wiki/Cauchy_distribution>`
+              - `Cauchy Distribution (MathWorld) <http://mathworld.wolfram.com/CauchyDistribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -342,13 +348,15 @@ class CauchyDistribution(AbstractRealDistribution):
 
 class ChiSquaredDistribution(AbstractRealDistribution):
     """
-    public class ChiSquaredDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classChiSquaredDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the chi-squared distribution.
     
         Also see:
-            `Chi-squared distribution (Wikipedia) <http://en.wikipedia.org/wiki/Chi-squared_distribution>`, `Chi-squared
-            Distribution (MathWorld) <http://mathworld.wolfram.com/Chi-SquaredDistribution.html>`, :meth:`~serialized`
+    
+              - `Chi-squared distribution (Wikipedia) <http://en.wikipedia.org/wiki/Chi-squared_distribution>`
+              - `Chi-squared Distribution (MathWorld) <http://mathworld.wolfram.com/Chi-SquaredDistribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float): ...
@@ -488,12 +496,13 @@ class ChiSquaredDistribution(AbstractRealDistribution):
 
 class ConstantRealDistribution(AbstractRealDistribution):
     """
-    public class ConstantRealDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classConstantRealDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the constant real distribution.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, double: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -590,7 +599,7 @@ class ConstantRealDistribution(AbstractRealDistribution):
 
 class EnumeratedRealDistribution(AbstractRealDistribution):
     """
-    public class EnumeratedRealDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classEnumeratedRealDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of a real-valued :class:`~org.hipparchus.distribution.EnumeratedDistribution`.
     
@@ -600,7 +609,8 @@ class EnumeratedRealDistribution(AbstractRealDistribution):
         statistics.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]): ...
@@ -719,13 +729,15 @@ class EnumeratedRealDistribution(AbstractRealDistribution):
 
 class ExponentialDistribution(AbstractRealDistribution):
     """
-    public class ExponentialDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classExponentialDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the exponential distribution.
     
         Also see:
-            `Exponential distribution (Wikipedia) <http://en.wikipedia.org/wiki/Exponential_distribution>`, `Exponential
-            distribution (MathWorld) <http://mathworld.wolfram.com/ExponentialDistribution.html>`, :meth:`~serialized`
+    
+              - `Exponential distribution (Wikipedia) <http://en.wikipedia.org/wiki/Exponential_distribution>`
+              - `Exponential distribution (MathWorld) <http://mathworld.wolfram.com/ExponentialDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -868,13 +880,15 @@ class ExponentialDistribution(AbstractRealDistribution):
 
 class FDistribution(AbstractRealDistribution):
     """
-    public class FDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classFDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the F-distribution.
     
         Also see:
-            `F-distribution (Wikipedia) <http://en.wikipedia.org/wiki/F-distribution>`, `F-distribution (MathWorld)
-            <http://mathworld.wolfram.com/F-Distribution.html>`, :meth:`~serialized`
+    
+              - `F-distribution (Wikipedia) <http://en.wikipedia.org/wiki/F-distribution>`
+              - `F-distribution (MathWorld) <http://mathworld.wolfram.com/F-Distribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, double2: float): ...
@@ -1037,13 +1051,15 @@ class FDistribution(AbstractRealDistribution):
 
 class GammaDistribution(AbstractRealDistribution):
     """
-    public class GammaDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classGammaDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the Gamma distribution.
     
         Also see:
-            `Gamma distribution (Wikipedia) <http://en.wikipedia.org/wiki/Gamma_distribution>`, `Gamma distribution (MathWorld)
-            <http://mathworld.wolfram.com/GammaDistribution.html>`, :meth:`~serialized`
+    
+              - `Gamma distribution (Wikipedia) <http://en.wikipedia.org/wiki/Gamma_distribution>`
+              - `Gamma distribution (MathWorld) <http://mathworld.wolfram.com/GammaDistribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, double2: float): ...
@@ -1199,13 +1215,15 @@ class GammaDistribution(AbstractRealDistribution):
 
 class GumbelDistribution(AbstractRealDistribution):
     """
-    public class GumbelDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classGumbelDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         This class implements the Gumbel distribution.
     
         Also see:
-            `Gumbel Distribution (Wikipedia) <http://en.wikipedia.org/wiki/Gumbel_distribution>`, `Gumbel Distribution (Mathworld)
-            <http://mathworld.wolfram.com/GumbelDistribution.html>`, :meth:`~serialized`
+    
+              - `Gumbel Distribution (Wikipedia) <http://en.wikipedia.org/wiki/Gumbel_distribution>`
+              - `Gumbel Distribution (Mathworld) <http://mathworld.wolfram.com/GumbelDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -1322,12 +1340,14 @@ class GumbelDistribution(AbstractRealDistribution):
 
 class LaplaceDistribution(AbstractRealDistribution):
     """
-    public class LaplaceDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classLaplaceDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         This class implements the Laplace distribution.
     
         Also see:
-            `Laplace distribution (Wikipedia) <http://en.wikipedia.org/wiki/Laplace_distribution>`, :meth:`~serialized`
+    
+              - `Laplace distribution (Wikipedia) <http://en.wikipedia.org/wiki/Laplace_distribution>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -1444,12 +1464,13 @@ class LaplaceDistribution(AbstractRealDistribution):
 
 class LevyDistribution(AbstractRealDistribution):
     """
-    public class LevyDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classLevyDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         This class implements the ` Lévy distribution <http://en.wikipedia.org/wiki/L%C3%A9vy_distribution>`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -1462,8 +1483,7 @@ class LevyDistribution(AbstractRealDistribution):
         
             .. code-block: java
             
-            
-             f(x; u, c) = erfc (√ (c / 2 (x - u )))
+             f(x; u, c) = erfc (√ (c / 2 (x - u )))
              
         
             Parameters:
@@ -1610,7 +1630,7 @@ class LevyDistribution(AbstractRealDistribution):
 
 class LogNormalDistribution(AbstractRealDistribution):
     """
-    public class LogNormalDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classLogNormalDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the log-normal (gaussian) distribution.
     
@@ -1626,8 +1646,10 @@ class LogNormalDistribution(AbstractRealDistribution):
     
     
         Also see:
-            ` Log-normal distribution (Wikipedia) <http://en.wikipedia.org/wiki/Log-normal_distribution>`, ` Log Normal distribution
-            (MathWorld) <http://mathworld.wolfram.com/LogNormalDistribution.html>`, :meth:`~serialized`
+    
+              - ` Log-normal distribution (Wikipedia) <http://en.wikipedia.org/wiki/Log-normal_distribution>`
+              - ` Log Normal distribution (MathWorld) <http://mathworld.wolfram.com/LogNormalDistribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1798,13 +1820,15 @@ class LogNormalDistribution(AbstractRealDistribution):
 
 class LogisticDistribution(AbstractRealDistribution):
     """
-    public class LogisticDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classLogisticDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         This class implements the Logistic distribution.
     
         Also see:
-            `Logistic Distribution (Wikipedia) <http://en.wikipedia.org/wiki/Logistic_distribution>`, `Logistic Distribution
-            (Mathworld) <http://mathworld.wolfram.com/LogisticDistribution.html>`, :meth:`~serialized`
+    
+              - `Logistic Distribution (Wikipedia) <http://en.wikipedia.org/wiki/Logistic_distribution>`
+              - `Logistic Distribution (Mathworld) <http://mathworld.wolfram.com/LogisticDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -1921,12 +1945,14 @@ class LogisticDistribution(AbstractRealDistribution):
 
 class NakagamiDistribution(AbstractRealDistribution):
     """
-    public class NakagamiDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classNakagamiDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         This class implements the Nakagami distribution.
     
         Also see:
-            `Nakagami Distribution (Wikipedia) <http://en.wikipedia.org/wiki/Nakagami_distribution>`, :meth:`~serialized`
+    
+              - `Nakagami Distribution (Wikipedia) <http://en.wikipedia.org/wiki/Nakagami_distribution>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, double2: float): ...
@@ -2045,13 +2071,15 @@ class NakagamiDistribution(AbstractRealDistribution):
 
 class NormalDistribution(AbstractRealDistribution):
     """
-    public class NormalDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classNormalDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the normal (gaussian) distribution.
     
         Also see:
-            `Normal distribution (Wikipedia) <http://en.wikipedia.org/wiki/Normal_distribution>`, `Normal distribution (MathWorld)
-            <http://mathworld.wolfram.com/NormalDistribution.html>`, :meth:`~serialized`
+    
+              - `Normal distribution (Wikipedia) <http://en.wikipedia.org/wiki/Normal_distribution>`
+              - `Normal distribution (MathWorld) <http://mathworld.wolfram.com/NormalDistribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -2206,7 +2234,7 @@ class NormalDistribution(AbstractRealDistribution):
 
 class ParetoDistribution(AbstractRealDistribution):
     """
-    public class ParetoDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classParetoDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the Pareto distribution.
     
@@ -2214,8 +2242,7 @@ class ParetoDistribution(AbstractRealDistribution):
     
         .. code-block: java
         
-        
-          α * k^α / x^(α + 1)
+          α * k^α / x^(α + 1)
          
     
           - :code:`k` is the *scale* parameter: this is the minimum possible value of :code:`X`,
@@ -2223,8 +2250,10 @@ class ParetoDistribution(AbstractRealDistribution):
     
     
         Also see:
-            ` Pareto distribution (Wikipedia) <http://en.wikipedia.org/wiki/Pareto_distribution>`, ` Pareto distribution (MathWorld)
-            <http://mathworld.wolfram.com/ParetoDistribution.html>`, :meth:`~serialized`
+    
+              - ` Pareto distribution (Wikipedia) <http://en.wikipedia.org/wiki/Pareto_distribution>`
+              - ` Pareto distribution (MathWorld) <http://mathworld.wolfram.com/ParetoDistribution.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -2405,12 +2434,13 @@ class ParetoDistribution(AbstractRealDistribution):
 
 class TDistribution(AbstractRealDistribution):
     """
-    public class TDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classTDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of Student's t-distribution.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float): ...
@@ -2561,12 +2591,14 @@ class TDistribution(AbstractRealDistribution):
 
 class TriangularDistribution(AbstractRealDistribution):
     """
-    public class TriangularDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classTriangularDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the triangular real distribution.
     
         Also see:
-            ` Triangular distribution (Wikipedia) <http://en.wikipedia.org/wiki/Triangular_distribution>`, :meth:`~serialized`
+    
+              - ` Triangular distribution (Wikipedia) <http://en.wikipedia.org/wiki/Triangular_distribution>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float, double3: float): ...
     def cumulativeProbability(self, double: float) -> float:
@@ -2690,13 +2722,14 @@ class TriangularDistribution(AbstractRealDistribution):
 
 class UniformRealDistribution(AbstractRealDistribution):
     """
-    public class UniformRealDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classUniformRealDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the uniform real distribution.
     
         Also see:
-            ` Uniform distribution (continuous), at Wikipedia <http://en.wikipedia.org/wiki/Uniform_distribution_(continuous)>`,
-            :meth:`~serialized`
+    
+              - ` Uniform distribution (continuous), at Wikipedia <http://en.wikipedia.org/wiki/Uniform_distribution_(continuous)>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -2800,14 +2833,16 @@ class UniformRealDistribution(AbstractRealDistribution):
 
 class WeibullDistribution(AbstractRealDistribution):
     """
-    public class WeibullDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
+    public classWeibullDistribution extends :class:`~org.hipparchus.distribution.continuous.AbstractRealDistribution`
     
         Implementation of the Weibull distribution. This implementation uses the two parameter form of the distribution defined
         by ` Weibull Distribution <http://mathworld.wolfram.com/WeibullDistribution.html>`, equations (1) and (2).
     
         Also see:
-            `Weibull distribution (Wikipedia) <http://en.wikipedia.org/wiki/Weibull_distribution>`, `Weibull distribution
-            (MathWorld) <http://mathworld.wolfram.com/WeibullDistribution.html>`, :meth:`~serialized`
+    
+              - `Weibull distribution (Wikipedia) <http://en.wikipedia.org/wiki/Weibull_distribution>`
+              - `Weibull distribution (MathWorld) <http://mathworld.wolfram.com/WeibullDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float): ...
     def cumulativeProbability(self, double: float) -> float:
diff --git a/org-stubs/hipparchus/distribution/discrete/__init__.pyi b/org-stubs/hipparchus/distribution/discrete/__init__.pyi
index 2f792187786f46a794f2d7b2f06c50105f8fcbc8..355684734159e4c05f3e3015bf335332b919d529 100644
--- a/org-stubs/hipparchus/distribution/discrete/__init__.pyi
+++ b/org-stubs/hipparchus/distribution/discrete/__init__.pyi
@@ -16,14 +16,16 @@ import typing
 
 class AbstractIntegerDistribution(org.hipparchus.distribution.IntegerDistribution, java.io.Serializable):
     """
-    public abstract class AbstractIntegerDistribution extends :class:`~org.hipparchus.distribution.discrete.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.distribution.IntegerDistribution`, :class:`~org.hipparchus.distribution.discrete.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public abstract classAbstractIntegerDistribution extends :class:`~org.hipparchus.distribution.discrete.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.distribution.IntegerDistribution`, :class:`~org.hipparchus.distribution.discrete.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Base class for integer-valued discrete distributions.
     
         Default implementations are provided for some of the methods that do not vary from distribution to distribution.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def inverseCumulativeProbability(self, double: float) -> int: ...
@@ -57,13 +59,15 @@ class AbstractIntegerDistribution(org.hipparchus.distribution.IntegerDistributio
 
 class BinomialDistribution(AbstractIntegerDistribution):
     """
-    public class BinomialDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classBinomialDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the binomial distribution.
     
         Also see:
-            `Binomial distribution (Wikipedia) <http://en.wikipedia.org/wiki/Binomial_distribution>`, `Binomial Distribution
-            (MathWorld) <http://mathworld.wolfram.com/BinomialDistribution.html>`, :meth:`~serialized`
+    
+              - `Binomial distribution (Wikipedia) <http://en.wikipedia.org/wiki/Binomial_distribution>`
+              - `Binomial Distribution (MathWorld) <http://mathworld.wolfram.com/BinomialDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, double: float): ...
     def cumulativeProbability(self, int: int) -> float:
@@ -209,7 +213,7 @@ class BinomialDistribution(AbstractIntegerDistribution):
 
 class EnumeratedIntegerDistribution(AbstractIntegerDistribution):
     """
-    public class EnumeratedIntegerDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classEnumeratedIntegerDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of an integer-valued :class:`~org.hipparchus.distribution.EnumeratedDistribution`.
     
@@ -219,7 +223,8 @@ class EnumeratedIntegerDistribution(AbstractIntegerDistribution):
         statistics.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, intArray: typing.Union[typing.List[int], jpype.JArray]): ...
@@ -320,13 +325,15 @@ class EnumeratedIntegerDistribution(AbstractIntegerDistribution):
 
 class GeometricDistribution(AbstractIntegerDistribution):
     """
-    public class GeometricDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classGeometricDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the geometric distribution.
     
         Also see:
-            `Geometric distribution (Wikipedia) <http://en.wikipedia.org/wiki/Geometric_distribution>`, `Geometric Distribution
-            (MathWorld) <http://mathworld.wolfram.com/GeometricDistribution.html>`, :meth:`~serialized`
+    
+              - `Geometric distribution (Wikipedia) <http://en.wikipedia.org/wiki/Geometric_distribution>`
+              - `Geometric Distribution (MathWorld) <http://mathworld.wolfram.com/GeometricDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, double: float): ...
     def cumulativeProbability(self, int: int) -> float:
@@ -463,13 +470,15 @@ class GeometricDistribution(AbstractIntegerDistribution):
 
 class HypergeometricDistribution(AbstractIntegerDistribution):
     """
-    public class HypergeometricDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classHypergeometricDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the hypergeometric distribution.
     
         Also see:
-            `Hypergeometric distribution (Wikipedia) <http://en.wikipedia.org/wiki/Hypergeometric_distribution>`, `Hypergeometric
-            distribution (MathWorld) <http://mathworld.wolfram.com/HypergeometricDistribution.html>`, :meth:`~serialized`
+    
+              - `Hypergeometric distribution (Wikipedia) <http://en.wikipedia.org/wiki/Hypergeometric_distribution>`
+              - `Hypergeometric distribution (MathWorld) <http://mathworld.wolfram.com/HypergeometricDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, int2: int, int3: int): ...
     def cumulativeProbability(self, int: int) -> float:
@@ -640,7 +649,7 @@ class HypergeometricDistribution(AbstractIntegerDistribution):
 
 class PascalDistribution(AbstractIntegerDistribution):
     """
-    public class PascalDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classPascalDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the Pascal distribution.
     
@@ -673,8 +682,10 @@ class PascalDistribution(AbstractIntegerDistribution):
         :code:`P(X <= k) = I(p, r, k + 1)`, where I is the regularized incomplete Beta function.
     
         Also see:
-            ` Negative binomial distribution (Wikipedia) <http://en.wikipedia.org/wiki/Negative_binomial_distribution>`, ` Negative
-            binomial distribution (MathWorld) <http://mathworld.wolfram.com/NegativeBinomialDistribution.html>`, :meth:`~serialized`
+    
+              - ` Negative binomial distribution (Wikipedia) <http://en.wikipedia.org/wiki/Negative_binomial_distribution>`
+              - ` Negative binomial distribution (MathWorld) <http://mathworld.wolfram.com/NegativeBinomialDistribution.html>`
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, double: float): ...
     def cumulativeProbability(self, int: int) -> float:
@@ -821,13 +832,15 @@ class PascalDistribution(AbstractIntegerDistribution):
 
 class PoissonDistribution(AbstractIntegerDistribution):
     """
-    public class PoissonDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classPoissonDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the Poisson distribution.
     
         Also see:
-            `Poisson distribution (Wikipedia) <http://en.wikipedia.org/wiki/Poisson_distribution>`, `Poisson distribution
-            (MathWorld) <http://mathworld.wolfram.com/PoissonDistribution.html>`, :meth:`~serialized`
+    
+              - `Poisson distribution (Wikipedia) <http://en.wikipedia.org/wiki/Poisson_distribution>`
+              - `Poisson distribution (MathWorld) <http://mathworld.wolfram.com/PoissonDistribution.html>`
+              - :meth:`~serialized`
     """
     DEFAULT_MAX_ITERATIONS: typing.ClassVar[int] = ...
     """
@@ -836,7 +849,9 @@ class PoissonDistribution(AbstractIntegerDistribution):
         Default maximum number of iterations for cumulative probability calculations.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -847,7 +862,9 @@ class PoissonDistribution(AbstractIntegerDistribution):
         Default convergence criterion.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1008,13 +1025,14 @@ class PoissonDistribution(AbstractIntegerDistribution):
 
 class UniformIntegerDistribution(AbstractIntegerDistribution):
     """
-    public class UniformIntegerDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classUniformIntegerDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the uniform integer distribution.
     
         Also see:
-            ` Uniform distribution (discrete), at Wikipedia <http://en.wikipedia.org/wiki/Uniform_distribution_(discrete)>`,
-            :meth:`~serialized`
+    
+              - ` Uniform distribution (discrete), at Wikipedia <http://en.wikipedia.org/wiki/Uniform_distribution_(discrete)>`
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, int2: int): ...
     def cumulativeProbability(self, int: int) -> float:
@@ -1113,7 +1131,7 @@ class UniformIntegerDistribution(AbstractIntegerDistribution):
 
 class ZipfDistribution(AbstractIntegerDistribution):
     """
-    public class ZipfDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
+    public classZipfDistribution extends :class:`~org.hipparchus.distribution.discrete.AbstractIntegerDistribution`
     
         Implementation of the Zipf distribution.
     
@@ -1122,8 +1140,7 @@ class ZipfDistribution(AbstractIntegerDistribution):
     
         .. code-block: java
         
-        
-           P(X = k) = H(N,s) * 1 / k^s    for k = 1,2,...,N.
+           P(X = k) = H(N,s) * 1 / k^s    for k = 1,2,...,N.
          
     
         :code:`H(N,s)` is the normalizing constant which corresponds to the generalized harmonic number of order N of s.
@@ -1133,9 +1150,10 @@ class ZipfDistribution(AbstractIntegerDistribution):
     
     
         Also see:
-            :class:`~org.hipparchus.distribution.discrete.https:.en.wikipedia.org.wiki.Zipf's_law`,
-            :meth:`~org.hipparchus.distribution.discrete.https:.en.wikipedia.org.wiki.Harmonic_number#Generalized_harmonic_numbers`,
-            :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.distribution.discrete.https:.en.wikipedia.org.wiki.Zipf's_law`
+              - :meth:`~org.hipparchus.distribution.discrete.https:.en.wikipedia.org.wiki.Harmonic_number#Generalized_harmonic_numbers`
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, double: float): ...
     def cumulativeProbability(self, int: int) -> float:
diff --git a/org-stubs/hipparchus/distribution/multivariate/__init__.pyi b/org-stubs/hipparchus/distribution/multivariate/__init__.pyi
index 890dd6390411efcd965d1cb9339da8040a1991d5..450e4162c2a20716d314fe584b64770077750648 100644
--- a/org-stubs/hipparchus/distribution/multivariate/__init__.pyi
+++ b/org-stubs/hipparchus/distribution/multivariate/__init__.pyi
@@ -17,7 +17,8 @@ import typing
 
 class AbstractMultivariateRealDistribution(org.hipparchus.distribution.MultivariateRealDistribution):
     """
-    public abstract class AbstractMultivariateRealDistribution extends :class:`~org.hipparchus.distribution.multivariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.distribution.MultivariateRealDistribution`
+    public abstract classAbstractMultivariateRealDistribution extends :class:`~org.hipparchus.distribution.multivariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.distribution.MultivariateRealDistribution`
     
         Base class for multivariate probability distributions.
     """
@@ -80,7 +81,9 @@ class AbstractMultivariateRealDistribution(org.hipparchus.distribution.Multivari
                 an array representing the random samples.
         
             Also see:
-                :meth:`~org.hipparchus.distribution.MultivariateRealDistribution.sample`
+        
+                  - :meth:`~org.hipparchus.distribution.MultivariateRealDistribution.sample`
+        
         
         
         """
@@ -89,7 +92,7 @@ class AbstractMultivariateRealDistribution(org.hipparchus.distribution.Multivari
 _MixtureMultivariateRealDistribution__T = typing.TypeVar('_MixtureMultivariateRealDistribution__T', bound=org.hipparchus.distribution.MultivariateRealDistribution)  # <T>
 class MixtureMultivariateRealDistribution(AbstractMultivariateRealDistribution, typing.Generic[_MixtureMultivariateRealDistribution__T]):
     """
-    public class MixtureMultivariateRealDistribution<T extends :class:`~org.hipparchus.distribution.MultivariateRealDistribution`> extends :class:`~org.hipparchus.distribution.multivariate.AbstractMultivariateRealDistribution`
+    public classMixtureMultivariateRealDistribution<T extends :class:`~org.hipparchus.distribution.MultivariateRealDistribution`> extends :class:`~org.hipparchus.distribution.multivariate.AbstractMultivariateRealDistribution`
     
         Class for representing ` mixture model <http://en.wikipedia.org/wiki/Mixture_model>` distributions.
     """
@@ -156,13 +159,14 @@ class MixtureMultivariateRealDistribution(AbstractMultivariateRealDistribution,
 
 class MultivariateNormalDistribution(AbstractMultivariateRealDistribution):
     """
-    public class MultivariateNormalDistribution extends :class:`~org.hipparchus.distribution.multivariate.AbstractMultivariateRealDistribution`
+    public classMultivariateNormalDistribution extends :class:`~org.hipparchus.distribution.multivariate.AbstractMultivariateRealDistribution`
     
         Implementation of the multivariate normal (Gaussian) distribution.
     
         Also see:
-            ` Multivariate normal distribution (Wikipedia) <http://en.wikipedia.org/wiki/Multivariate_normal_distribution>`, `
-            Multivariate normal distribution (MathWorld) <http://mathworld.wolfram.com/MultivariateNormalDistribution.html>`
+    
+              - ` Multivariate normal distribution (Wikipedia) <http://en.wikipedia.org/wiki/Multivariate_normal_distribution>`
+              - ` Multivariate normal distribution (MathWorld) <http://mathworld.wolfram.com/MultivariateNormalDistribution.html>`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]): ...
@@ -237,12 +241,13 @@ class MultivariateNormalDistribution(AbstractMultivariateRealDistribution):
 
 class MixtureMultivariateNormalDistribution(MixtureMultivariateRealDistribution[MultivariateNormalDistribution]):
     """
-    public class MixtureMultivariateNormalDistribution extends :class:`~org.hipparchus.distribution.multivariate.MixtureMultivariateRealDistribution`<:class:`~org.hipparchus.distribution.multivariate.MultivariateNormalDistribution`>
+    public classMixtureMultivariateNormalDistribution extends :class:`~org.hipparchus.distribution.multivariate.MixtureMultivariateRealDistribution`<:class:`~org.hipparchus.distribution.multivariate.MultivariateNormalDistribution`>
     
         Multivariate normal mixture distribution. This class is mainly syntactic sugar.
     
         Also see:
-            :class:`~org.hipparchus.distribution.multivariate.MixtureMultivariateRealDistribution`
+    
+              - :class:`~org.hipparchus.distribution.multivariate.MixtureMultivariateRealDistribution`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray3: typing.Union[typing.List[typing.MutableSequence[typing.MutableSequence[float]]], jpype.JArray]): ...
diff --git a/org-stubs/hipparchus/exception/__init__.pyi b/org-stubs/hipparchus/exception/__init__.pyi
index 913d7dc5ac7f592b8c2a4635ff6e869b56e0ae1a..792e5e35005ad23f0cdf6443f8e63d5ec7125bf7 100644
--- a/org-stubs/hipparchus/exception/__init__.pyi
+++ b/org-stubs/hipparchus/exception/__init__.pyi
@@ -14,7 +14,7 @@ import typing
 
 class Localizable(java.io.Serializable):
     """
-    public interface Localizable extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public interfaceLocalizableextends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Interface for localizable strings.
     """
@@ -23,7 +23,7 @@ class Localizable(java.io.Serializable):
             Gets the localized string.
         
             Parameters:
-                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): locale into which to get the string.
+                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): locale into which to get the string.
         
             Returns:
                 the localized string or the source string if no localized version is available.
@@ -44,7 +44,7 @@ class Localizable(java.io.Serializable):
 
 class LocalizedException:
     """
-    public interface LocalizedException
+    public interfaceLocalizedException
     
         This interface specified methods implemented by localized exception classes.
     
@@ -55,7 +55,7 @@ class LocalizedException:
             Gets the message in a specified locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): Locale in which the message should be translated
+                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): Locale in which the message should be translated
         
             Returns:
                 localized message
@@ -86,7 +86,7 @@ class LocalizedException:
 
 class UTF8Control(java.util.ResourceBundle.Control):
     """
-    public class UTF8Control extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.ResourceBundle.Control?is`
+    public classUTF8Control extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.ResourceBundle.Control`
     
         Control class loading properties in UTF-8 encoding.
     
@@ -99,12 +99,14 @@ class UTF8Control(java.util.ResourceBundle.Control):
 
 class DummyLocalizable(Localizable):
     """
-    public class DummyLocalizable extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.exception.Localizable`
+    public classDummyLocalizable extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.exception.Localizable`
     
         Dummy implementation of the :class:`~org.hipparchus.exception.Localizable` interface, without localization.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, string: str): ...
     def getLocalizedString(self, locale: java.util.Locale) -> str:
@@ -116,7 +118,7 @@ class DummyLocalizable(Localizable):
                 interface :class:`~org.hipparchus.exception.Localizable`
         
             Parameters:
-                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): locale into which to get the string.
+                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): locale into which to get the string.
         
             Returns:
                 the localized string or the source string if no localized version is available.
@@ -142,8 +144,8 @@ class DummyLocalizable(Localizable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -151,7 +153,8 @@ class DummyLocalizable(Localizable):
 
 class LocalizedCoreFormats(java.lang.Enum['LocalizedCoreFormats'], Localizable):
     """
-    public enum LocalizedCoreFormats extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.exception.LocalizedCoreFormats`> implements :class:`~org.hipparchus.exception.Localizable`
+    public enumLocalizedCoreFormats extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.exception.LocalizedCoreFormats`>
+    implements :class:`~org.hipparchus.exception.Localizable`
     
         Enumeration for localized messages formats used in exceptions messages.
     
@@ -354,7 +357,7 @@ class LocalizedCoreFormats(java.lang.Enum['LocalizedCoreFormats'], Localizable):
                 interface :class:`~org.hipparchus.exception.Localizable`
         
             Parameters:
-                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): locale into which to get the string.
+                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): locale into which to get the string.
         
             Returns:
                 the localized string or the source string if no localized version is available.
@@ -388,14 +391,14 @@ class LocalizedCoreFormats(java.lang.Enum['LocalizedCoreFormats'], Localizable):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -403,15 +406,7 @@ class LocalizedCoreFormats(java.lang.Enum['LocalizedCoreFormats'], Localizable):
     @staticmethod
     def values() -> typing.MutableSequence['LocalizedCoreFormats']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (LocalizedCoreFormats c : LocalizedCoreFormats.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -422,12 +417,14 @@ class LocalizedCoreFormats(java.lang.Enum['LocalizedCoreFormats'], Localizable):
 
 class MathRuntimeException(java.lang.RuntimeException, LocalizedException):
     """
-    public class MathRuntimeException extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.RuntimeException?is` implements :class:`~org.hipparchus.exception.LocalizedException`
+    public classMathRuntimeException extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.RuntimeException`
+    implements :class:`~org.hipparchus.exception.LocalizedException`
     
         All exceptions thrown by the Hipparchus code inherit from this class.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, throwable: java.lang.Throwable, localizable: Localizable, *object: typing.Any): ...
@@ -451,7 +448,7 @@ class MathRuntimeException(java.lang.RuntimeException, LocalizedException):
             Create an exception for an internal error.
         
             Parameters:
-                cause (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable?is`): root cause
+                cause (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable`): root cause
         
             Returns:
                 a new runtime exception, indicating an internal error and wrapping the given throwable
@@ -463,8 +460,8 @@ class MathRuntimeException(java.lang.RuntimeException, LocalizedException):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.html?is` in
-                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable?is`
+                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.getLocalizedMessage` in
+                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable`
         
         
         """
@@ -474,8 +471,8 @@ class MathRuntimeException(java.lang.RuntimeException, LocalizedException):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.html?is` in
-                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable?is`
+                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.getMessage` in
+                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable`
         
         
         """
@@ -490,7 +487,7 @@ class MathRuntimeException(java.lang.RuntimeException, LocalizedException):
                 interface :class:`~org.hipparchus.exception.LocalizedException`
         
             Parameters:
-                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): Locale in which the message should be translated
+                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): Locale in which the message should be translated
         
             Returns:
                 localized message
@@ -528,7 +525,8 @@ class MathRuntimeException(java.lang.RuntimeException, LocalizedException):
 
 class NullArgumentException(java.lang.NullPointerException, LocalizedException):
     """
-    public class NullArgumentException extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is` implements :class:`~org.hipparchus.exception.LocalizedException`
+    public classNullArgumentException extends :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`
+    implements :class:`~org.hipparchus.exception.LocalizedException`
     
         All conditions checks that fail due to a :code:`null` argument must throw this exception. This class is meant to signal
         a precondition violation ("null is an illegal argument") and so does not extend the standard
@@ -536,11 +534,12 @@ class NullArgumentException(java.lang.NullPointerException, LocalizedException):
         bug.
     
         Note: from 1.0 onwards, this class extends
-        :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is` instead of
+        :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException` instead of
         :class:`~org.hipparchus.exception.MathIllegalArgumentException`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -550,8 +549,8 @@ class NullArgumentException(java.lang.NullPointerException, LocalizedException):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.html?is` in
-                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable?is`
+                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.getLocalizedMessage` in
+                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable`
         
         
         """
@@ -561,8 +560,8 @@ class NullArgumentException(java.lang.NullPointerException, LocalizedException):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable.html?is` in
-                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.Throwable?is`
+                :meth:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException.getMessage` in
+                class :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`
         
         
         """
@@ -577,7 +576,7 @@ class NullArgumentException(java.lang.NullPointerException, LocalizedException):
                 interface :class:`~org.hipparchus.exception.LocalizedException`
         
             Parameters:
-                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): Locale in which the message should be translated
+                locale (:class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): Locale in which the message should be translated
         
             Returns:
                 localized message
@@ -615,14 +614,15 @@ class NullArgumentException(java.lang.NullPointerException, LocalizedException):
 
 class MathIllegalArgumentException(MathRuntimeException):
     """
-    public class MathIllegalArgumentException extends :class:`~org.hipparchus.exception.MathRuntimeException`
+    public classMathIllegalArgumentException extends :class:`~org.hipparchus.exception.MathRuntimeException`
     
         Base class for all preconditions violation exceptions. In most cases, this class should not be instantiated directly: it
         should serve as a base class to create all the exceptions that have the semantics of the standard
-        :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`.
+        :class:`~org.hipparchus.exception.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, throwable: java.lang.Throwable, localizable: Localizable, *object: typing.Any): ...
@@ -631,13 +631,14 @@ class MathIllegalArgumentException(MathRuntimeException):
 
 class MathIllegalStateException(MathRuntimeException):
     """
-    public class MathIllegalStateException extends :class:`~org.hipparchus.exception.MathRuntimeException`
+    public classMathIllegalStateException extends :class:`~org.hipparchus.exception.MathRuntimeException`
     
         Base class for all exceptions that signal that the process throwing the exception is in a state that does not comply
         with the set of states that it is designed to be in.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, throwable: java.lang.Throwable, localizable: Localizable, *object: typing.Any): ...
diff --git a/org-stubs/hipparchus/filtering/kalman/__init__.pyi b/org-stubs/hipparchus/filtering/kalman/__init__.pyi
index a4203e60fce0b0656c5142469bb8e4ad20bd6da7..d52e3327d045b51c0189a6609984670be2d52256 100644
--- a/org-stubs/hipparchus/filtering/kalman/__init__.pyi
+++ b/org-stubs/hipparchus/filtering/kalman/__init__.pyi
@@ -16,7 +16,7 @@ import typing
 _KalmanFilter__T = typing.TypeVar('_KalmanFilter__T', bound='Measurement')  # <T>
 class KalmanFilter(typing.Generic[_KalmanFilter__T]):
     """
-    public interface KalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
+    public interfaceKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
     
         Interface representing a Kalman filter.
     
@@ -47,7 +47,7 @@ class KalmanFilter(typing.Generic[_KalmanFilter__T]):
 
 class Measurement:
     """
-    public interface Measurement
+    public interfaceMeasurement
     
         Interface defining a measurement on process.
     
@@ -87,7 +87,7 @@ class Measurement:
 
 class ProcessEstimate:
     """
-    public class ProcessEstimate extends :class:`~org.hipparchus.filtering.kalman.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classProcessEstimate extends :class:`~org.hipparchus.filtering.kalman.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Holder for process state and covariance.
     
@@ -191,7 +191,8 @@ class ProcessEstimate:
 _AbstractKalmanFilter__T = typing.TypeVar('_AbstractKalmanFilter__T', bound=Measurement)  # <T>
 class AbstractKalmanFilter(KalmanFilter[_AbstractKalmanFilter__T], typing.Generic[_AbstractKalmanFilter__T]):
     """
-    public abstract class AbstractKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.filtering.kalman.KalmanFilter`<T>
+    public abstract classAbstractKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.filtering.kalman.KalmanFilter`<T>
     
         Shared parts between linear and non-linear Kalman filters.
     
diff --git a/org-stubs/hipparchus/filtering/kalman/extended/__init__.pyi b/org-stubs/hipparchus/filtering/kalman/extended/__init__.pyi
index f723c64e96b37071fa673a831bab6d0596d9a25c..252ef8d230ded6cdc7a9e9ef02181febee2c8eb9 100644
--- a/org-stubs/hipparchus/filtering/kalman/extended/__init__.pyi
+++ b/org-stubs/hipparchus/filtering/kalman/extended/__init__.pyi
@@ -14,7 +14,7 @@ import typing
 _ExtendedKalmanFilter__T = typing.TypeVar('_ExtendedKalmanFilter__T', bound=org.hipparchus.filtering.kalman.Measurement)  # <T>
 class ExtendedKalmanFilter(org.hipparchus.filtering.kalman.AbstractKalmanFilter[_ExtendedKalmanFilter__T], typing.Generic[_ExtendedKalmanFilter__T]):
     """
-    public class ExtendedKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.AbstractKalmanFilter`<T>
+    public classExtendedKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.AbstractKalmanFilter`<T>
     
         Kalman filter for :class:`~org.hipparchus.filtering.kalman.extended.NonLinearProcess`.
     
@@ -26,7 +26,7 @@ class ExtendedKalmanFilter(org.hipparchus.filtering.kalman.AbstractKalmanFilter[
 
 class NonLinearEvolution:
     """
-    public class NonLinearEvolution extends :class:`~org.hipparchus.filtering.kalman.extended.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classNonLinearEvolution extends :class:`~org.hipparchus.filtering.kalman.extended.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Container for :class:`~org.hipparchus.filtering.kalman.extended.NonLinearProcess` evolution data.
     
@@ -34,7 +34,8 @@ class NonLinearEvolution:
             1.3
     
         Also see:
-            :class:`~org.hipparchus.filtering.kalman.extended.NonLinearProcess`
+    
+              - :class:`~org.hipparchus.filtering.kalman.extended.NonLinearProcess`
     """
     def __init__(self, double: float, realVector: org.hipparchus.linear.RealVector, realMatrix: org.hipparchus.linear.RealMatrix, realMatrix2: org.hipparchus.linear.RealMatrix, realMatrix3: org.hipparchus.linear.RealMatrix): ...
     def getCurrentState(self) -> org.hipparchus.linear.RealVector:
@@ -91,7 +92,7 @@ class NonLinearEvolution:
 _NonLinearProcess__T = typing.TypeVar('_NonLinearProcess__T', bound=org.hipparchus.filtering.kalman.Measurement)  # <T>
 class NonLinearProcess(typing.Generic[_NonLinearProcess__T]):
     """
-    public interface NonLinearProcess<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
+    public interfaceNonLinearProcess<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
     
         Non-linear process that can be estimated by a :class:`~org.hipparchus.filtering.kalman.extended.ExtendedKalmanFilter`.
     
@@ -101,8 +102,9 @@ class NonLinearProcess(typing.Generic[_NonLinearProcess__T]):
             1.3
     
         Also see:
-            :class:`~org.hipparchus.filtering.kalman.extended.ExtendedKalmanFilter`,
-            :class:`~org.hipparchus.filtering.kalman.linear.LinearProcess`
+    
+              - :class:`~org.hipparchus.filtering.kalman.extended.ExtendedKalmanFilter`
+              - :class:`~org.hipparchus.filtering.kalman.linear.LinearProcess`
     """
     def getEvolution(self, double: float, realVector: org.hipparchus.linear.RealVector, t: _NonLinearProcess__T) -> NonLinearEvolution:
         """
diff --git a/org-stubs/hipparchus/filtering/kalman/linear/__init__.pyi b/org-stubs/hipparchus/filtering/kalman/linear/__init__.pyi
index 288cf660a17e00717500eb4c8a4fd7c7a92c4eec..570913a3296bfed7b51bacf1be1c99ede0e8b9d0 100644
--- a/org-stubs/hipparchus/filtering/kalman/linear/__init__.pyi
+++ b/org-stubs/hipparchus/filtering/kalman/linear/__init__.pyi
@@ -13,7 +13,7 @@ import typing
 
 class LinearEvolution:
     """
-    public class LinearEvolution extends :class:`~org.hipparchus.filtering.kalman.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classLinearEvolution extends :class:`~org.hipparchus.filtering.kalman.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Container for :class:`~org.hipparchus.filtering.kalman.linear.LinearProcess` evolution data.
     
@@ -21,7 +21,8 @@ class LinearEvolution:
             1.3
     
         Also see:
-            :class:`~org.hipparchus.filtering.kalman.linear.LinearProcess`
+    
+              - :class:`~org.hipparchus.filtering.kalman.linear.LinearProcess`
     """
     def __init__(self, realMatrix: org.hipparchus.linear.RealMatrix, realMatrix2: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector, realMatrix3: org.hipparchus.linear.RealMatrix, realMatrix4: org.hipparchus.linear.RealMatrix): ...
     def getCommand(self) -> org.hipparchus.linear.RealVector:
@@ -78,7 +79,7 @@ class LinearEvolution:
 _LinearKalmanFilter__T = typing.TypeVar('_LinearKalmanFilter__T', bound=org.hipparchus.filtering.kalman.Measurement)  # <T>
 class LinearKalmanFilter(org.hipparchus.filtering.kalman.AbstractKalmanFilter[_LinearKalmanFilter__T], typing.Generic[_LinearKalmanFilter__T]):
     """
-    public class LinearKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.AbstractKalmanFilter`<T>
+    public classLinearKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.AbstractKalmanFilter`<T>
     
         Kalman filter for :class:`~org.hipparchus.filtering.kalman.linear.LinearProcess`.
     
@@ -91,7 +92,7 @@ class LinearKalmanFilter(org.hipparchus.filtering.kalman.AbstractKalmanFilter[_L
 _LinearProcess__T = typing.TypeVar('_LinearProcess__T', bound=org.hipparchus.filtering.kalman.Measurement)  # <T>
 class LinearProcess(typing.Generic[_LinearProcess__T]):
     """
-    public interface LinearProcess<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
+    public interfaceLinearProcess<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
     
         Linear process that can be estimated by a :class:`~org.hipparchus.filtering.kalman.linear.LinearKalmanFilter`.
     
@@ -109,8 +110,9 @@ class LinearProcess(typing.Generic[_LinearProcess__T]):
             1.3
     
         Also see:
-            :class:`~org.hipparchus.filtering.kalman.linear.LinearKalmanFilter`,
-            :class:`~org.hipparchus.filtering.kalman.extended.NonLinearProcess`
+    
+              - :class:`~org.hipparchus.filtering.kalman.linear.LinearKalmanFilter`
+              - :class:`~org.hipparchus.filtering.kalman.extended.NonLinearProcess`
     """
     def getEvolution(self, t: _LinearProcess__T) -> LinearEvolution:
         """
diff --git a/org-stubs/hipparchus/filtering/kalman/unscented/__init__.pyi b/org-stubs/hipparchus/filtering/kalman/unscented/__init__.pyi
index ea263689260755ccef3cc9d941c758e42c4a2771..adbec65d1c0e70ecc9098ab0f86ffba81ee23aec 100644
--- a/org-stubs/hipparchus/filtering/kalman/unscented/__init__.pyi
+++ b/org-stubs/hipparchus/filtering/kalman/unscented/__init__.pyi
@@ -15,7 +15,7 @@ import typing
 
 class UnscentedEvolution:
     """
-    public class UnscentedEvolution extends :class:`~org.hipparchus.filtering.kalman.unscented.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classUnscentedEvolution extends :class:`~org.hipparchus.filtering.kalman.unscented.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Container for :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedProcess` evolution data.
     
@@ -23,7 +23,8 @@ class UnscentedEvolution:
             2.2
     
         Also see:
-            :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedProcess`
+    
+              - :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedProcess`
     """
     def __init__(self, double: float, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], realMatrix: org.hipparchus.linear.RealMatrix): ...
     def getCurrentStates(self) -> typing.MutableSequence[org.hipparchus.linear.RealVector]:
@@ -59,17 +60,67 @@ class UnscentedEvolution:
 
 _UnscentedKalmanFilter__T = typing.TypeVar('_UnscentedKalmanFilter__T', bound=org.hipparchus.filtering.kalman.Measurement)  # <T>
 class UnscentedKalmanFilter(org.hipparchus.filtering.kalman.KalmanFilter[_UnscentedKalmanFilter__T], typing.Generic[_UnscentedKalmanFilter__T]):
+    """
+    public classUnscentedKalmanFilter<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`> extends :class:`~org.hipparchus.filtering.kalman.unscented.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.filtering.kalman.KalmanFilter`<T>
+    
+        Unscented Kalman filter for :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedProcess`.
+    
+        Since:
+            2.2
+    
+        Also see:
+    
+              - "Wan, E. A., & Van Der Merwe, R. (2000, October). The unscented Kalman filter for nonlinear estimation. In Proceedings
+                of the IEEE 2000 Adaptive Systems for Signal Processing, Communications, and Control Symposium (Cat. No. 00EX373) (pp.
+                153-158)"
+    """
     def __init__(self, matrixDecomposer: typing.Union[org.hipparchus.linear.MatrixDecomposer, typing.Callable], unscentedProcess: 'UnscentedProcess'[_UnscentedKalmanFilter__T], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate, unscentedTransformProvider: org.hipparchus.util.UnscentedTransformProvider): ...
     def estimationStep(self, t: _UnscentedKalmanFilter__T) -> org.hipparchus.filtering.kalman.ProcessEstimate: ...
-    def getCorrected(self) -> org.hipparchus.filtering.kalman.ProcessEstimate: ...
-    def getPredicted(self) -> org.hipparchus.filtering.kalman.ProcessEstimate: ...
-    def getUnscentedTransformProvider(self) -> org.hipparchus.util.UnscentedTransformProvider: ...
+    def getCorrected(self) -> org.hipparchus.filtering.kalman.ProcessEstimate:
+        """
+            Get the corrected state.
+        
+            Specified by:
+                :meth:`~org.hipparchus.filtering.kalman.KalmanFilter.getCorrected` in
+                interface :class:`~org.hipparchus.filtering.kalman.KalmanFilter`
+        
+            Returns:
+                corrected state
+        
+        
+        """
+        ...
+    def getPredicted(self) -> org.hipparchus.filtering.kalman.ProcessEstimate:
+        """
+            Get the predicted state.
+        
+            Specified by:
+                :meth:`~org.hipparchus.filtering.kalman.KalmanFilter.getPredicted` in
+                interface :class:`~org.hipparchus.filtering.kalman.KalmanFilter`
+        
+            Returns:
+                predicted state
+        
+        
+        """
+        ...
+    def getUnscentedTransformProvider(self) -> org.hipparchus.util.UnscentedTransformProvider:
+        """
+            Get the unscented transform provider.
+        
+            Returns:
+                unscented transform provider
+        
+        
+        """
+        ...
     def predictionAndCorrectionSteps(self, t: _UnscentedKalmanFilter__T, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray]) -> org.hipparchus.filtering.kalman.ProcessEstimate: ...
 
 _UnscentedProcess__T = typing.TypeVar('_UnscentedProcess__T', bound=org.hipparchus.filtering.kalman.Measurement)  # <T>
 class UnscentedProcess(typing.Generic[_UnscentedProcess__T]):
     """
-    public interface UnscentedProcess<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
+    public interfaceUnscentedProcess<T extends :class:`~org.hipparchus.filtering.kalman.Measurement`>
     
         Unscented process that can be estimated by a :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedKalmanFilter`.
     
@@ -79,8 +130,9 @@ class UnscentedProcess(typing.Generic[_UnscentedProcess__T]):
             2.2
     
         Also see:
-            :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedKalmanFilter`,
-            :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedProcess`
+    
+              - :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedKalmanFilter`
+              - :class:`~org.hipparchus.filtering.kalman.unscented.UnscentedProcess`
     """
     def getEvolution(self, double: float, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], t: _UnscentedProcess__T) -> UnscentedEvolution:
         """
diff --git a/org-stubs/hipparchus/fitting/__init__.pyi b/org-stubs/hipparchus/fitting/__init__.pyi
index 5e27eb0490b69e29381b81aaa2895d68d98d57d7..fec2c35f88169666014fa1cae9d832b0fc35530f 100644
--- a/org-stubs/hipparchus/fitting/__init__.pyi
+++ b/org-stubs/hipparchus/fitting/__init__.pyi
@@ -15,7 +15,7 @@ import typing
 
 class AbstractCurveFitter:
     """
-    public abstract class AbstractCurveFitter extends :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classAbstractCurveFitter extends :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Base class that contains common code for fitting parametric univariate real functions :code:`y = f(p :sub:`i` ;x)`,
         where :code:`x` is the independent variable and the :code:`p :sub:`i`` are the *parameters*.
@@ -29,8 +29,7 @@ class AbstractCurveFitter:
     
         .. code-block: java
         
-        
-          ∑y :sub:`k`  - f(x :sub:`k` ) :sup:`2` ,
+          ∑y :sub:`k`  - f(x :sub:`k` ) :sup:`2` ,
          
         which is actually a least-squares problem. This class contains boilerplate code for calling the
         :meth:`~org.hipparchus.fitting.AbstractCurveFitter.fit` method for obtaining the parameters. The problem setup, such as
@@ -41,14 +40,16 @@ class AbstractCurveFitter:
 
 class WeightedObservedPoint(java.io.Serializable):
     """
-    public class WeightedObservedPoint extends :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classWeightedObservedPoint extends :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class is a simple container for weighted observed point in :class:`~org.hipparchus.fitting.AbstractCurveFitter`.
     
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float, double3: float): ...
     def getWeight(self) -> float:
@@ -84,12 +85,14 @@ class WeightedObservedPoint(java.io.Serializable):
 
 class WeightedObservedPoints(java.io.Serializable):
     """
-    public class WeightedObservedPoints extends :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classWeightedObservedPoints extends :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Simple container for weighted observed points used in :class:`~org.hipparchus.fitting.AbstractCurveFitter` algorithms.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     @typing.overload
@@ -102,8 +105,11 @@ class WeightedObservedPoints(java.io.Serializable):
                 y (double): Observed value at :code:`x`. After fitting we should have :code:`f(x)` as close as possible to this value.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`, :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`,
-                :meth:`~org.hipparchus.fitting.WeightedObservedPoints.toList`
+        
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.toList`
+        
         
             Adds a point to the sample.
         
@@ -113,8 +119,11 @@ class WeightedObservedPoints(java.io.Serializable):
                 y (double): Observed value at :code:`x`. After fitting we should have :code:`f(x)` as close as possible to this value.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`, :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`,
-                :meth:`~org.hipparchus.fitting.WeightedObservedPoints.toList`
+        
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.toList`
+        
         
         """
         ...
@@ -129,8 +138,11 @@ class WeightedObservedPoints(java.io.Serializable):
                 observed (:class:`~org.hipparchus.fitting.WeightedObservedPoint`): Observed point to add.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`, :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`,
-                :meth:`~org.hipparchus.fitting.WeightedObservedPoints.toList`
+        
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.add`
+                  - :meth:`~org.hipparchus.fitting.WeightedObservedPoints.toList`
+        
         
         
         """
@@ -145,7 +157,7 @@ class WeightedObservedPoints(java.io.Serializable):
 
 class GaussianCurveFitter(AbstractCurveFitter):
     """
-    public class GaussianCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
+    public classGaussianCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
     
         Fits points to a :class:`~org.hipparchus.fitting.https:.www.hipparchus.org.hipparchus` function.
     
@@ -162,20 +174,19 @@ class GaussianCurveFitter(AbstractCurveFitter):
     
         .. code-block: java
         
-        
-           WeightedObservedPoints obs = new WeightedObservedPoints();
-           obs.add(4.0254623,  531026.0);
-           obs.add(4.03128248, 984167.0);
-           obs.add(4.03839603, 1887233.0);
-           obs.add(4.04421621, 2687152.0);
-           obs.add(4.05132976, 3461228.0);
-           obs.add(4.05326982, 3580526.0);
-           obs.add(4.05779662, 3439750.0);
-           obs.add(4.0636168,  2877648.0);
-           obs.add(4.06943698, 2175960.0);
-           obs.add(4.07525716, 1447024.0);
-           obs.add(4.08237071, 717104.0);
-           obs.add(4.08366408, 620014.0);
+           WeightedObservedPoints obs = new WeightedObservedPoints();
+           obs.add(4.0254623,  531026.0);
+           obs.add(4.03128248, 984167.0);
+           obs.add(4.03839603, 1887233.0);
+           obs.add(4.04421621, 2687152.0);
+           obs.add(4.05132976, 3461228.0);
+           obs.add(4.05326982, 3580526.0);
+           obs.add(4.05779662, 3439750.0);
+           obs.add(4.0636168,  2877648.0);
+           obs.add(4.06943698, 2175960.0);
+           obs.add(4.07525716, 1447024.0);
+           obs.add(4.08237071, 717104.0);
+           obs.add(4.08366408, 620014.0);
            double[] parameters = GaussianCurveFitter.create().fit(obs.toList());
     """
     @staticmethod
@@ -184,14 +195,16 @@ class GaussianCurveFitter(AbstractCurveFitter):
             Creates a default curve fitter. The initial guess for the parameters will be
             :class:`~org.hipparchus.fitting.GaussianCurveFitter.ParameterGuesser` computed automatically, and the maximum number of
             iterations of the optimization algorithm is set to
-            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is`.
+            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE`.
         
             Returns:
                 a curve fitter.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.GaussianCurveFitter.withStartPoint`,
-                :meth:`~org.hipparchus.fitting.GaussianCurveFitter.withMaxIterations`
+        
+                  - :meth:`~org.hipparchus.fitting.GaussianCurveFitter.withStartPoint`
+                  - :meth:`~org.hipparchus.fitting.GaussianCurveFitter.withMaxIterations`
+        
         
         
         """
@@ -228,7 +241,7 @@ class GaussianCurveFitter(AbstractCurveFitter):
 
 class HarmonicCurveFitter(AbstractCurveFitter):
     """
-    public class HarmonicCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
+    public classHarmonicCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
     
         Fits points to a :class:`~org.hipparchus.fitting.https:.www.hipparchus.org.hipparchus` function.
     
@@ -247,14 +260,16 @@ class HarmonicCurveFitter(AbstractCurveFitter):
             Creates a default curve fitter. The initial guess for the parameters will be
             :class:`~org.hipparchus.fitting.HarmonicCurveFitter.ParameterGuesser` computed automatically, and the maximum number of
             iterations of the optimization algorithm is set to
-            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is`.
+            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE`.
         
             Returns:
                 a curve fitter.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.HarmonicCurveFitter.withStartPoint`,
-                :meth:`~org.hipparchus.fitting.HarmonicCurveFitter.withMaxIterations`
+        
+                  - :meth:`~org.hipparchus.fitting.HarmonicCurveFitter.withStartPoint`
+                  - :meth:`~org.hipparchus.fitting.HarmonicCurveFitter.withMaxIterations`
+        
         
         
         """
@@ -291,7 +306,7 @@ class HarmonicCurveFitter(AbstractCurveFitter):
 
 class PolynomialCurveFitter(AbstractCurveFitter):
     """
-    public class PolynomialCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
+    public classPolynomialCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
     
         Fits points to a :class:`~org.hipparchus.fitting.https:.www.hipparchus.org.hipparchus` function.
     
@@ -305,7 +320,7 @@ class PolynomialCurveFitter(AbstractCurveFitter):
         """
             Creates a default curve fitter. Zero will be used as initial guess for the coefficients, and the maximum number of
             iterations of the optimization algorithm is set to
-            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is`.
+            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE`.
         
             Parameters:
                 degree (int): Degree of the polynomial to be fitted.
@@ -314,8 +329,10 @@ class PolynomialCurveFitter(AbstractCurveFitter):
                 a curve fitter.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.PolynomialCurveFitter.withStartPoint`,
-                :meth:`~org.hipparchus.fitting.PolynomialCurveFitter.withMaxIterations`
+        
+                  - :meth:`~org.hipparchus.fitting.PolynomialCurveFitter.withStartPoint`
+                  - :meth:`~org.hipparchus.fitting.PolynomialCurveFitter.withMaxIterations`
+        
         
         
         """
@@ -349,7 +366,7 @@ class PolynomialCurveFitter(AbstractCurveFitter):
 
 class SimpleCurveFitter(AbstractCurveFitter):
     """
-    public class SimpleCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
+    public classSimpleCurveFitter extends :class:`~org.hipparchus.fitting.AbstractCurveFitter`
     
         Fits points to a user-defined :class:`~org.hipparchus.fitting.https:.www.hipparchus.org.hipparchus`.
     """
@@ -357,7 +374,7 @@ class SimpleCurveFitter(AbstractCurveFitter):
     def create(parametricUnivariateFunction: org.hipparchus.analysis.ParametricUnivariateFunction, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> 'SimpleCurveFitter':
         """
             Creates a curve fitter. The maximum number of iterations of the optimization algorithm is set to
-            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is`.
+            :meth:`~org.hipparchus.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE`.
         
             Parameters:
                 f (:class:`~org.hipparchus.fitting.https:.www.hipparchus.org.hipparchus`): Function to fit.
@@ -368,8 +385,10 @@ class SimpleCurveFitter(AbstractCurveFitter):
                 a curve fitter.
         
             Also see:
-                :meth:`~org.hipparchus.fitting.SimpleCurveFitter.withStartPoint`,
-                :meth:`~org.hipparchus.fitting.SimpleCurveFitter.withMaxIterations`
+        
+                  - :meth:`~org.hipparchus.fitting.SimpleCurveFitter.withStartPoint`
+                  - :meth:`~org.hipparchus.fitting.SimpleCurveFitter.withMaxIterations`
+        
         
         
         """
diff --git a/org-stubs/hipparchus/fraction/__init__.pyi b/org-stubs/hipparchus/fraction/__init__.pyi
index a52098f5ecb0733884bd62936d432404d0289f68..4f350ac7ccb87d95c5ef1f5683ced49454e6fa30 100644
--- a/org-stubs/hipparchus/fraction/__init__.pyi
+++ b/org-stubs/hipparchus/fraction/__init__.pyi
@@ -20,12 +20,14 @@ import typing
 
 class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'], java.lang.Comparable['BigFraction'], java.io.Serializable):
     """
-    public class BigFraction extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is` implements :class:`~org.hipparchus.FieldElement`<:class:`~org.hipparchus.fraction.BigFraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.hipparchus.fraction.BigFraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBigFraction extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
+    implements :class:`~org.hipparchus.FieldElement`<:class:`~org.hipparchus.fraction.BigFraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<:class:`~org.hipparchus.fraction.BigFraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of a rational number without any overflow. This class is immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     TWO: typing.ClassVar['BigFraction'] = ...
     """
@@ -209,10 +211,12 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
                 the fraction as a :code:`BigDecimal`.
         
             Raises:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArithmeticException?is`: if the exact quotient does not have a terminating decimal expansion.
+                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArithmeticException`: if the exact quotient does not have a terminating decimal expansion.
         
             Also see:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`
+        
+                  - :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`
+        
         
         """
         ...
@@ -225,15 +229,17 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
         
             Parameters:
                 scale (int): scale of the :code:`BigDecimal` quotient to be returned. see
-                    :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is` for more information.
-                roundingMode (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode?is`): rounding mode to apply. see
-                    :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is` constants.
+                    :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal` for more information.
+                roundingMode (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode`): rounding mode to apply. see
+                    :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal` constants.
         
             Returns:
                 the fraction as a :code:`BigDecimal`.
         
             Also see:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`
+        
+                  - :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`
+        
         
         
         """
@@ -246,17 +252,19 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             numerator divided by denominator.
         
             Parameters:
-                roundingMode (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode?is`): rounding mode to apply. see
-                    :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is` constants.
+                roundingMode (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode`): rounding mode to apply. see
+                    :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal` constants.
         
             Returns:
                 the fraction as a :code:`BigDecimal`.
         
             Raises:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if :code:`roundingMode` does not represent a valid rounding mode.
+                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if :code:`roundingMode` does not represent a valid rounding mode.
         
             Also see:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`
+        
+                  - :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`
+        
         
         """
         ...
@@ -266,8 +274,8 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Compares this object to another based on size.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.html?is` in
-                interface :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo` in
+                interface :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`
         
             Parameters:
                 object (:class:`~org.hipparchus.fraction.BigFraction`): the object to compare to, must not be :code:`null`.
@@ -276,7 +284,9 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
                 -1 if this is less than :code:`object`, +1 if this is greater than :code:`object`, 0 if they are equal.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo`
+        
         
         
         """
@@ -293,7 +303,7 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             reduced form.
         
             Parameters:
-                bg (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is`): the :code:`BigInteger` to divide by, must not be :code:`null`
+                bg (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger`): the :code:`BigInteger` to divide by, must not be :code:`null`
         
             Returns:
                 a :class:`~org.hipparchus.fraction.BigFraction` instance with the resulting values
@@ -359,14 +369,16 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Gets the fraction as a :code:`double`. This calculates the fraction as the numerator divided by denominator.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.doubleValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the fraction as a :code:`double`
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.doubleValue`
+        
         
         
         """
@@ -378,18 +390,20 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             the two fractions are considered to be equal.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): fraction to test for equality to this fraction, can be :code:`null`.
+                other (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): fraction to test for equality to this fraction, can be :code:`null`.
         
             Returns:
                 true if two fractions are equal, false if object is :code:`null`, not an instance of
                 :class:`~org.hipparchus.fraction.BigFraction`, or not equal to this fraction instance.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals`
+        
         
         
         """
@@ -400,14 +414,32 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Gets the fraction as a :code:`float`. This calculates the fraction as the numerator divided by denominator.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.floatValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the fraction as a :code:`float`.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.floatValue`
+        
+        
+        
+        """
+        ...
+    def gcd(self, bigFraction: 'BigFraction') -> 'BigFraction':
+        """
+            Rational number greatest common divisor.
+        
+            Parameters:
+                s (:class:`~org.hipparchus.fraction.BigFraction`): fraction.
+        
+            Returns:
+                gcd(this, s).
+        
+            Since:
+                3.1
         
         
         """
@@ -520,7 +552,7 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
                 a new fraction instance, with the numerator and denominator reduced.
         
             Raises:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArithmeticException?is`: if the denominator is :code:`zero`.
+                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArithmeticException`: if the denominator is :code:`zero`.
         
         
         """
@@ -531,14 +563,16 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Gets a hashCode for the fraction.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode`
+        
         
         
         """
@@ -549,14 +583,16 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Gets the fraction as an :code:`int`. This returns the whole number part of the fraction.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.intValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the whole number fraction part.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.intValue`
+        
         
         
         """
@@ -569,6 +605,22 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
                 true of fraction is an integer
         
         
+        """
+        ...
+    def lcm(self, bigFraction: 'BigFraction') -> 'BigFraction':
+        """
+            Rational number least common multiple.
+        
+            Parameters:
+                s (:class:`~org.hipparchus.fraction.BigFraction`): fraction.
+        
+            Returns:
+                lcm(this, s).
+        
+            Since:
+                3.1
+        
+        
         """
         ...
     def longValue(self) -> int:
@@ -577,14 +629,16 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Gets the fraction as a :code:`long`. This returns the whole number part of the fraction.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.longValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the whole number fraction part.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.longValue`
+        
         
         
         """
@@ -596,7 +650,7 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Multiplies the value of this fraction by the passed :code:`BigInteger`, returning the result in reduced form.
         
             Parameters:
-                bg (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is`): the :code:`BigInteger` to multiply by.
+                bg (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger`): the :code:`BigInteger` to multiply by.
         
             Returns:
                 a :code:`BigFraction` instance with the resulting values.
@@ -700,7 +754,7 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Returns a :code:`BigFraction` whose value is this :sup:`exponent` , returning the result in reduced form.
         
             Parameters:
-                exponent (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is`): exponent to which this :code:`BigFraction` is to be raised.
+                exponent (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger`): exponent to which this :code:`BigFraction` is to be raised.
         
             Returns:
                 this :sup:`exponent` as a :code:`BigFraction`.
@@ -769,19 +823,18 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
         """
         
             Subtracts the value of an
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is` from the value of
-            this :code:`BigFraction`, returning the result in reduced form.
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger` from the value of this
+            :code:`BigFraction`, returning the result in reduced form.
         
             Parameters:
-                bg (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is`): the :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is` to subtract,
-                    cannot be :code:`null`.
+                bg (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger`): the :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger` to subtract, cannot
+                    be :code:`null`.
         
             Returns:
                 a :code:`BigFraction` instance with the resulting values.
         
             Raises:
-                :class:`~org.hipparchus.exception.NullArgumentException`: if the :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is` is
-                    :code:`null`.
+                :class:`~org.hipparchus.exception.NullArgumentException`: if the :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger` is :code:`null`.
         
         
             Subtracts the value of an :code:`integer` from the value of this :code:`BigFraction`, returning the result in reduced
@@ -832,14 +885,16 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
             Returns the :code:`String` representing this fraction, ie "num / dem" or just "num" if the denominator is one.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of the fraction.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString`
+        
         
         
         """
@@ -849,21 +904,24 @@ class BigFraction(java.lang.Number, org.hipparchus.FieldElement['BigFraction'],
 
 class BigFractionField(org.hipparchus.Field[BigFraction], java.io.Serializable):
     """
-    public class BigFractionField extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.fraction.BigFraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBigFractionField extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.fraction.BigFraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of the fractional numbers without any overflow field.
     
         This class is a singleton.
     
         Also see:
-            :class:`~org.hipparchus.fraction.Fraction`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.fraction.Fraction`
+              - :meth:`~serialized`
     """
     def equals(self, object: typing.Any) -> bool:
         """
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -916,8 +974,8 @@ class BigFractionField(org.hipparchus.Field[BigFraction], java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -925,12 +983,14 @@ class BigFractionField(org.hipparchus.Field[BigFraction], java.io.Serializable):
 
 class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.lang.Comparable['Fraction'], java.io.Serializable):
     """
-    public class Fraction extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is` implements :class:`~org.hipparchus.FieldElement`<:class:`~org.hipparchus.fraction.Fraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.hipparchus.fraction.Fraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFraction extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
+    implements :class:`~org.hipparchus.FieldElement`<:class:`~org.hipparchus.fraction.Fraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<:class:`~org.hipparchus.fraction.Fraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of a rational number.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     TWO: typing.ClassVar['Fraction'] = ...
     """
@@ -1086,8 +1146,8 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Compares this object to another based on size.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.html?is` in
-                interface :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo` in
+                interface :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`
         
             Parameters:
                 object (:class:`~org.hipparchus.fraction.Fraction`): the object to compare to
@@ -1117,7 +1177,7 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
                 a :code:`Fraction` instance with the resulting values
         
             Raises:
-                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if the fraction is :code:`null`
+                :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if the fraction is :code:`null`
                 :class:`~org.hipparchus.exception.MathRuntimeException`: if the fraction to divide by is zero
                 :class:`~org.hipparchus.exception.MathRuntimeException`: if the resulting numerator or denominator exceeds :code:`Integer.MAX_VALUE`
         
@@ -1139,8 +1199,8 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Gets the fraction as a :code:`double`. This calculates the fraction as the numerator divided by denominator.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.doubleValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the fraction as a :code:`double`
@@ -1154,11 +1214,11 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             the two fractions are considered to be equal.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): fraction to test for equality to this fraction
+                other (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): fraction to test for equality to this fraction
         
             Returns:
                 true if two fractions are equal, false if object is :code:`null`, not an instance of
@@ -1172,13 +1232,29 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Gets the fraction as a :code:`float`. This calculates the fraction as the numerator divided by denominator.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.floatValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the fraction as a :code:`float`
         
         
+        """
+        ...
+    def gcd(self, fraction: 'Fraction') -> 'Fraction':
+        """
+            Rational number greatest common divisor.
+        
+            Parameters:
+                s (:class:`~org.hipparchus.fraction.Fraction`): fraction.
+        
+            Returns:
+                gcd(this, s).
+        
+            Since:
+                3.1
+        
+        
         """
         ...
     def getDenominator(self) -> int:
@@ -1252,8 +1328,8 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Gets a hashCode for the fraction.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -1266,8 +1342,8 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Gets the fraction as an :code:`int`. This returns the whole number part of the fraction.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.intValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the whole number fraction part
@@ -1283,6 +1359,22 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
                 true of fraction is an integer
         
         
+        """
+        ...
+    def lcm(self, fraction: 'Fraction') -> 'Fraction':
+        """
+            Rational number least common multiple.
+        
+            Parameters:
+                s (:class:`~org.hipparchus.fraction.Fraction`): fraction.
+        
+            Returns:
+                lcm(this, s).
+        
+            Since:
+                3.1
+        
+        
         """
         ...
     def longValue(self) -> int:
@@ -1290,8 +1382,8 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Gets the fraction as a :code:`long`. This returns the whole number part of the fraction.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.longValue` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
             Returns:
                 the whole number fraction part
@@ -1422,14 +1514,16 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
             Returns the :code:`String` representing this fraction, ie "num / dem" or just "num" if the denominator is one.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of the fraction.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString`
+        
         
         
         """
@@ -1439,21 +1533,24 @@ class Fraction(java.lang.Number, org.hipparchus.FieldElement['Fraction'], java.l
 
 class FractionField(org.hipparchus.Field[Fraction], java.io.Serializable):
     """
-    public class FractionField extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.fraction.Fraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFractionField extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.fraction.Fraction`>, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of the fractional numbers field.
     
         This class is a singleton.
     
         Also see:
-            :class:`~org.hipparchus.fraction.Fraction`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.fraction.Fraction`
+              - :meth:`~serialized`
     """
     def equals(self, object: typing.Any) -> bool:
         """
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1506,8 +1603,8 @@ class FractionField(org.hipparchus.Field[Fraction], java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1515,14 +1612,16 @@ class FractionField(org.hipparchus.Field[Fraction], java.io.Serializable):
 
 class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializable):
     """
-    public class BigFractionFormat extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` implements :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBigFractionFormat extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
+    implements :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Formats a BigFraction number in proper format or improper format.
     
         The number format for each of the whole number, numerator and, denominator can be configured.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1538,28 +1637,28 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
         
             Parameters:
                 BigFraction (:class:`~org.hipparchus.fraction.BigFraction`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
         
             Formats an object and appends the result to a StringBuffer. :code:`obj` must be either a
             :class:`~org.hipparchus.fraction.BigFraction` object or a
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger?is` object or a
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is` object. Any other type of
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.math.BigInteger` object or a
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number` object. Any other type of
             object will result in an
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is` being
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException` being
             thrown.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
-                obj (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                obj (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to format.
+                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -1568,41 +1667,47 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`obj` is not a valid type.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.Format.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.Format.format`
+        
         
             Formats a double value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (double): the double value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
             Formats a long value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (long): the long value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
         
         """
@@ -1633,7 +1738,7 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
     def getAvailableLocales() -> typing.MutableSequence[java.util.Locale]:
         """
             Get the set of locales for which complex formats are available. This is the same set as the
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` set.
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` set.
         
             Returns:
                 available complex format locales.
@@ -1659,7 +1764,7 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
             Returns the default complex format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the complex format specific to the given locale.
@@ -1685,7 +1790,7 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
             Returns the default complex format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the complex format specific to the given locale.
@@ -1700,12 +1805,12 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
             formatted as an improper BigFraction.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.parse` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.fraction.BigFraction` object.
@@ -1718,14 +1823,15 @@ class BigFractionFormat(org.hipparchus.fraction.AbstractFormat, java.io.Serializ
 
 class FractionFormat(org.hipparchus.fraction.AbstractFormat):
     """
-    public class FractionFormat extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+    public classFractionFormat extends :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
     
         Formats a Fraction number in proper format or improper format.
     
         The number format for each of the whole number, numerator and, denominator can be configured.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1741,29 +1847,29 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
         
             Parameters:
                 fraction (:class:`~org.hipparchus.fraction.Fraction`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
         
-        public :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is` format (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` obj, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is` toAppendTo, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is` pos) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.MathIllegalStateException`
+        public :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer` format(:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object` obj, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer` toAppendTo, :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition` pos) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.MathIllegalStateException`
         
             Formats an object and appends the result to a StringBuffer. :code:`obj` must be either a
             :class:`~org.hipparchus.fraction.Fraction` object or a
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is` object. Any other type of
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number` object. Any other type of
             object will result in an
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is` being
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException` being
             thrown.
         
             Overrides:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
-                obj (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                obj (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to format.
+                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -1773,41 +1879,47 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`obj` is not a valid type.
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.Format.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.Format.format`
+        
         
             Formats a double value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (double): the double value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
             Formats a long value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (long): the long value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
         
         """
@@ -1838,7 +1950,7 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
     def getAvailableLocales() -> typing.MutableSequence[java.util.Locale]:
         """
             Get the set of locales for which complex formats are available. This is the same set as the
-            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` set.
+            :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` set.
         
             Returns:
                 available complex format locales.
@@ -1864,7 +1976,7 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
             Returns the default complex format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the complex format specific to the given locale.
@@ -1890,7 +2002,7 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
             Returns the default complex format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the complex format specific to the given locale.
@@ -1905,12 +2017,12 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
             formatted as an improper fraction.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.parse` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.fraction.Fraction` object.
@@ -1923,7 +2035,7 @@ class FractionFormat(org.hipparchus.fraction.AbstractFormat):
 
 class ProperBigFractionFormat(BigFractionFormat):
     """
-    public class ProperBigFractionFormat extends :class:`~org.hipparchus.fraction.BigFractionFormat`
+    public classProperBigFractionFormat extends :class:`~org.hipparchus.fraction.BigFractionFormat`
     
         Formats a BigFraction number in proper format. The number format for each of the whole number, numerator and,
         denominator can be configured.
@@ -1932,7 +2044,8 @@ class ProperBigFractionFormat(BigFractionFormat):
         invalid and will result in a :code:`ParseException`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1951,8 +2064,8 @@ class ProperBigFractionFormat(BigFractionFormat):
         
             Parameters:
                 fraction (:class:`~org.hipparchus.fraction.BigFraction`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -1960,36 +2073,40 @@ class ProperBigFractionFormat(BigFractionFormat):
             Formats a double value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (double): the double value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
             Formats a long value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (long): the long value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
         
         """
@@ -2025,8 +2142,8 @@ class ProperBigFractionFormat(BigFractionFormat):
                 :meth:`~org.hipparchus.fraction.BigFractionFormat.parse` in class :class:`~org.hipparchus.fraction.BigFractionFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/ouput parsing parameter.
+                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/ouput parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.fraction.BigFraction` object.
@@ -2039,7 +2156,7 @@ class ProperBigFractionFormat(BigFractionFormat):
 
 class ProperFractionFormat(FractionFormat):
     """
-    public class ProperFractionFormat extends :class:`~org.hipparchus.fraction.FractionFormat`
+    public classProperFractionFormat extends :class:`~org.hipparchus.fraction.FractionFormat`
     
         Formats a Fraction number in proper format. The number format for each of the whole number, numerator and, denominator
         can be configured.
@@ -2048,7 +2165,8 @@ class ProperFractionFormat(FractionFormat):
         invalid and will result in a :code:`ParseException`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -2067,8 +2185,8 @@ class ProperFractionFormat(FractionFormat):
         
             Parameters:
                 fraction (:class:`~org.hipparchus.fraction.Fraction`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -2076,36 +2194,40 @@ class ProperFractionFormat(FractionFormat):
             Formats a double value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (double): the double value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
             Formats a long value as a fraction and appends the result to a StringBuffer.
         
             Specified by:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` in
-                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format` in
+                class :class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         
             Parameters:
                 value (long): the long value to format
-                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): StringBuffer to append to
-                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                buffer (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): StringBuffer to append to
+                position (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 a reference to the appended buffer
         
             Also see:
-                :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is`
+        
+                  - :meth:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.format`
+        
         
         
         """
@@ -2141,8 +2263,8 @@ class ProperFractionFormat(FractionFormat):
                 :meth:`~org.hipparchus.fraction.FractionFormat.parse` in class :class:`~org.hipparchus.fraction.FractionFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/ouput parsing parameter.
+                source (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.fraction.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/ouput parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.fraction.Fraction` object.
diff --git a/org-stubs/hipparchus/geometry/__init__.pyi b/org-stubs/hipparchus/geometry/__init__.pyi
index 642ce90876f3d7e9284c6684100de8fbac1eedcb..51c8138673bcd8b104076b8616bd0853f4d7793b 100644
--- a/org-stubs/hipparchus/geometry/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/__init__.pyi
@@ -22,7 +22,8 @@ import typing
 
 class LocalizedGeometryFormats(java.lang.Enum['LocalizedGeometryFormats'], org.hipparchus.exception.Localizable):
     """
-    public enum LocalizedGeometryFormats extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.geometry.LocalizedGeometryFormats`> implements :class:`~org.hipparchus.geometry.https:.www.hipparchus.org.hipparchus`
+    public enumLocalizedGeometryFormats extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.geometry.LocalizedGeometryFormats`>
+    implements :class:`~org.hipparchus.geometry.https:.www.hipparchus.org.hipparchus`
     
         Enumeration for localized messages formats used in exceptions messages.
     
@@ -84,14 +85,14 @@ class LocalizedGeometryFormats(java.lang.Enum['LocalizedGeometryFormats'], org.h
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -99,15 +100,7 @@ class LocalizedGeometryFormats(java.lang.Enum['LocalizedGeometryFormats'], org.h
     @staticmethod
     def values() -> typing.MutableSequence['LocalizedGeometryFormats']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (LocalizedGeometryFormats c : LocalizedGeometryFormats.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -119,12 +112,14 @@ class LocalizedGeometryFormats(java.lang.Enum['LocalizedGeometryFormats'], org.h
 _Point__S = typing.TypeVar('_Point__S', bound='Space')  # <S>
 class Point(java.io.Serializable, typing.Generic[_Point__S]):
     """
-    public interface Point<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public interfacePoint<S extends :class:`~org.hipparchus.geometry.Space`>extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This interface represents a generic geometrical point.
     
         Also see:
-            :class:`~org.hipparchus.geometry.Space`, :class:`~org.hipparchus.geometry.Vector`
+    
+              - :class:`~org.hipparchus.geometry.Space`
+              - :class:`~org.hipparchus.geometry.Vector`
     """
     def distance(self, point: 'Point'[_Point__S]) -> float: ...
     def getSpace(self) -> 'Space':
@@ -150,12 +145,13 @@ class Point(java.io.Serializable, typing.Generic[_Point__S]):
 
 class Space(java.io.Serializable):
     """
-    public interface Space extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public interfaceSpaceextends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This interface represents a generic space, with affine and vectorial counterparts.
     
         Also see:
-            :class:`~org.hipparchus.geometry.Vector`
+    
+              - :class:`~org.hipparchus.geometry.Vector`
     """
     def getDimension(self) -> int:
         """
@@ -173,7 +169,7 @@ _VectorFormat__S = typing.TypeVar('_VectorFormat__S', bound=Space)  # <S>
 _VectorFormat__V = typing.TypeVar('_VectorFormat__V', bound='Vector')  # <V>
 class VectorFormat(typing.Generic[_VectorFormat__S, _VectorFormat__V]):
     """
-    public abstract class VectorFormat<S extends :class:`~org.hipparchus.geometry.Space`, V extends :class:`~org.hipparchus.geometry.Vector`<S, V>> extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classVectorFormat<S extends :class:`~org.hipparchus.geometry.Space`,V extends :class:`~org.hipparchus.geometry.Vector`<S,V>> extends :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Formats a vector in components list format "{x; y; ...}".
     
@@ -186,41 +182,47 @@ class VectorFormat(typing.Generic[_VectorFormat__S, _VectorFormat__V]):
         position after parsing will be just after the closing curly brace, i.e. just before the trailing space.
     
         **Note:** using "," as a separator may interfere with the grouping separator of the default
-        :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` for the current
+        :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` for the current
         locale. Thus it is advised to use a
-        :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` instance with
-        disabled grouping in such a case.
+        :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` instance with disabled
+        grouping in such a case.
     """
     DEFAULT_PREFIX: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DEFAULT_PREFIX
+    public static final :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` DEFAULT_PREFIX
     
         The default prefix: "{".
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
     DEFAULT_SUFFIX: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DEFAULT_SUFFIX
+    public static final :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` DEFAULT_SUFFIX
     
         The default suffix: "}".
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
     DEFAULT_SEPARATOR: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DEFAULT_SEPARATOR
+    public static final :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` DEFAULT_SEPARATOR
     
         The default separator: ", ".
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -230,8 +232,8 @@ class VectorFormat(typing.Generic[_VectorFormat__S, _VectorFormat__V]):
             Formats the coordinates of a :class:`~org.hipparchus.geometry.Vector` to produce a string.
         
             Parameters:
-                toAppendTo (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
                 coordinates (double...): coordinates of the object to format.
         
             Returns:
@@ -248,7 +250,7 @@ class VectorFormat(typing.Generic[_VectorFormat__S, _VectorFormat__V]):
             Get the set of locales for which point/vector formats are available.
         
             This is the same set as the
-            :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` set.
+            :class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` set.
         
             Returns:
                 available point/vector format locales.
@@ -305,12 +307,14 @@ _Vector__S = typing.TypeVar('_Vector__S', bound=Space)  # <S>
 _Vector__V = typing.TypeVar('_Vector__V', bound='Vector')  # <V>
 class Vector(Point[_Vector__S], org.hipparchus.util.Blendable['Vector'[_Vector__S, _Vector__V]], typing.Generic[_Vector__S, _Vector__V]):
     """
-    public interface Vector<S extends :class:`~org.hipparchus.geometry.Space`, V extends Vector<S, V>> extends :class:`~org.hipparchus.geometry.Point`<S>, :class:`~org.hipparchus.geometry.https:.www.hipparchus.org.hipparchus`<:class:`~org.hipparchus.geometry.Vector`<S, V>>
+    public interfaceVector<S extends :class:`~org.hipparchus.geometry.Space`,V extends Vector<S,V>>extends :class:`~org.hipparchus.geometry.Point`<S>, :class:`~org.hipparchus.geometry.https:.www.hipparchus.org.hipparchus`<:class:`~org.hipparchus.geometry.Vector`<S,V>>
     
         This interface represents a generic vector in a vectorial space or a point in an affine space.
     
         Also see:
-            :class:`~org.hipparchus.geometry.Space`, :class:`~org.hipparchus.geometry.Point`
+    
+              - :class:`~org.hipparchus.geometry.Space`
+              - :class:`~org.hipparchus.geometry.Point`
     """
     @typing.overload
     def add(self, double: float, vector: 'Vector'[_Vector__S, _Vector__V]) -> _Vector__V: ...
@@ -414,7 +418,7 @@ class Vector(Point[_Vector__S], org.hipparchus.util.Blendable['Vector'[_Vector__
             Get a string representation of this vector.
         
             Parameters:
-                format (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the custom format for components
+                format (:class:`~org.hipparchus.geometry.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the custom format for components
         
             Returns:
                 a string representation of this vector
diff --git a/org-stubs/hipparchus/geometry/enclosing/__init__.pyi b/org-stubs/hipparchus/geometry/enclosing/__init__.pyi
index 57bbb044870e2e366c38d54ce0619caf0188beb9..e718cbe2aa08ecf0d986a2fec7f9b1b20de3ec46 100644
--- a/org-stubs/hipparchus/geometry/enclosing/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/enclosing/__init__.pyi
@@ -17,12 +17,13 @@ _Encloser__S = typing.TypeVar('_Encloser__S', bound=org.hipparchus.geometry.Spac
 _Encloser__P = typing.TypeVar('_Encloser__P', bound=org.hipparchus.geometry.Point)  # <P>
 class Encloser(typing.Generic[_Encloser__S, _Encloser__P]):
     """
-    public interface Encloser<S extends :class:`~org.hipparchus.geometry.Space`, P extends :class:`~org.hipparchus.geometry.Point`<S>>
+    public interfaceEncloser<S extends :class:`~org.hipparchus.geometry.Space`,P extends :class:`~org.hipparchus.geometry.Point`<S>>
     
         Interface for algorithms computing enclosing balls.
     
         Also see:
-            :class:`~org.hipparchus.geometry.enclosing.EnclosingBall`
+    
+              - :class:`~org.hipparchus.geometry.enclosing.EnclosingBall`
     """
     def enclose(self, iterable: typing.Union[java.lang.Iterable[_Encloser__P], typing.Sequence[_Encloser__P], typing.Set[_Encloser__P], typing.Callable[[], java.util.Iterator[typing.Any]]]) -> 'EnclosingBall'[_Encloser__S, _Encloser__P]: ...
 
@@ -30,13 +31,17 @@ _EnclosingBall__S = typing.TypeVar('_EnclosingBall__S', bound=org.hipparchus.geo
 _EnclosingBall__P = typing.TypeVar('_EnclosingBall__P', bound=org.hipparchus.geometry.Point)  # <P>
 class EnclosingBall(java.io.Serializable, typing.Generic[_EnclosingBall__S, _EnclosingBall__P]):
     """
-    public class EnclosingBall<S extends :class:`~org.hipparchus.geometry.Space`, P extends :class:`~org.hipparchus.geometry.Point`<S>> extends :class:`~org.hipparchus.geometry.enclosing.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.enclosing.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classEnclosingBall<S extends :class:`~org.hipparchus.geometry.Space`,P extends :class:`~org.hipparchus.geometry.Point`<S>> extends :class:`~org.hipparchus.geometry.enclosing.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.enclosing.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class represents a ball enclosing some points.
     
         Also see:
-            :class:`~org.hipparchus.geometry.Space`, :class:`~org.hipparchus.geometry.Point`,
-            :class:`~org.hipparchus.geometry.enclosing.Encloser`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.geometry.Space`
+              - :class:`~org.hipparchus.geometry.Point`
+              - :class:`~org.hipparchus.geometry.enclosing.Encloser`
+              - :meth:`~serialized`
     """
     def __init__(self, p: _EnclosingBall__P, double: float, *p2: _EnclosingBall__P): ...
     @typing.overload
@@ -109,14 +114,15 @@ _SupportBallGenerator__S = typing.TypeVar('_SupportBallGenerator__S', bound=org.
 _SupportBallGenerator__P = typing.TypeVar('_SupportBallGenerator__P', bound=org.hipparchus.geometry.Point)  # <P>
 class SupportBallGenerator(typing.Generic[_SupportBallGenerator__S, _SupportBallGenerator__P]):
     """
-    public interface SupportBallGenerator<S extends :class:`~org.hipparchus.geometry.Space`, P extends :class:`~org.hipparchus.geometry.Point`<S>>
+    public interfaceSupportBallGenerator<S extends :class:`~org.hipparchus.geometry.Space`,P extends :class:`~org.hipparchus.geometry.Point`<S>>
     
         Interface for generating balls based on support points.
     
         This generator is used in the :class:`~org.hipparchus.geometry.enclosing.WelzlEncloser` algorithm and its derivatives.
     
         Also see:
-            :class:`~org.hipparchus.geometry.enclosing.EnclosingBall`
+    
+              - :class:`~org.hipparchus.geometry.enclosing.EnclosingBall`
     """
     def ballOnSupport(self, list: java.util.List[_SupportBallGenerator__P]) -> EnclosingBall[_SupportBallGenerator__S, _SupportBallGenerator__P]: ...
 
@@ -124,7 +130,8 @@ _WelzlEncloser__S = typing.TypeVar('_WelzlEncloser__S', bound=org.hipparchus.geo
 _WelzlEncloser__P = typing.TypeVar('_WelzlEncloser__P', bound=org.hipparchus.geometry.Point)  # <P>
 class WelzlEncloser(Encloser[_WelzlEncloser__S, _WelzlEncloser__P], typing.Generic[_WelzlEncloser__S, _WelzlEncloser__P]):
     """
-    public class WelzlEncloser<S extends :class:`~org.hipparchus.geometry.Space`, P extends :class:`~org.hipparchus.geometry.Point`<S>> extends :class:`~org.hipparchus.geometry.enclosing.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.enclosing.Encloser`<S, P>
+    public classWelzlEncloser<S extends :class:`~org.hipparchus.geometry.Space`,P extends :class:`~org.hipparchus.geometry.Point`<S>> extends :class:`~org.hipparchus.geometry.enclosing.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.enclosing.Encloser`<S,P>
     
         Class implementing Emo Welzl algorithm to find the smallest enclosing ball in linear time.
     
diff --git a/org-stubs/hipparchus/geometry/euclidean/oned/__init__.pyi b/org-stubs/hipparchus/geometry/euclidean/oned/__init__.pyi
index 7f416c736cf14455ca12000485a944953d08db61..bbdeb5ce190679f75d3b1e98431c603641ca2405 100644
--- a/org-stubs/hipparchus/geometry/euclidean/oned/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/euclidean/oned/__init__.pyi
@@ -18,12 +18,14 @@ import typing
 
 class Euclidean1D(java.io.Serializable, org.hipparchus.geometry.Space):
     """
-    public class Euclidean1D extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.geometry.Space`
+    public classEuclidean1D extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.geometry.Space`
     
         This class implements a one-dimensional space.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def getDimension(self) -> int:
         """
@@ -55,12 +57,13 @@ class Euclidean1D(java.io.Serializable, org.hipparchus.geometry.Space):
 
 class Interval:
     """
-    public class Interval extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classInterval extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class represents a 1D interval.
     
         Also see:
-            :class:`~org.hipparchus.geometry.euclidean.oned.IntervalsSet`
+    
+              - :class:`~org.hipparchus.geometry.euclidean.oned.IntervalsSet`
     """
     def __init__(self, double: float, double2: float): ...
     def checkPoint(self, double: float, double2: float) -> org.hipparchus.geometry.partitioning.Region.Location:
@@ -122,7 +125,8 @@ class Interval:
 
 class IntervalsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclidean1D, Euclidean1D], java.lang.Iterable[typing.MutableSequence[float]]):
     """
-    public class IntervalsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`, :class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`> implements :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<double[]>
+    public classIntervalsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`,:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    implements :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<double[]>
     
         This class represents a 1D region: a set of intervals.
     """
@@ -166,8 +170,8 @@ class IntervalsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclidean
             The iterator does *not* support the optional :code:`remove` operation.
         
             Specified by:
-                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.html?is` in
-                interface :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`
+                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.iterator` in
+                interface :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`
         
         
         """
@@ -176,7 +180,8 @@ class IntervalsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclidean
 
 class OrientedPoint(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean1D]):
     """
-    public class OrientedPoint extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    public classOrientedPoint extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
     
         This class represents a 1D oriented hyperplane.
     
@@ -302,7 +307,7 @@ class OrientedPoint(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean1D]
 
 class SubOrientedPoint(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Euclidean1D, Euclidean1D]):
     """
-    public class SubOrientedPoint extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`, :class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    public classSubOrientedPoint extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`,:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
     
         This class represents sub-hyperplane for :class:`~org.hipparchus.geometry.euclidean.oned.OrientedPoint`.
     
@@ -351,14 +356,16 @@ class SubOrientedPoint(org.hipparchus.geometry.partitioning.AbstractSubHyperplan
 
 class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
     """
-    public class Vector1D extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`, :class:`~org.hipparchus.geometry.euclidean.oned.Vector1D`>
+    public classVector1D extends :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`,:class:`~org.hipparchus.geometry.euclidean.oned.Vector1D`>
     
         This class represents a 1D vector.
     
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     ZERO: typing.ClassVar['Vector1D'] = ...
     """
@@ -486,11 +493,11 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
             :meth:`~org.hipparchus.geometry.euclidean.oned.Vector1D.NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 1D vector objects are equal, false if object is null, not an instance of Vector1D, or not equal to this
@@ -512,7 +519,7 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
             returns :code:`false` despite the instance is checked against itself.
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 1D vector objects are equal, false if object is null, not an instance of Vector1D, or not equal to this
@@ -597,7 +604,9 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
                 abscissa of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.oned.Vector1D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.oned.Vector1D.%3Cinit%3E`
+        
         
         
         """
@@ -622,8 +631,8 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -696,8 +705,8 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
             Get a string representation of this vector.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of this vector
@@ -713,7 +722,7 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
                 :meth:`~org.hipparchus.geometry.Vector.toString` in interface :class:`~org.hipparchus.geometry.Vector`
         
             Parameters:
-                format (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the custom format for components
+                format (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the custom format for components
         
             Returns:
                 a string representation of this vector
@@ -724,7 +733,7 @@ class Vector1D(org.hipparchus.geometry.Vector[Euclidean1D, 'Vector1D']):
 
 class Vector1DFormat(org.hipparchus.geometry.VectorFormat[Euclidean1D, Vector1D]):
     """
-    public class Vector1DFormat extends :class:`~org.hipparchus.geometry.VectorFormat`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`, :class:`~org.hipparchus.geometry.euclidean.oned.Vector1D`>
+    public classVector1DFormat extends :class:`~org.hipparchus.geometry.VectorFormat`<:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`,:class:`~org.hipparchus.geometry.euclidean.oned.Vector1D`>
     
         Formats a 1D vector in components list format "{x}".
     
@@ -737,9 +746,9 @@ class Vector1DFormat(org.hipparchus.geometry.VectorFormat[Euclidean1D, Vector1D]
         parsing will be just after the closing curly brace, i.e. just before the trailing space.
     
         **Note:** using "," as a separator may interfere with the grouping separator of the default
-        :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` for
-        the current locale. Thus it is advised to use a
-        :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+        :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` for the
+        current locale. Thus it is advised to use a
+        :class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         instance with disabled grouping in such a case.
     """
     @typing.overload
@@ -775,7 +784,7 @@ class Vector1DFormat(org.hipparchus.geometry.VectorFormat[Euclidean1D, Vector1D]
             Returns the default 1D vector format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the 1D vector format specific to the given locale.
@@ -795,8 +804,8 @@ class Vector1DFormat(org.hipparchus.geometry.VectorFormat[Euclidean1D, Vector1D]
                 :meth:`~org.hipparchus.geometry.VectorFormat.parse` in class :class:`~org.hipparchus.geometry.VectorFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.geometry.euclidean.oned.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.geometry.Vector` object.
diff --git a/org-stubs/hipparchus/geometry/euclidean/threed/__init__.pyi b/org-stubs/hipparchus/geometry/euclidean/threed/__init__.pyi
index 37799a807d7201bfe5fef5ff41f225ed32078d15..f6b3418a4af97668819b7c371e69433511dfa57f 100644
--- a/org-stubs/hipparchus/geometry/euclidean/threed/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/euclidean/threed/__init__.pyi
@@ -23,12 +23,14 @@ import typing
 
 class Euclidean3D(java.io.Serializable, org.hipparchus.geometry.Space):
     """
-    public class Euclidean3D extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.geometry.Space`
+    public classEuclidean3D extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.geometry.Space`
     
         This class implements a three-dimensional space.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def getDimension(self) -> int:
         """
@@ -65,7 +67,9 @@ class Euclidean3D(java.io.Serializable, org.hipparchus.geometry.Space):
                 n-1 dimension sub-space of this space
         
             Also see:
-                :meth:`~org.hipparchus.geometry.Space.getDimension`
+        
+                  - :meth:`~org.hipparchus.geometry.Space.getDimension`
+        
         
         
         """
@@ -74,7 +78,7 @@ class Euclidean3D(java.io.Serializable, org.hipparchus.geometry.Space):
 _FieldLine__T = typing.TypeVar('_FieldLine__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldLine(typing.Generic[_FieldLine__T]):
     """
-    public class FieldLine<T extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldLine<T extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         The class represent lines in a three dimensional space.
     
@@ -114,7 +118,7 @@ class FieldLine(typing.Generic[_FieldLine__T]):
             Returns:
                 distance between the instance and the point
         
-        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldLine` distance (:class:`~org.hipparchus.geometry.euclidean.threed.FieldLine`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldLine`> line)
+        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldLine` distance(:class:`~org.hipparchus.geometry.euclidean.threed.FieldLine`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldLine`> line)
         
             Compute the shortest distance between the instance and another line.
         
@@ -173,7 +177,8 @@ class FieldLine(typing.Generic[_FieldLine__T]):
 _FieldRotation__T = typing.TypeVar('_FieldRotation__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
     """
-    public class FieldRotation<T extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFieldRotation<T extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class is a re-implementation of :class:`~org.hipparchus.geometry.euclidean.threed.Rotation` using
         :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`.
@@ -181,8 +186,10 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
         Instance of this class are guaranteed to be immutable.
     
         Also see:
-            :class:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D`,
-            :class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D`
+              - :class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, t: _FieldRotation__T, t2: _FieldRotation__T, t3: _FieldRotation__T, t4: _FieldRotation__T, boolean: bool): ...
@@ -221,7 +228,7 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
             Returns:
                 a new vector which such that u is its image by the rotation
         
-        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyInverseTo (:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> r)
+        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyInverseTo(:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> r)
         
             Apply the inverse of the instance to another rotation.
         
@@ -234,7 +241,7 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
             Returns:
                 a new rotation which is the composition of r by the inverse of the instance
         
-        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyInverseTo (:class:`~org.hipparchus.geometry.euclidean.threed.Rotation` r)
+        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyInverseTo(:class:`~org.hipparchus.geometry.euclidean.threed.Rotation` r)
         
             Apply the inverse of the instance to another rotation.
         
@@ -307,7 +314,7 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
             Returns:
                 a new vector which is the image of u by the rotation
         
-        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyTo (:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> r)
+        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyTo(:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> r)
         
             Apply the instance to another rotation.
         
@@ -319,7 +326,7 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
             Returns:
                 a new rotation which is the composition of r by the instance
         
-        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyTo (:class:`~org.hipparchus.geometry.euclidean.threed.Rotation` r)
+        public :class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`> applyTo(:class:`~org.hipparchus.geometry.euclidean.threed.Rotation` r)
         
             Apply the instance to another rotation.
         
@@ -412,12 +419,45 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
                 angle of the rotation (between 0 and π)
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldRotation.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldRotation.%3Cinit%3E`
+        
+        
+        
+        """
+        ...
+    def getAngles(self, rotationOrder: 'RotationOrder', rotationConvention: 'RotationConvention') -> typing.MutableSequence[_FieldRotation__T]:
+        """
+            Get the Cardan or Euler angles corresponding to the instance.
+        
+            The equations show that each rotation can be defined by two different values of the Cardan or Euler angles set. For
+            example if Cardan angles are used, the rotation defined by the angles a :sub:`1` , a :sub:`2` and a :sub:`3` is the same
+            as the rotation defined by the angles π + a :sub:`1` , π - a :sub:`2` and π + a :sub:`3` . This method implements the
+            following arbitrary choices:
+        
+              - for Cardan angles, the chosen set is the one for which the second angle is between -π/2 and π/2 (i.e its cosine is
+                positive),
+              - for Euler angles, the chosen set is the one for which the second angle is between 0 and π (i.e its sine is positive).
+        
+        
+            Cardan and Euler angle have a very disappointing drawback: all of them have singularities. This means that if the
+            instance is too close to the singularities corresponding to the given rotation order, it will be impossible to retrieve
+            the angles. For Cardan angles, this is often called gimbal lock. There is *nothing* to do to prevent this, it is an
+            intrinsic problem with Cardan and Euler representation (but not a problem with the rotation itself, which is perfectly
+            well defined). For Cardan angles, singularities occur when the second angle is close to -Ï€/2 or +Ï€/2, for Euler angle
+            singularities occur when the second angle is close to 0 or π, this implies that the identity rotation is always
+            singular for Euler angles!
+        
+            Parameters:
+                order (:class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`): rotation order to use
+                convention (:class:`~org.hipparchus.geometry.euclidean.threed.RotationConvention`): convention to use for the semantics of the angle
+        
+            Returns:
+                an array of three angles, in the order specified by the set
         
         
         """
         ...
-    def getAngles(self, rotationOrder: 'RotationOrder', rotationConvention: 'RotationConvention') -> typing.MutableSequence[_FieldRotation__T]: ...
     def getAxis(self, rotationConvention: 'RotationConvention') -> 'FieldVector3D'[_FieldRotation__T]: ...
     _getIdentity__T = typing.TypeVar('_getIdentity__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
@@ -499,7 +539,8 @@ class FieldRotation(java.io.Serializable, typing.Generic[_FieldRotation__T]):
 _FieldVector3D__T = typing.TypeVar('_FieldVector3D__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVector3D__T], _FieldVector3D__T], java.io.Serializable, typing.Generic[_FieldVector3D__T]):
     """
-    public class FieldVector3D<T extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D`<T>, T>, :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFieldVector3D<T extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`<:class:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D`<T>,T>, :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class is a re-implementation of :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D` using
         :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`.
@@ -507,7 +548,8 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
         Instance of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, fieldVector3D: 'FieldVector3D'[_FieldVector3D__T]): ...
@@ -911,7 +953,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 the dot product this.v
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`
+        
         
         """
         ...
@@ -969,11 +1013,11 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
             all) real part of the coordinates of the 3D vector are :code:`NaN`, the 3D vector is :code:`NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 3D vector objects are equal, false if object is null, not an instance of FieldVector3D, or not equal to this
@@ -990,7 +1034,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 azimuth (α) of the vector, between -π and +π
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
         
         
         """
@@ -1003,7 +1049,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 elevation (δ) of the vector, between -π/2 and +π/2
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
         
         
         """
@@ -1191,7 +1239,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 abscissa of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
         
         
         """
@@ -1204,7 +1254,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 ordinate of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
         
         
         """
@@ -1217,7 +1269,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 height of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
         
         
         """
@@ -1244,8 +1298,8 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -1300,7 +1354,9 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
                 vector coordinates
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.FieldVector3D.%3Cinit%3E`
+        
         
         
         """
@@ -1311,8 +1367,8 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
             Get a string representation of this vector.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of this vector
@@ -1325,7 +1381,7 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
             Get a string representation of this vector.
         
             Parameters:
-                format (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the custom format for components
+                format (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the custom format for components
         
             Returns:
                 a string representation of this vector
@@ -1346,7 +1402,8 @@ class FieldVector3D(org.hipparchus.util.FieldBlendable['FieldVector3D'[_FieldVec
 
 class Line(org.hipparchus.geometry.partitioning.Embedding[Euclidean3D, org.hipparchus.geometry.euclidean.oned.Euclidean1D]):
     """
-    public class Line extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    public classLine extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
     
         The class represent lines in a three dimensional space.
     
@@ -1355,8 +1412,9 @@ class Line(org.hipparchus.geometry.partitioning.Embedding[Euclidean3D, org.hippa
         the point of the line which is closest to the origin. Abscissa increases in the line direction.
     
         Also see:
-            :meth:`~org.hipparchus.geometry.euclidean.threed.Line.fromDirection`,
-            :meth:`~org.hipparchus.geometry.euclidean.threed.Line.%3Cinit%3E`
+    
+              - :meth:`~org.hipparchus.geometry.euclidean.threed.Line.fromDirection`
+              - :meth:`~org.hipparchus.geometry.euclidean.threed.Line.%3Cinit%3E`
     """
     @typing.overload
     def __init__(self, line: 'Line'): ...
@@ -1429,7 +1487,9 @@ class Line(org.hipparchus.geometry.partitioning.Embedding[Euclidean3D, org.hippa
                 :class:`~org.hipparchus.geometry.euclidean.threed.https:.www.hipparchus.org.hipparchus`: if :code:`direction` is the zero vector.
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Line.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Line.%3Cinit%3E`
+        
         
         
         """
@@ -1553,7 +1613,7 @@ class Line(org.hipparchus.geometry.partitioning.Embedding[Euclidean3D, org.hippa
 
 class OutlineExtractor:
     """
-    public class OutlineExtractor extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classOutlineExtractor extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Extractor for :class:`~org.hipparchus.geometry.euclidean.twod.PolygonsSet` outlines.
     
@@ -1577,7 +1637,8 @@ class OutlineExtractor:
 
 class Plane(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean3D], org.hipparchus.geometry.partitioning.Embedding[Euclidean3D, org.hipparchus.geometry.euclidean.twod.Euclidean2D]):
     """
-    public class Plane extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`>, :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>
+    public classPlane extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`>, :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>
     
         The class represent planes in a three dimensional space.
     """
@@ -1645,8 +1706,10 @@ class Plane(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean3D], org.hi
                 normalized normal vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getU`,
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getV`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getU`
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getV`
+        
         
         
         """
@@ -1667,17 +1730,17 @@ class Plane(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean3D], org.hi
             Returns:
                 offset of the plane
         
-        public double getOffset (:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`> vector)
+        public double getOffset(:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`> vector)
         
             Get the offset (oriented distance) of a vector.
         
             Parameters:
-                vector (:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`> vector): vector to check
+                vector (:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`> vector): vector to check
         
             Returns:
                 offset of the vector
         
-        public double getOffset (:class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`> point)
+        public double getOffset(:class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`> point)
         
             Get the offset (oriented distance) of a point.
         
@@ -1753,8 +1816,10 @@ class Plane(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean3D], org.hi
                 normalized first canonical vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getV`,
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getNormal`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getV`
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getNormal`
+        
         
         
         """
@@ -1771,8 +1836,10 @@ class Plane(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean3D], org.hi
                 normalized second canonical vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getU`,
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getNormal`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getU`
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Plane.getNormal`
+        
         
         
         """
@@ -1934,7 +2001,7 @@ class Plane(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean3D], org.hi
 
 class PolyhedronsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclidean3D, org.hipparchus.geometry.euclidean.twod.Euclidean2D]):
     """
-    public class PolyhedronsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>
+    public classPolyhedronsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>
     
         This class represents a 3D region: a set of polyhedrons.
     """
@@ -1991,7 +2058,8 @@ class PolyhedronsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclide
 
 class Rotation(java.io.Serializable):
     """
-    public class Rotation extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classRotation extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements rotations in a three-dimensional space.
     
@@ -2007,8 +2075,7 @@ class Rotation(java.io.Serializable):
     
         .. code-block: java
         
-        
-         double[] angles = new Rotation(matrix, 1.0e-10).getAngles(RotationOrder.XYZ);
+         double[] angles = new Rotation(matrix, 1.0e-10).getAngles(RotationOrder.XYZ);
          
     
         Focus is oriented on what a rotation *do* rather than on its underlying representation. Once it has been built, and
@@ -2048,8 +2115,10 @@ class Rotation(java.io.Serializable):
         Rotations are guaranteed to be immutable objects.
     
         Also see:
-            :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`,
-            :class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`
+              - :class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`
+              - :meth:`~serialized`
     """
     IDENTITY: typing.ClassVar['Rotation'] = ...
     """
@@ -2234,12 +2303,45 @@ class Rotation(java.io.Serializable):
                 angle of the rotation (between 0 and π)
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Rotation.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Rotation.%3Cinit%3E`
+        
+        
+        
+        """
+        ...
+    def getAngles(self, rotationOrder: 'RotationOrder', rotationConvention: 'RotationConvention') -> typing.MutableSequence[float]:
+        """
+            Get the Cardan or Euler angles corresponding to the instance.
+        
+            The equations show that each rotation can be defined by two different values of the Cardan or Euler angles set. For
+            example if Cardan angles are used, the rotation defined by the angles a :sub:`1` , a :sub:`2` and a :sub:`3` is the same
+            as the rotation defined by the angles π + a :sub:`1` , π - a :sub:`2` and π + a :sub:`3` . This method implements the
+            following arbitrary choices:
+        
+              - for Cardan angles, the chosen set is the one for which the second angle is between -π/2 and π/2 (i.e its cosine is
+                positive),
+              - for Euler angles, the chosen set is the one for which the second angle is between 0 and π (i.e its sine is positive).
+        
+        
+            Cardan and Euler angle have a very disappointing drawback: all of them have singularities. This means that if the
+            instance is too close to the singularities corresponding to the given rotation order, it will be impossible to retrieve
+            the angles. For Cardan angles, this is often called gimbal lock. There is *nothing* to do to prevent this, it is an
+            intrinsic problem with Cardan and Euler representation (but not a problem with the rotation itself, which is perfectly
+            well defined). For Cardan angles, singularities occur when the second angle is close to -Ï€/2 or +Ï€/2, for Euler angle
+            singularities occur when the second angle is close to 0 or π, this implies that the identity rotation is always
+            singular for Euler angles!
+        
+            Parameters:
+                order (:class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`): rotation order to use
+                convention (:class:`~org.hipparchus.geometry.euclidean.threed.RotationConvention`): convention to use for the semantics of the angle
+        
+            Returns:
+                an array of three angles, in the order specified by the set
         
         
         """
         ...
-    def getAngles(self, rotationOrder: 'RotationOrder', rotationConvention: 'RotationConvention') -> typing.MutableSequence[float]: ...
     def getAxis(self, rotationConvention: 'RotationConvention') -> 'Vector3D':
         """
             Get the normalized axis of the rotation.
@@ -2254,7 +2356,9 @@ class Rotation(java.io.Serializable):
                 normalized axis of the rotation
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Rotation.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Rotation.%3Cinit%3E`
+        
         
         
         """
@@ -2323,12 +2427,13 @@ class Rotation(java.io.Serializable):
 
 class RotationConvention(java.lang.Enum['RotationConvention']):
     """
-    public enum RotationConvention extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.geometry.euclidean.threed.RotationConvention`>
+    public enumRotationConvention extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.geometry.euclidean.threed.RotationConvention`>
     
         This enumerates is used to differentiate the semantics of a rotation.
     
         Also see:
-            :class:`~org.hipparchus.geometry.euclidean.threed.Rotation`
+    
+              - :class:`~org.hipparchus.geometry.euclidean.threed.Rotation`
     """
     VECTOR_OPERATOR: typing.ClassVar['RotationConvention'] = ...
     FRAME_TRANSFORM: typing.ClassVar['RotationConvention'] = ...
@@ -2344,14 +2449,14 @@ class RotationConvention(java.lang.Enum['RotationConvention']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -2359,15 +2464,7 @@ class RotationConvention(java.lang.Enum['RotationConvention']):
     @staticmethod
     def values() -> typing.MutableSequence['RotationConvention']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (RotationConvention c : RotationConvention.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -2378,13 +2475,11 @@ class RotationConvention(java.lang.Enum['RotationConvention']):
 
 class RotationOrder(java.lang.Enum['RotationOrder']):
     """
-    public enum RotationOrder extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`>
+    public enumRotationOrder extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.geometry.euclidean.threed.RotationOrder`>
     
-        This class is a utility representing a rotation order specification for Cardan or Euler angles specification. This class
-        cannot be instanciated by the user. He can only use one of the twelve predefined supported orders as an argument to
-        either the :meth:`~org.hipparchus.geometry.euclidean.threed.Rotation.%3Cinit%3E` constructor or the
-        :meth:`~org.hipparchus.geometry.euclidean.threed.Rotation.getAngles` method. Since Hipparchus 1.7 this class is an
-        enumerate class.
+        Enumerate representing a rotation order specification for Cardan or Euler angles.
+    
+        Since Hipparchus 1.7 this class is an enumerate class.
     """
     XYZ: typing.ClassVar['RotationOrder'] = ...
     XZY: typing.ClassVar['RotationOrder'] = ...
@@ -2420,10 +2515,46 @@ class RotationOrder(java.lang.Enum['RotationOrder']):
         ...
     def getA3(self) -> 'Vector3D':
         """
-            Get the axis of the second rotation.
+            Get the axis of the third rotation.
         
             Returns:
-                axis of the second rotation
+                axis of the third rotation
+        
+        
+        """
+        ...
+    _getAngles_1__T = typing.TypeVar('_getAngles_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getAngles(self, rotation: Rotation, rotationConvention: RotationConvention) -> typing.MutableSequence[float]:
+        """
+            Get the Cardan or Euler angles corresponding to the instance.
+        
+            Parameters:
+                rotation (:class:`~org.hipparchus.geometry.euclidean.threed.Rotation`): rotation from which angles should be extracted
+                convention (:class:`~org.hipparchus.geometry.euclidean.threed.RotationConvention`): convention to use for the semantics of the angle
+        
+            Returns:
+                an array of three angles, in the order specified by the set
+        
+            Since:
+                3.1
+        
+        """
+        ...
+    @typing.overload
+    def getAngles(self, fieldRotation: FieldRotation[_getAngles_1__T], rotationConvention: RotationConvention) -> typing.MutableSequence[_getAngles_1__T]:
+        """
+            Get the Cardan or Euler angles corresponding to the instance.
+        
+            Parameters:
+                rotation (:class:`~org.hipparchus.geometry.euclidean.threed.FieldRotation`<T> rotation): rotation from which angles should be extracted
+                convention (:class:`~org.hipparchus.geometry.euclidean.threed.RotationConvention`): convention to use for the semantics of the angle
+        
+            Returns:
+                an array of three angles, in the order specified by the set
+        
+            Since:
+                3.1
         
         
         """
@@ -2434,7 +2565,7 @@ class RotationOrder(java.lang.Enum['RotationOrder']):
             Get the rotation order corresponding to a string representation.
         
             Parameters:
-                value (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): name
+                value (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): name
         
             Returns:
                 a rotation order object
@@ -2450,8 +2581,8 @@ class RotationOrder(java.lang.Enum['RotationOrder']):
             Get a string representation of the instance.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum.toString` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`
         
             Returns:
                 a string representation of the instance (in fact, its name)
@@ -2471,14 +2602,14 @@ class RotationOrder(java.lang.Enum['RotationOrder']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -2486,15 +2617,7 @@ class RotationOrder(java.lang.Enum['RotationOrder']):
     @staticmethod
     def values() -> typing.MutableSequence['RotationOrder']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (RotationOrder c : RotationOrder.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -2505,7 +2628,7 @@ class RotationOrder(java.lang.Enum['RotationOrder']):
 
 class Segment:
     """
-    public class Segment extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSegment extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Simple container for a two-points segment.
     """
@@ -2543,7 +2666,8 @@ class Segment:
 
 class SphereGenerator(org.hipparchus.geometry.enclosing.SupportBallGenerator[Euclidean3D, 'Vector3D']):
     """
-    public class SphereGenerator extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.enclosing.SupportBallGenerator`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`>
+    public classSphereGenerator extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.enclosing.SupportBallGenerator`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`>
     
         Class generating an enclosing ball from its support points.
     """
@@ -2552,7 +2676,8 @@ class SphereGenerator(org.hipparchus.geometry.enclosing.SupportBallGenerator[Euc
 
 class SphericalCoordinates(java.io.Serializable):
     """
-    public class SphericalCoordinates extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSphericalCoordinates extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class provides conversions related to `spherical coordinates
         <http://mathworld.wolfram.com/SphericalCoordinates.html>`.
@@ -2578,7 +2703,8 @@ class SphericalCoordinates(java.io.Serializable):
         coordinates.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float): ...
@@ -2602,8 +2728,10 @@ class SphericalCoordinates(java.io.Serializable):
                 polar (co-latitude) angle Φ
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getR`,
-                :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getTheta`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getR`
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getTheta`
+        
         
         
         """
@@ -2616,8 +2744,10 @@ class SphericalCoordinates(java.io.Serializable):
                 radius r
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getTheta`,
-                :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getPhi`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getTheta`
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getPhi`
+        
         
         
         """
@@ -2630,8 +2760,10 @@ class SphericalCoordinates(java.io.Serializable):
                 azimuthal angle in x-y plane θ
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getR`,
-                :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getPhi`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getR`
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.SphericalCoordinates.getPhi`
+        
         
         
         """
@@ -2673,7 +2805,7 @@ class SphericalCoordinates(java.io.Serializable):
 
 class SubLine:
     """
-    public class SubLine extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSubLine extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class represents a subset of a :class:`~org.hipparchus.geometry.euclidean.threed.Line`.
     """
@@ -2707,7 +2839,7 @@ class SubLine:
 
 class SubPlane(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Euclidean3D, org.hipparchus.geometry.euclidean.twod.Euclidean2D]):
     """
-    public class SubPlane extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>
+    public classSubPlane extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>
     
         This class represents a sub-hyperplane for :class:`~org.hipparchus.geometry.euclidean.threed.Plane`.
     """
@@ -2716,14 +2848,16 @@ class SubPlane(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Euclid
 
 class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D, 'Vector3D']):
     """
-    public class Vector3D extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`>
+    public classVector3D extends :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`>
     
         This class implements vectors in a three-dimensional space.
     
         Instance of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     ZERO: typing.ClassVar['Vector3D'] = ...
     """
@@ -2947,11 +3081,11 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
             :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 3D vector objects are equal, false if object is null, not an instance of Vector3D, or not equal to this
@@ -2973,7 +3107,7 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
             returns :code:`false` despite the instance is checked against itself.
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 3D vector objects are equal, false if object is null, not an instance of Vector3D, or not equal to this
@@ -2993,7 +3127,9 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 azimuth (α) of the vector, between -π and +π
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
         
         
         """
@@ -3006,7 +3142,9 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 elevation (δ) of the vector, between -π/2 and +π/2
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
         
         
         """
@@ -3084,7 +3222,9 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 abscissa of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
         
         
         """
@@ -3097,7 +3237,9 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 ordinate of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
         
         
         """
@@ -3110,7 +3252,9 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 height of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
         
         
         """
@@ -3135,8 +3279,8 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -3212,7 +3356,9 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 vector coordinates
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.threed.Vector3D.%3Cinit%3E`
+        
         
         
         """
@@ -3223,8 +3369,8 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
             Get a string representation of this vector.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of this vector
@@ -3240,7 +3386,7 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
                 :meth:`~org.hipparchus.geometry.Vector.toString` in interface :class:`~org.hipparchus.geometry.Vector`
         
             Parameters:
-                format (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the custom format for components
+                format (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the custom format for components
         
             Returns:
                 a string representation of this vector
@@ -3251,7 +3397,7 @@ class Vector3D(java.io.Serializable, org.hipparchus.geometry.Vector[Euclidean3D,
 
 class Vector3DFormat(org.hipparchus.geometry.VectorFormat[Euclidean3D, Vector3D]):
     """
-    public class Vector3DFormat extends :class:`~org.hipparchus.geometry.VectorFormat`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`, :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`>
+    public classVector3DFormat extends :class:`~org.hipparchus.geometry.VectorFormat`<:class:`~org.hipparchus.geometry.euclidean.threed.Euclidean3D`,:class:`~org.hipparchus.geometry.euclidean.threed.Vector3D`>
     
         Formats a 3D vector in components list format "{x; y; z}".
     
@@ -3264,9 +3410,9 @@ class Vector3DFormat(org.hipparchus.geometry.VectorFormat[Euclidean3D, Vector3D]
         position after parsing will be just after the closing curly brace, i.e. just before the trailing space.
     
         **Note:** using "," as a separator may interfere with the grouping separator of the default
-        :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
-        for the current locale. Thus it is advised to use a
-        :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+        :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` for
+        the current locale. Thus it is advised to use a
+        :class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         instance with disabled grouping in such a case.
     """
     @typing.overload
@@ -3302,7 +3448,7 @@ class Vector3DFormat(org.hipparchus.geometry.VectorFormat[Euclidean3D, Vector3D]
             Returns the default 3D vector format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the 3D vector format specific to the given locale.
@@ -3322,8 +3468,8 @@ class Vector3DFormat(org.hipparchus.geometry.VectorFormat[Euclidean3D, Vector3D]
                 :meth:`~org.hipparchus.geometry.VectorFormat.parse` in class :class:`~org.hipparchus.geometry.VectorFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/ouput parsing parameter.
+                source (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.geometry.euclidean.threed.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/ouput parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.geometry.euclidean.threed.Vector3D` object.
diff --git a/org-stubs/hipparchus/geometry/euclidean/twod/__init__.pyi b/org-stubs/hipparchus/geometry/euclidean/twod/__init__.pyi
index df5e2a8dcc9097b17506401d25bf6401bd7f37e0..c3a293b7467c29dc56fdc59c7c55581998be3d3e 100644
--- a/org-stubs/hipparchus/geometry/euclidean/twod/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/euclidean/twod/__init__.pyi
@@ -22,7 +22,8 @@ import typing
 
 class DiskGenerator(org.hipparchus.geometry.enclosing.SupportBallGenerator['Euclidean2D', 'Vector2D']):
     """
-    public class DiskGenerator extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.enclosing.SupportBallGenerator`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
+    public classDiskGenerator extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.enclosing.SupportBallGenerator`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
     
         Class generating an enclosing ball from its support points.
     """
@@ -31,12 +32,14 @@ class DiskGenerator(org.hipparchus.geometry.enclosing.SupportBallGenerator['Eucl
 
 class Euclidean2D(java.io.Serializable, org.hipparchus.geometry.Space):
     """
-    public class Euclidean2D extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.geometry.Space`
+    public classEuclidean2D extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.geometry.Space`
     
         This class implements a two-dimensional space.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def getDimension(self) -> int:
         """
@@ -73,7 +76,9 @@ class Euclidean2D(java.io.Serializable, org.hipparchus.geometry.Space):
                 n-1 dimension sub-space of this space
         
             Also see:
-                :meth:`~org.hipparchus.geometry.Space.getDimension`
+        
+                  - :meth:`~org.hipparchus.geometry.Space.getDimension`
+        
         
         
         """
@@ -82,7 +87,7 @@ class Euclidean2D(java.io.Serializable, org.hipparchus.geometry.Space):
 _FieldVector2D__T = typing.TypeVar('_FieldVector2D__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldVector2D(typing.Generic[_FieldVector2D__T]):
     """
-    public class FieldVector2D<T extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldVector2D<T extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class is a re-implementation of :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D` using
         :class:`~org.hipparchus.geometry.euclidean.twod.https:.www.hipparchus.org.hipparchus`.
@@ -165,7 +170,9 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
                 the cross-product
         
             Also see:
-                `Cross product (Wikipedia) <http://en.wikipedia.org/wiki/Cross_product>`
+        
+                  - `Cross product (Wikipedia) <http://en.wikipedia.org/wiki/Cross_product>`
+        
         
         
         """
@@ -467,7 +474,9 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
                 the dot product this.v
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.www.hipparchus.org.hipparchus`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.https:.www.hipparchus.org.hipparchus`
+        
         
         
         """
@@ -486,11 +495,11 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
             all) real part of the coordinates of the 3D vector are :code:`NaN`, the 2D vector is :code:`NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 2D vector objects are equal, false if object is null, not an instance of FieldVector2D, or not equal to this
@@ -652,7 +661,9 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
                 abscissa of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.FieldVector2D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.FieldVector2D.%3Cinit%3E`
+        
         
         
         """
@@ -665,7 +676,9 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
                 ordinate of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.FieldVector2D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.FieldVector2D.%3Cinit%3E`
+        
         
         
         """
@@ -692,8 +705,8 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -768,7 +781,9 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
                 vector coordinates
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.FieldVector2D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.FieldVector2D.%3Cinit%3E`
+        
         
         
         """
@@ -779,8 +794,8 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
             Get a string representation of this vector.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of this vector
@@ -793,7 +808,7 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
             Get a string representation of this vector.
         
             Parameters:
-                format (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the custom format for components
+                format (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the custom format for components
         
             Returns:
                 a string representation of this vector
@@ -814,7 +829,8 @@ class FieldVector2D(typing.Generic[_FieldVector2D__T]):
 
 class Line(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean2D], org.hipparchus.geometry.partitioning.Embedding[Euclidean2D, org.hipparchus.geometry.euclidean.oned.Euclidean1D]):
     """
-    public class Line extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>, :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    public classLine extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`>, :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
     
         This class represents an oriented line in the 2D plane.
     
@@ -924,17 +940,17 @@ class Line(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean2D], org.hip
             Returns:
                 offset of the line
         
-        public double getOffset (:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`> vector)
+        public double getOffset(:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`> vector)
         
             Get the offset (oriented distance) of a vector.
         
             Parameters:
-                vector (:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`> vector): vector to check
+                vector (:class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`> vector): vector to check
         
             Returns:
                 offset of the vector
         
-        public double getOffset (:class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`> point)
+        public double getOffset(:class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`> point)
         
             Get the offset (oriented distance) of a point.
         
@@ -1143,7 +1159,7 @@ class Line(org.hipparchus.geometry.partitioning.Hyperplane[Euclidean2D], org.hip
 
 class PolygonsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclidean2D, org.hipparchus.geometry.euclidean.oned.Euclidean1D]):
     """
-    public class PolygonsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    public classPolygonsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
     
         This class represents a 2D region: a set of polygons.
     """
@@ -1186,7 +1202,7 @@ class PolygonsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Euclidean2
 
 class Segment:
     """
-    public class Segment extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSegment extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Simple container for a two-points segment.
     """
@@ -1255,7 +1271,7 @@ class Segment:
 
 class SubLine(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Euclidean2D, org.hipparchus.geometry.euclidean.oned.Euclidean1D]):
     """
-    public class SubLine extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
+    public classSubLine extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.oned.Euclidean1D`>
     
         This class represents a sub-hyperplane for :class:`~org.hipparchus.geometry.euclidean.twod.Line`.
     """
@@ -1290,14 +1306,16 @@ class SubLine(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Euclide
 
 class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
     """
-    public class Vector2D extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
+    public classVector2D extends :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.Vector`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
     
         This class represents a 2D vector.
     
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     ZERO: typing.ClassVar['Vector2D'] = ...
     """
@@ -1407,7 +1425,9 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
                 the cross-product
         
             Also see:
-                `Cross product (Wikipedia) <http://en.wikipedia.org/wiki/Cross_product>`
+        
+                  - `Cross product (Wikipedia) <http://en.wikipedia.org/wiki/Cross_product>`
+        
         
         
         """
@@ -1512,11 +1532,11 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
             :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 2D vector objects are equal, false if object is null, not an instance of Vector2D, or not equal to this
@@ -1538,7 +1558,7 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
             returns :code:`false` despite the instance is checked against itself.
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two 2D vector objects are equal, false if object is null, not an instance of Vector2D, or not equal to this
@@ -1623,7 +1643,9 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
                 abscissa of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.%3Cinit%3E`
+        
         
         
         """
@@ -1636,7 +1658,9 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
                 ordinate of the vector
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.%3Cinit%3E`
+        
         
         
         """
@@ -1661,8 +1685,8 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -1757,7 +1781,9 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
                 vector coordinates
         
             Also see:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.euclidean.twod.Vector2D.%3Cinit%3E`
+        
         
         
         """
@@ -1768,8 +1794,8 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
             Get a string representation of this vector.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation of this vector
@@ -1785,7 +1811,7 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
                 :meth:`~org.hipparchus.geometry.Vector.toString` in interface :class:`~org.hipparchus.geometry.Vector`
         
             Parameters:
-                format (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the custom format for components
+                format (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the custom format for components
         
             Returns:
                 a string representation of this vector
@@ -1796,7 +1822,7 @@ class Vector2D(org.hipparchus.geometry.Vector[Euclidean2D, 'Vector2D']):
 
 class Vector2DFormat(org.hipparchus.geometry.VectorFormat[Euclidean2D, Vector2D]):
     """
-    public class Vector2DFormat extends :class:`~org.hipparchus.geometry.VectorFormat`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
+    public classVector2DFormat extends :class:`~org.hipparchus.geometry.VectorFormat`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
     
         Formats a 2D vector in components list format "{x; y}".
     
@@ -1809,9 +1835,9 @@ class Vector2DFormat(org.hipparchus.geometry.VectorFormat[Euclidean2D, Vector2D]
         after parsing will be just after the closing curly brace, i.e. just before the trailing space.
     
         **Note:** using "," as a separator may interfere with the grouping separator of the default
-        :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` for
-        the current locale. Thus it is advised to use a
-        :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`
+        :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` for the
+        current locale. Thus it is advised to use a
+        :class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`
         instance with disabled grouping in such a case.
     """
     @typing.overload
@@ -1847,7 +1873,7 @@ class Vector2DFormat(org.hipparchus.geometry.VectorFormat[Euclidean2D, Vector2D]
             Returns the default 2D vector format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the 2D vector format specific to the given locale.
@@ -1867,8 +1893,8 @@ class Vector2DFormat(org.hipparchus.geometry.VectorFormat[Euclidean2D, Vector2D]
                 :meth:`~org.hipparchus.geometry.VectorFormat.parse` in class :class:`~org.hipparchus.geometry.VectorFormat`
         
             Parameters:
-                source (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.geometry.euclidean.twod.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.geometry.Vector` object.
diff --git a/org-stubs/hipparchus/geometry/euclidean/twod/hull/__init__.pyi b/org-stubs/hipparchus/geometry/euclidean/twod/hull/__init__.pyi
index 1ef02f4e5142f8b7162544961f01afa17f93826a..c6d438db5dc36ade29ccb83de009fbdb953b726d 100644
--- a/org-stubs/hipparchus/geometry/euclidean/twod/hull/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/euclidean/twod/hull/__init__.pyi
@@ -18,7 +18,7 @@ import typing
 
 class AklToussaintHeuristic:
     """
-    public final class AklToussaintHeuristic extends :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public final classAklToussaintHeuristic extends :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         A simple heuristic to improve the performance of convex hull algorithms.
     
@@ -30,19 +30,22 @@ class AklToussaintHeuristic:
         afterwards, depending on the point distribution.
     
         Also see:
-            ` Akl-Toussaint heuristic (Wikipedia) <http://en.wikipedia.org/wiki/Convex_hull_algorithms#Akl-Toussaint_heuristic>`
+    
+              - ` Akl-Toussaint heuristic (Wikipedia) <http://en.wikipedia.org/wiki/Convex_hull_algorithms#Akl-Toussaint_heuristic>`
     """
     @staticmethod
     def reducePoints(collection: typing.Union[java.util.Collection[org.hipparchus.geometry.euclidean.twod.Vector2D], typing.Sequence[org.hipparchus.geometry.euclidean.twod.Vector2D], typing.Set[org.hipparchus.geometry.euclidean.twod.Vector2D]]) -> java.util.Collection[org.hipparchus.geometry.euclidean.twod.Vector2D]: ...
 
 class ConvexHull2D(org.hipparchus.geometry.hull.ConvexHull[org.hipparchus.geometry.euclidean.twod.Euclidean2D, org.hipparchus.geometry.euclidean.twod.Vector2D], java.io.Serializable):
     """
-    public class ConvexHull2D extends :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.hull.ConvexHull`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>, :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classConvexHull2D extends :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.hull.ConvexHull`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>, :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class represents a convex hull in an two-dimensional euclidean space.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, vector2DArray: typing.Union[typing.List[org.hipparchus.geometry.euclidean.twod.Vector2D], jpype.JArray], double: float): ...
     def createRegion(self) -> org.hipparchus.geometry.partitioning.Region[org.hipparchus.geometry.euclidean.twod.Euclidean2D]: ...
@@ -73,7 +76,7 @@ class ConvexHull2D(org.hipparchus.geometry.hull.ConvexHull[org.hipparchus.geomet
 
 class ConvexHullGenerator2D(org.hipparchus.geometry.hull.ConvexHullGenerator[org.hipparchus.geometry.euclidean.twod.Euclidean2D, org.hipparchus.geometry.euclidean.twod.Vector2D]):
     """
-    public interface ConvexHullGenerator2D extends :class:`~org.hipparchus.geometry.hull.ConvexHullGenerator`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`, :class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
+    public interfaceConvexHullGenerator2Dextends :class:`~org.hipparchus.geometry.hull.ConvexHullGenerator`<:class:`~org.hipparchus.geometry.euclidean.twod.Euclidean2D`,:class:`~org.hipparchus.geometry.euclidean.twod.Vector2D`>
     
         Interface for convex hull generators in the two-dimensional euclidean space.
     """
@@ -81,7 +84,7 @@ class ConvexHullGenerator2D(org.hipparchus.geometry.hull.ConvexHullGenerator[org
 
 class MonotoneChain(org.hipparchus.geometry.euclidean.twod.hull.AbstractConvexHullGenerator2D):
     """
-    public class MonotoneChain extends :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classMonotoneChain extends :class:`~org.hipparchus.geometry.euclidean.twod.hull.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implements Andrew's monotone chain method to generate the convex hull of a finite set of points in the two-dimensional
         euclidean space.
@@ -98,8 +101,9 @@ class MonotoneChain(org.hipparchus.geometry.euclidean.twod.hull.AbstractConvexHu
         points.
     
         Also see:
-            ` Andrew's monotone chain algorithm (Wikibooks)
-            <http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain>`
+    
+              - ` Andrew's monotone chain algorithm (Wikibooks)
+                <http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain>`
     """
     @typing.overload
     def __init__(self): ...
diff --git a/org-stubs/hipparchus/geometry/hull/__init__.pyi b/org-stubs/hipparchus/geometry/hull/__init__.pyi
index 9097df664cebbc494480499b0eb5aaee169892a1..354f10308ff2f99a9690ff1bab6b94aba233ca6c 100644
--- a/org-stubs/hipparchus/geometry/hull/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/hull/__init__.pyi
@@ -17,7 +17,7 @@ _ConvexHull__S = typing.TypeVar('_ConvexHull__S', bound=org.hipparchus.geometry.
 _ConvexHull__P = typing.TypeVar('_ConvexHull__P', bound=org.hipparchus.geometry.Point)  # <P>
 class ConvexHull(java.io.Serializable, typing.Generic[_ConvexHull__S, _ConvexHull__P]):
     """
-    public interface ConvexHull<S extends :class:`~org.hipparchus.geometry.Space`, P extends :class:`~org.hipparchus.geometry.Point`<S>> extends :class:`~org.hipparchus.geometry.hull.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public interfaceConvexHull<S extends :class:`~org.hipparchus.geometry.Space`,P extends :class:`~org.hipparchus.geometry.Point`<S>>extends :class:`~org.hipparchus.geometry.hull.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class represents a convex hull.
     """
@@ -37,13 +37,14 @@ _ConvexHullGenerator__S = typing.TypeVar('_ConvexHullGenerator__S', bound=org.hi
 _ConvexHullGenerator__P = typing.TypeVar('_ConvexHullGenerator__P', bound=org.hipparchus.geometry.Point)  # <P>
 class ConvexHullGenerator(typing.Generic[_ConvexHullGenerator__S, _ConvexHullGenerator__P]):
     """
-    public interface ConvexHullGenerator<S extends :class:`~org.hipparchus.geometry.Space`, P extends :class:`~org.hipparchus.geometry.Point`<S>>
+    public interfaceConvexHullGenerator<S extends :class:`~org.hipparchus.geometry.Space`,P extends :class:`~org.hipparchus.geometry.Point`<S>>
     
         Interface for convex hull generators.
     
         Also see:
-            `Convex Hull (Wikipedia) <http://en.wikipedia.org/wiki/Convex_hull>`, `Convex Hull (MathWorld)
-            <http://mathworld.wolfram.com/ConvexHull.html>`
+    
+              - `Convex Hull (Wikipedia) <http://en.wikipedia.org/wiki/Convex_hull>`
+              - `Convex Hull (MathWorld) <http://mathworld.wolfram.com/ConvexHull.html>`
     """
     def generate(self, collection: typing.Union[java.util.Collection[_ConvexHullGenerator__P], typing.Sequence[_ConvexHullGenerator__P], typing.Set[_ConvexHullGenerator__P]]) -> ConvexHull[_ConvexHullGenerator__S, _ConvexHullGenerator__P]: ...
 
diff --git a/org-stubs/hipparchus/geometry/partitioning/__init__.pyi b/org-stubs/hipparchus/geometry/partitioning/__init__.pyi
index 09a61159aaf9e10a89bc77bb08e13d9b6753c8e9..81219bb5ff6bbe35cfd89c16b1ebad482c409bf6 100644
--- a/org-stubs/hipparchus/geometry/partitioning/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/partitioning/__init__.pyi
@@ -18,7 +18,7 @@ _BSPTree__VanishingCutHandler__S = typing.TypeVar('_BSPTree__VanishingCutHandler
 _BSPTree__S = typing.TypeVar('_BSPTree__S', bound=org.hipparchus.geometry.Space)  # <S>
 class BSPTree(typing.Generic[_BSPTree__S]):
     """
-    public class BSPTree<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBSPTree<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class represent a Binary Space Partition tree.
     
@@ -59,7 +59,9 @@ class BSPTree(typing.Generic[_BSPTree__S]):
                 :meth:`~org.hipparchus.geometry.partitioning.BSPTree.setAttribute` method
         
             Also see:
-                :meth:`~org.hipparchus.geometry.partitioning.BSPTree.setAttribute`
+        
+                  - :meth:`~org.hipparchus.geometry.partitioning.BSPTree.setAttribute`
+        
         
         
         """
@@ -79,10 +81,12 @@ class BSPTree(typing.Generic[_BSPTree__S]):
             Associate an attribute with the instance.
         
             Parameters:
-                attribute (:class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): attribute to associate with the node
+                attribute (:class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): attribute to associate with the node
         
             Also see:
-                :meth:`~org.hipparchus.geometry.partitioning.BSPTree.getAttribute`
+        
+                  - :meth:`~org.hipparchus.geometry.partitioning.BSPTree.getAttribute`
+        
         
         
         """
@@ -97,7 +101,7 @@ class BSPTree(typing.Generic[_BSPTree__S]):
 _BSPTreeVisitor__S = typing.TypeVar('_BSPTreeVisitor__S', bound=org.hipparchus.geometry.Space)  # <S>
 class BSPTreeVisitor(typing.Generic[_BSPTreeVisitor__S]):
     """
-    public interface BSPTreeVisitor<S extends :class:`~org.hipparchus.geometry.Space`>
+    public interfaceBSPTreeVisitor<S extends :class:`~org.hipparchus.geometry.Space`>
     
         This interface is used to visit :class:`~org.hipparchus.geometry.partitioning.BSPTree` nodes.
     
@@ -115,7 +119,9 @@ class BSPTreeVisitor(typing.Generic[_BSPTreeVisitor__S]):
     
     
         Also see:
-            :class:`~org.hipparchus.geometry.partitioning.BSPTree`, :class:`~org.hipparchus.geometry.partitioning.SubHyperplane`
+    
+              - :class:`~org.hipparchus.geometry.partitioning.BSPTree`
+              - :class:`~org.hipparchus.geometry.partitioning.SubHyperplane`
     """
     def visitInternalNode(self, bSPTree: BSPTree[_BSPTreeVisitor__S]) -> None: ...
     def visitLeafNode(self, bSPTree: BSPTree[_BSPTreeVisitor__S]) -> None: ...
@@ -140,7 +146,7 @@ class BSPTreeVisitor(typing.Generic[_BSPTreeVisitor__S]):
 _BoundaryAttribute__S = typing.TypeVar('_BoundaryAttribute__S', bound=org.hipparchus.geometry.Space)  # <S>
 class BoundaryAttribute(typing.Generic[_BoundaryAttribute__S]):
     """
-    public class BoundaryAttribute<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBoundaryAttribute<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class holding boundary attributes.
     
@@ -151,7 +157,8 @@ class BoundaryAttribute(typing.Generic[_BoundaryAttribute__S]):
         This class is a simple placeholder, it does not provide any processing methods.
     
         Also see:
-            :meth:`~org.hipparchus.geometry.partitioning.Region.getTree`
+    
+              - :meth:`~org.hipparchus.geometry.partitioning.Region.getTree`
     """
     def getPlusInside(self) -> 'SubHyperplane'[_BoundaryAttribute__S]: ...
     def getPlusOutside(self) -> 'SubHyperplane'[_BoundaryAttribute__S]: ...
@@ -160,7 +167,7 @@ class BoundaryAttribute(typing.Generic[_BoundaryAttribute__S]):
 _BoundaryProjection__S = typing.TypeVar('_BoundaryProjection__S', bound=org.hipparchus.geometry.Space)  # <S>
 class BoundaryProjection(typing.Generic[_BoundaryProjection__S]):
     """
-    public class BoundaryProjection<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBoundaryProjection<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class holding the result of point projection on region boundary.
     
@@ -169,7 +176,8 @@ class BoundaryProjection(typing.Generic[_BoundaryProjection__S]):
         Instances of this class are guaranteed to be immutable
     
         Also see:
-            :meth:`~org.hipparchus.geometry.partitioning.AbstractRegion.projectToBoundary`
+    
+              - :meth:`~org.hipparchus.geometry.partitioning.AbstractRegion.projectToBoundary`
     """
     def __init__(self, point: org.hipparchus.geometry.Point[_BoundaryProjection__S], point2: org.hipparchus.geometry.Point[_BoundaryProjection__S], double: float): ...
     def getOffset(self) -> float:
@@ -197,7 +205,7 @@ _Embedding__S = typing.TypeVar('_Embedding__S', bound=org.hipparchus.geometry.Sp
 _Embedding__T = typing.TypeVar('_Embedding__T', bound=org.hipparchus.geometry.Space)  # <T>
 class Embedding(typing.Generic[_Embedding__S, _Embedding__T]):
     """
-    public interface Embedding<S extends :class:`~org.hipparchus.geometry.Space`, T extends :class:`~org.hipparchus.geometry.Space`>
+    public interfaceEmbedding<S extends :class:`~org.hipparchus.geometry.Space`,T extends :class:`~org.hipparchus.geometry.Space`>
     
         This interface defines mappers between a space and one of its sub-spaces.
     
@@ -214,7 +222,8 @@ class Embedding(typing.Generic[_Embedding__S, _Embedding__T]):
         implementations.
     
         Also see:
-            :class:`~org.hipparchus.geometry.partitioning.Hyperplane`
+    
+              - :class:`~org.hipparchus.geometry.partitioning.Hyperplane`
     """
     def toSpace(self, point: org.hipparchus.geometry.Point[_Embedding__T]) -> org.hipparchus.geometry.Point[_Embedding__S]: ...
     def toSubSpace(self, point: org.hipparchus.geometry.Point[_Embedding__S]) -> org.hipparchus.geometry.Point[_Embedding__T]: ...
@@ -222,7 +231,7 @@ class Embedding(typing.Generic[_Embedding__S, _Embedding__T]):
 _Hyperplane__S = typing.TypeVar('_Hyperplane__S', bound=org.hipparchus.geometry.Space)  # <S>
 class Hyperplane(typing.Generic[_Hyperplane__S]):
     """
-    public interface Hyperplane<S extends :class:`~org.hipparchus.geometry.Space`>
+    public interfaceHyperplane<S extends :class:`~org.hipparchus.geometry.Space`>
     
         This interface represents an hyperplane of a space.
     
@@ -258,12 +267,14 @@ class Hyperplane(typing.Generic[_Hyperplane__S]):
 _NodesSet__S = typing.TypeVar('_NodesSet__S', bound=org.hipparchus.geometry.Space)  # <S>
 class NodesSet(java.lang.Iterable[BSPTree[_NodesSet__S]], typing.Generic[_NodesSet__S]):
     """
-    public class NodesSet<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<:class:`~org.hipparchus.geometry.partitioning.BSPTree`<S>>
+    public classNodesSet<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<:class:`~org.hipparchus.geometry.partitioning.BSPTree`<S>>
     
         Set of :class:`~org.hipparchus.geometry.partitioning.BSPTree` nodes.
     
         Also see:
-            :class:`~org.hipparchus.geometry.partitioning.BoundaryAttribute`
+    
+              - :class:`~org.hipparchus.geometry.partitioning.BoundaryAttribute`
     """
     def __init__(self): ...
     def add(self, bSPTree: BSPTree[_NodesSet__S]) -> None: ...
@@ -273,7 +284,7 @@ class NodesSet(java.lang.Iterable[BSPTree[_NodesSet__S]], typing.Generic[_NodesS
 _Region__S = typing.TypeVar('_Region__S', bound=org.hipparchus.geometry.Space)  # <S>
 class Region(typing.Generic[_Region__S]):
     """
-    public interface Region<S extends :class:`~org.hipparchus.geometry.Space`>
+    public interfaceRegion<S extends :class:`~org.hipparchus.geometry.Space`>
     
         This interface represents a region of a space as a partition.
     
@@ -327,7 +338,7 @@ class Region(typing.Generic[_Region__S]):
             Returns:
                 true if the instance is empty
         
-        boolean isEmpty (:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.Region`> node)
+        boolean isEmpty(:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.Region`> node)
         
             Check if the sub-tree starting at a given node is empty.
         
@@ -351,7 +362,7 @@ class Region(typing.Generic[_Region__S]):
             Returns:
                 true if the instance covers the full space
         
-        boolean isFull (:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.Region`> node)
+        boolean isFull(:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.Region`> node)
         
             Check if the sub-tree starting at a given node covers the full space.
         
@@ -385,7 +396,7 @@ class Region(typing.Generic[_Region__S]):
 _RegionFactory__S = typing.TypeVar('_RegionFactory__S', bound=org.hipparchus.geometry.Space)  # <S>
 class RegionFactory(typing.Generic[_RegionFactory__S]):
     """
-    public class RegionFactory<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classRegionFactory<S extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class is a factory for :class:`~org.hipparchus.geometry.partitioning.Region`.
     """
@@ -399,7 +410,7 @@ class RegionFactory(typing.Generic[_RegionFactory__S]):
 
 class Side(java.lang.Enum['Side']):
     """
-    public enum Side extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.geometry.partitioning.Side`>
+    public enumSide extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.geometry.partitioning.Side`>
     
         Enumerate representing the location of an element with respect to an
         :class:`~org.hipparchus.geometry.partitioning.Hyperplane` of a space.
@@ -420,14 +431,14 @@ class Side(java.lang.Enum['Side']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -435,15 +446,7 @@ class Side(java.lang.Enum['Side']):
     @staticmethod
     def values() -> typing.MutableSequence['Side']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (Side c : Side.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -456,7 +459,7 @@ _SubHyperplane__SplitSubHyperplane__U = typing.TypeVar('_SubHyperplane__SplitSub
 _SubHyperplane__S = typing.TypeVar('_SubHyperplane__S', bound=org.hipparchus.geometry.Space)  # <S>
 class SubHyperplane(typing.Generic[_SubHyperplane__S]):
     """
-    public interface SubHyperplane<S extends :class:`~org.hipparchus.geometry.Space`>
+    public interfaceSubHyperplane<S extends :class:`~org.hipparchus.geometry.Space`>
     
         This interface represents the remaining parts of an hyperplane after other parts have been chopped off.
     
@@ -503,7 +506,7 @@ _Transform__S = typing.TypeVar('_Transform__S', bound=org.hipparchus.geometry.Sp
 _Transform__T = typing.TypeVar('_Transform__T', bound=org.hipparchus.geometry.Space)  # <T>
 class Transform(typing.Generic[_Transform__S, _Transform__T]):
     """
-    public interface Transform<S extends :class:`~org.hipparchus.geometry.Space`, T extends :class:`~org.hipparchus.geometry.Space`>
+    public interfaceTransform<S extends :class:`~org.hipparchus.geometry.Space`,T extends :class:`~org.hipparchus.geometry.Space`>
     
         This interface represents an inversible affine transform in a space.
     
@@ -530,7 +533,8 @@ _AbstractRegion__S = typing.TypeVar('_AbstractRegion__S', bound=org.hipparchus.g
 _AbstractRegion__T = typing.TypeVar('_AbstractRegion__T', bound=org.hipparchus.geometry.Space)  # <T>
 class AbstractRegion(Region[_AbstractRegion__S], typing.Generic[_AbstractRegion__S, _AbstractRegion__T]):
     """
-    public abstract class AbstractRegion<S extends :class:`~org.hipparchus.geometry.Space`, T extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Region`<S>
+    public abstract classAbstractRegion<S extends :class:`~org.hipparchus.geometry.Space`,T extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Region`<S>
     
         Abstract class for all regions, independently of geometry type or dimension.
     """
@@ -597,7 +601,7 @@ class AbstractRegion(Region[_AbstractRegion__S], typing.Generic[_AbstractRegion_
             Returns:
                 true if the instance is empty
         
-        public boolean isEmpty (:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.AbstractRegion`> node)
+        public boolean isEmpty(:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.AbstractRegion`> node)
         
             Check if the sub-tree starting at a given node is empty.
         
@@ -629,7 +633,7 @@ class AbstractRegion(Region[_AbstractRegion__S], typing.Generic[_AbstractRegion_
             Returns:
                 true if the instance covers the full space
         
-        public boolean isFull (:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.AbstractRegion`> node)
+        public boolean isFull(:class:`~org.hipparchus.geometry.partitioning.BSPTree`<:class:`~org.hipparchus.geometry.partitioning.AbstractRegion`> node)
         
             Check if the sub-tree starting at a given node covers the full space.
         
@@ -655,7 +659,8 @@ _AbstractSubHyperplane__S = typing.TypeVar('_AbstractSubHyperplane__S', bound=or
 _AbstractSubHyperplane__T = typing.TypeVar('_AbstractSubHyperplane__T', bound=org.hipparchus.geometry.Space)  # <T>
 class AbstractSubHyperplane(SubHyperplane[_AbstractSubHyperplane__S], typing.Generic[_AbstractSubHyperplane__S, _AbstractSubHyperplane__T]):
     """
-    public abstract class AbstractSubHyperplane<S extends :class:`~org.hipparchus.geometry.Space`, T extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.SubHyperplane`<S>
+    public abstract classAbstractSubHyperplane<S extends :class:`~org.hipparchus.geometry.Space`,T extends :class:`~org.hipparchus.geometry.Space`> extends :class:`~org.hipparchus.geometry.partitioning.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.SubHyperplane`<S>
     
         This class implements the dimension-independent parts of :class:`~org.hipparchus.geometry.partitioning.SubHyperplane`.
     
diff --git a/org-stubs/hipparchus/geometry/spherical/oned/__init__.pyi b/org-stubs/hipparchus/geometry/spherical/oned/__init__.pyi
index d83f364f358de85dd21cbd5f199a788ea1682b8e..60e8a23926d21ec99aaf2e1ea37af60f4e4fe641 100644
--- a/org-stubs/hipparchus/geometry/spherical/oned/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/spherical/oned/__init__.pyi
@@ -18,12 +18,13 @@ import typing
 
 class Arc:
     """
-    public class Arc extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classArc extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class represents an arc on a circle.
     
         Also see:
-            :class:`~org.hipparchus.geometry.spherical.oned.ArcsSet`
+    
+              - :class:`~org.hipparchus.geometry.spherical.oned.ArcsSet`
     """
     def __init__(self, double: float, double2: float, double3: float): ...
     def checkPoint(self, double: float) -> org.hipparchus.geometry.partitioning.Region.Location:
@@ -127,7 +128,8 @@ class Arc:
 
 class ArcsSet(org.hipparchus.geometry.partitioning.AbstractRegion['Sphere1D', 'Sphere1D'], java.lang.Iterable[typing.MutableSequence[float]]):
     """
-    public class ArcsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`, :class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`> implements :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<double[]>
+    public classArcsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`,:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    implements :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<double[]>
     
         This class represents a region of a circle: a set of arcs.
     
@@ -152,8 +154,8 @@ class ArcsSet(org.hipparchus.geometry.partitioning.AbstractRegion['Sphere1D', 'S
             The iterator does *not* support the optional :code:`remove` operation.
         
             Specified by:
-                :meth:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.html?is` in
-                interface :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`
+                :meth:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.iterator` in
+                interface :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`
         
         
         """
@@ -182,7 +184,8 @@ class ArcsSet(org.hipparchus.geometry.partitioning.AbstractRegion['Sphere1D', 'S
 
 class LimitAngle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere1D']):
     """
-    public class LimitAngle extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    public classLimitAngle extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
     
         This class represents a 1D oriented hyperplane on the circle.
     
@@ -312,14 +315,16 @@ class LimitAngle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere1D']):
 
 class S1Point(org.hipparchus.geometry.Point['Sphere1D']):
     """
-    public class S1Point extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    public classS1Point extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
     
         This class represents a point on the 1-sphere.
     
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     NaN: typing.ClassVar['S1Point'] = ...
     """
@@ -359,11 +364,11 @@ class S1Point(org.hipparchus.geometry.Point['Sphere1D']):
             :meth:`~org.hipparchus.geometry.spherical.oned.S1Point.NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two points on the 1-sphere objects are equal, false if object is null, not an instance of S1Point, or not equal
@@ -385,7 +390,7 @@ class S1Point(org.hipparchus.geometry.Point['Sphere1D']):
             returns :code:`false` despite the instance is checked against itself.
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two points objects are equal, false if object is null, not an instance of S1Point, or not equal to this S1Point
@@ -405,7 +410,9 @@ class S1Point(org.hipparchus.geometry.Point['Sphere1D']):
                 azimuthal angle \( \alpha \)
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.oned.S1Point.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.oned.S1Point.%3Cinit%3E`
+        
         
         
         """
@@ -440,8 +447,8 @@ class S1Point(org.hipparchus.geometry.Point['Sphere1D']):
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -465,7 +472,8 @@ class S1Point(org.hipparchus.geometry.Point['Sphere1D']):
 
 class Sphere1D(java.io.Serializable, org.hipparchus.geometry.Space):
     """
-    public class Sphere1D extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.geometry.Space`
+    public classSphere1D extends :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.spherical.oned.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.geometry.Space`
     
         This class implements a one-dimensional sphere (i.e. a circle).
     
@@ -473,7 +481,8 @@ class Sphere1D(java.io.Serializable, org.hipparchus.geometry.Space):
         MathWorld), i.e. the 1-sphere is the one-dimensional closed curve defined in 2D as x :sup:`2` +y :sup:`2` =1.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     SMALLEST_TOLERANCE: typing.ClassVar[float] = ...
     """
@@ -520,7 +529,7 @@ class Sphere1D(java.io.Serializable, org.hipparchus.geometry.Space):
 
 class SubLimitAngle(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Sphere1D, Sphere1D]):
     """
-    public class SubLimitAngle extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`, :class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    public classSubLimitAngle extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`,:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
     
         This class represents sub-hyperplane for :class:`~org.hipparchus.geometry.spherical.oned.LimitAngle`.
     
diff --git a/org-stubs/hipparchus/geometry/spherical/twod/__init__.pyi b/org-stubs/hipparchus/geometry/spherical/twod/__init__.pyi
index e406bb41ef6214c99f711621c07fac094deef57c..fb8ce78deb7b624f7596eb52b7dfcb6d3cee417a 100644
--- a/org-stubs/hipparchus/geometry/spherical/twod/__init__.pyi
+++ b/org-stubs/hipparchus/geometry/spherical/twod/__init__.pyi
@@ -18,7 +18,8 @@ import typing
 
 class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hipparchus.geometry.partitioning.Embedding['Sphere2D', org.hipparchus.geometry.spherical.oned.Sphere1D]):
     """
-    public class Circle extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`>, :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`, :class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    public classCircle extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.partitioning.Hyperplane`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`>, :class:`~org.hipparchus.geometry.partitioning.Embedding`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`,:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
     
         This class represents an oriented great circle on the 2-sphere.
     
@@ -110,7 +111,9 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
                 offset of the direction
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getOffset`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getOffset`
+        
         
         
         """
@@ -131,7 +134,9 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
                 phase angle of the direction around the circle
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.toSubSpace`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.toSubSpace`
+        
         
         
         """
@@ -147,9 +152,11 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
                 circle point on the sphere
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.toSpace`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getXAxis`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getYAxis`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.toSpace`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getXAxis`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getYAxis`
+        
         
         
         """
@@ -164,8 +171,10 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
                 pole of the circle
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getXAxis`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getYAxis`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getXAxis`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getYAxis`
+        
         
         
         """
@@ -209,9 +218,11 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
                 an arbitrary x axis on the circle
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPointAt`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getYAxis`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPole`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPointAt`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getYAxis`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPole`
+        
         
         
         """
@@ -227,9 +238,11 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
                 an arbitrary y axis point on the circle
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPointAt`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getXAxis`,
-                :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPole`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPointAt`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getXAxis`
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.Circle.getPole`
+        
         
         
         """
@@ -288,13 +301,14 @@ class Circle(org.hipparchus.geometry.partitioning.Hyperplane['Sphere2D'], org.hi
 
 class Edge:
     """
-    public class Edge extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classEdge extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Spherical polygons boundary edge.
     
         Also see:
-            :meth:`~org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet.getBoundaryLoops`,
-            :class:`~org.hipparchus.geometry.spherical.twod.Vertex`
+    
+              - :meth:`~org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet.getBoundaryLoops`
+              - :class:`~org.hipparchus.geometry.spherical.twod.Vertex`
     """
     def getCircle(self) -> Circle:
         """
@@ -356,7 +370,8 @@ class Edge:
 
 class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
     """
-    public class S2Point extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`>
+    public classS2Point extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.Point`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`>
     
         This class represents a point on the 2-sphere.
     
@@ -367,7 +382,8 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     PLUS_I: typing.ClassVar['S2Point'] = ...
     """
@@ -452,11 +468,11 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
             :meth:`~org.hipparchus.geometry.spherical.twod.S2Point.NaN`.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two points on the 2-sphere objects are equal, false if object is null, not an instance of S2Point, or not equal
@@ -478,7 +494,7 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
             returns :code:`false` despite the instance is checked against itself.
         
             Parameters:
-                other (:class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality to this
+                other (:class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality to this
         
             Returns:
                 true if two points objects are equal, false if object is null, not an instance of S2Point, or not equal to this S2Point
@@ -498,7 +514,9 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
                 polar angle \( \varphi \)
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.S2Point.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.S2Point.%3Cinit%3E`
+        
         
         
         """
@@ -524,7 +542,9 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
                 azimuthal angle \( \theta \) in the x-y plane
         
             Also see:
-                :meth:`~org.hipparchus.geometry.spherical.twod.S2Point.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.geometry.spherical.twod.S2Point.%3Cinit%3E`
+        
         
         
         """
@@ -546,8 +566,8 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -582,8 +602,8 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -591,7 +611,8 @@ class S2Point(org.hipparchus.geometry.Point['Sphere2D']):
 
 class Sphere2D(java.io.Serializable, org.hipparchus.geometry.Space):
     """
-    public class Sphere2D extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.geometry.Space`
+    public classSphere2D extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.geometry.Space`
     
         This class implements a two-dimensional sphere (i.e. the regular sphere).
     
@@ -599,7 +620,8 @@ class Sphere2D(java.io.Serializable, org.hipparchus.geometry.Space):
         MathWorld), i.e. the 2-sphere is the two-dimensional surface defined in 3D as x :sup:`2` +y :sup:`2` +z :sup:`2` =1.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     SMALLEST_TOLERANCE: typing.ClassVar[float] = ...
     """
@@ -651,7 +673,9 @@ class Sphere2D(java.io.Serializable, org.hipparchus.geometry.Space):
                 n-1 dimension sub-space of this space
         
             Also see:
-                :meth:`~org.hipparchus.geometry.Space.getDimension`
+        
+                  - :meth:`~org.hipparchus.geometry.Space.getDimension`
+        
         
         
         """
@@ -659,7 +683,7 @@ class Sphere2D(java.io.Serializable, org.hipparchus.geometry.Space):
 
 class SphericalPolygonsSet(org.hipparchus.geometry.partitioning.AbstractRegion[Sphere2D, org.hipparchus.geometry.spherical.oned.Sphere1D]):
     """
-    public class SphericalPolygonsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`, :class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    public classSphericalPolygonsSet extends :class:`~org.hipparchus.geometry.partitioning.AbstractRegion`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`,:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
     
         This class represents a region on the 2-sphere: a set of spherical polygons.
     """
@@ -681,7 +705,7 @@ class SphericalPolygonsSet(org.hipparchus.geometry.partitioning.AbstractRegion[S
 
 class SubCircle(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Sphere2D, org.hipparchus.geometry.spherical.oned.Sphere1D]):
     """
-    public class SubCircle extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`, :class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
+    public classSubCircle extends :class:`~org.hipparchus.geometry.partitioning.AbstractSubHyperplane`<:class:`~org.hipparchus.geometry.spherical.twod.Sphere2D`,:class:`~org.hipparchus.geometry.spherical.oned.Sphere1D`>
     
         This class represents a sub-hyperplane for :class:`~org.hipparchus.geometry.spherical.twod.Circle`.
     """
@@ -690,13 +714,14 @@ class SubCircle(org.hipparchus.geometry.partitioning.AbstractSubHyperplane[Spher
 
 class Vertex:
     """
-    public class Vertex extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classVertex extends :class:`~org.hipparchus.geometry.spherical.twod.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Spherical polygons boundary vertex.
     
         Also see:
-            :meth:`~org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet.getBoundaryLoops`,
-            :class:`~org.hipparchus.geometry.spherical.twod.Edge`
+    
+              - :meth:`~org.hipparchus.geometry.spherical.twod.SphericalPolygonsSet.getBoundaryLoops`
+              - :class:`~org.hipparchus.geometry.spherical.twod.Edge`
     """
     def getIncoming(self) -> Edge:
         """
diff --git a/org-stubs/hipparchus/linear/__init__.pyi b/org-stubs/hipparchus/linear/__init__.pyi
index ca5d946166fec9bf93a095f669212e583949251a..ac50321e96e974a899c50c4b25ff2be0203888e0 100644
--- a/org-stubs/hipparchus/linear/__init__.pyi
+++ b/org-stubs/hipparchus/linear/__init__.pyi
@@ -22,7 +22,7 @@ import typing
 
 class AnyMatrix:
     """
-    public interface AnyMatrix
+    public interfaceAnyMatrix
     
         Interface defining very basic matrix operations.
     """
@@ -59,7 +59,7 @@ class AnyMatrix:
 
 class CholeskyDecomposition:
     """
-    public class CholeskyDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCholeskyDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the Cholesky decomposition of a matrix.
     
@@ -78,8 +78,9 @@ class CholeskyDecomposition:
     
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/CholeskyDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/Cholesky_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/CholeskyDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/Cholesky_decomposition>`
     """
     DEFAULT_RELATIVE_SYMMETRY_THRESHOLD: typing.ClassVar[float] = ...
     """
@@ -88,7 +89,9 @@ class CholeskyDecomposition:
         Default threshold above which off-diagonal elements are considered too different and matrix not symmetric.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -99,7 +102,9 @@ class CholeskyDecomposition:
         Default threshold below which diagonal elements are considered null and matrix not positive definite.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -154,7 +159,7 @@ class CholeskyDecomposition:
 
 class ComplexEigenDecomposition:
     """
-    public class ComplexEigenDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classComplexEigenDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Given a matrix A, it computes a complex eigen decomposition AV = VD.
     
@@ -178,9 +183,9 @@ class ComplexEigenDecomposition:
         its geometric multiplicity is only 2, not 3. So we add a third zero vector \(v_3=(0, 0, 0)\), in the same way Wolfram
         language does.
         Compute complex eigen values from the Schur transform. Compute complex eigen vectors based on eigen values and the
-        inverse iteration method. see: https://en.wikipedia.org/wiki/Inverse_iteration
-        https://en.wikiversity.org/wiki/Shifted_inverse_iteration http://www.robots.ox.ac.uk/~sjrob/Teaching/EngComp/ecl4.pdf
-        http://www.math.ohiou.edu/courses/math3600/lecture16.pdf
+        inverse iteration method. see: :class:`~org.hipparchus.linear.https:.en.wikipedia.org.wiki.Inverse_iteration`
+        :class:`~org.hipparchus.linear.https:.en.wikiversity.org.wiki.Shifted_inverse_iteration`
+        :class:`~org.hipparchus.linear.https:.www.robots.ox.ac.uk.~sjrob.Teaching.EngComp.ecl4.pdf`
     """
     DEFAULT_EIGENVECTORS_EQUALITY: typing.ClassVar[float] = ...
     """
@@ -189,7 +194,9 @@ class ComplexEigenDecomposition:
         Default threshold below which eigenvectors are considered equal.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -200,7 +207,9 @@ class ComplexEigenDecomposition:
         Default value to use for internal epsilon.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -211,7 +220,9 @@ class ComplexEigenDecomposition:
         Internally used epsilon criteria for final AV=VD check.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -256,7 +267,7 @@ class ComplexEigenDecomposition:
 
 class DecompositionSolver:
     """
-    public interface DecompositionSolver
+    public interfaceDecompositionSolver
     
         Interface handling decomposition algorithms that can solve A × X = B.
     
@@ -312,7 +323,7 @@ class DecompositionSolver:
 
 class DependentVectorsHandler(java.lang.Enum['DependentVectorsHandler']):
     """
-    public enum DependentVectorsHandler extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.linear.DependentVectorsHandler`>
+    public enumDependentVectorsHandler extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.linear.DependentVectorsHandler`>
     
         Enumerate to specify how dependent vectors should be handled in
         :meth:`~org.hipparchus.linear.MatrixUtils.orthonormalize` and :meth:`~org.hipparchus.linear.MatrixUtils.orthonormalize`.
@@ -340,14 +351,14 @@ class DependentVectorsHandler(java.lang.Enum['DependentVectorsHandler']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -355,15 +366,7 @@ class DependentVectorsHandler(java.lang.Enum['DependentVectorsHandler']):
     @staticmethod
     def values() -> typing.MutableSequence['DependentVectorsHandler']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (DependentVectorsHandler c : DependentVectorsHandler.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -374,7 +377,7 @@ class DependentVectorsHandler(java.lang.Enum['DependentVectorsHandler']):
 
 class EigenDecompositionNonSymmetric:
     """
-    public class EigenDecompositionNonSymmetric extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classEigenDecompositionNonSymmetric extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the eigen decomposition of a non-symmetric real matrix.
     
@@ -411,8 +414,9 @@ class EigenDecompositionNonSymmetric:
             3.0
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/EigenDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/EigenDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix>`
     """
     DEFAULT_EPSILON: typing.ClassVar[float] = ...
     """
@@ -421,7 +425,9 @@ class EigenDecompositionNonSymmetric:
         Default epsilon value to use for internal epsilon
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -461,8 +467,10 @@ class EigenDecompositionNonSymmetric:
                 i :sup:`th` eigenvalue of the original matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getD`,
-                :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getEigenvalues`
+        
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getD`
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getEigenvalues`
+        
         
         
         """
@@ -475,8 +483,10 @@ class EigenDecompositionNonSymmetric:
                 a copy of the eigenvalues of the original matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getD`,
-                :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getEigenvalue`
+        
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getD`
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionNonSymmetric.getEigenvalue`
+        
         
         
         """
@@ -516,7 +526,7 @@ class EigenDecompositionNonSymmetric:
 
 class EigenDecompositionSymmetric:
     """
-    public class EigenDecompositionSymmetric extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classEigenDecompositionSymmetric extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the eigen decomposition of a symmetric real matrix.
     
@@ -546,8 +556,9 @@ class EigenDecompositionSymmetric:
         Wilksinson and Reinsch (1971) Handbook for automatic computation, vol. 2, Linear algebra, Springer-Verlag, New-York.
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/EigenDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/EigenDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix>`
     """
     DEFAULT_EPSILON: typing.ClassVar[float] = ...
     """
@@ -556,7 +567,9 @@ class EigenDecompositionSymmetric:
         Default epsilon value to use for internal epsilon
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -576,7 +589,9 @@ class EigenDecompositionSymmetric:
                 the D matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getEigenvalues`
+        
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getEigenvalues`
+        
         
         
         """
@@ -602,8 +617,10 @@ class EigenDecompositionSymmetric:
                 real part of the i :sup:`th` eigenvalue of the original matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getD`,
-                :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getEigenvalues`
+        
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getD`
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getEigenvalues`
+        
         
         
         """
@@ -616,8 +633,10 @@ class EigenDecompositionSymmetric:
                 a copy of the eigenvalues of the original matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getD`,
-                :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getEigenvalue`
+        
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getD`
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getEigenvalue`
+        
         
         
         """
@@ -635,7 +654,9 @@ class EigenDecompositionSymmetric:
                 a copy of the i :sup:`th` eigenvector of the original matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getD`
+        
+                  - :meth:`~org.hipparchus.linear.EigenDecompositionSymmetric.getD`
+        
         
         
         """
@@ -701,7 +722,7 @@ class EigenDecompositionSymmetric:
 _FieldDecompositionSolver__T = typing.TypeVar('_FieldDecompositionSolver__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldDecompositionSolver(typing.Generic[_FieldDecompositionSolver__T]):
     """
-    public interface FieldDecompositionSolver<T extends :class:`~org.hipparchus.FieldElement`<T>>
+    public interfaceFieldDecompositionSolver<T extends :class:`~org.hipparchus.FieldElement`<T>>
     
         Interface handling decomposition algorithms that can solve A × X = B.
     
@@ -758,7 +779,7 @@ class FieldDecompositionSolver(typing.Generic[_FieldDecompositionSolver__T]):
 _FieldLUDecomposition__T = typing.TypeVar('_FieldLUDecomposition__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldLUDecomposition(typing.Generic[_FieldLUDecomposition__T]):
     """
-    public class FieldLUDecomposition<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldLUDecomposition<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the LUP-decomposition of a square matrix.
     
@@ -777,8 +798,9 @@ class FieldLUDecomposition(typing.Generic[_FieldLUDecomposition__T]):
     
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/LUDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/LU_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/LUDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/LU_decomposition>`
     """
     @typing.overload
     def __init__(self, fieldMatrix: 'FieldMatrix'[_FieldLUDecomposition__T]): ...
@@ -806,7 +828,9 @@ class FieldLUDecomposition(typing.Generic[_FieldLUDecomposition__T]):
                 the pivot permutation vector
         
             Also see:
-                :meth:`~org.hipparchus.linear.FieldLUDecomposition.getP`
+        
+                  - :meth:`~org.hipparchus.linear.FieldLUDecomposition.getP`
+        
         
         
         """
@@ -817,7 +841,7 @@ class FieldLUDecomposition(typing.Generic[_FieldLUDecomposition__T]):
 _FieldMatrixChangingVisitor__T = typing.TypeVar('_FieldMatrixChangingVisitor__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldMatrixChangingVisitor(typing.Generic[_FieldMatrixChangingVisitor__T]):
     """
-    public interface FieldMatrixChangingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
+    public interfaceFieldMatrixChangingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
     
         Interface defining a visitor for matrix entries.
     """
@@ -869,7 +893,7 @@ class FieldMatrixChangingVisitor(typing.Generic[_FieldMatrixChangingVisitor__T])
 _FieldMatrixDecomposer__T = typing.TypeVar('_FieldMatrixDecomposer__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldMatrixDecomposer(typing.Generic[_FieldMatrixDecomposer__T]):
     """
-    public interface FieldMatrixDecomposer<T extends :class:`~org.hipparchus.FieldElement`<T>>
+    public interfaceFieldMatrixDecomposer<T extends :class:`~org.hipparchus.FieldElement`<T>>
     
         Interface for all algorithms providing matrix decomposition.
     
@@ -881,7 +905,7 @@ class FieldMatrixDecomposer(typing.Generic[_FieldMatrixDecomposer__T]):
 _FieldMatrixPreservingVisitor__T = typing.TypeVar('_FieldMatrixPreservingVisitor__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldMatrixPreservingVisitor(typing.Generic[_FieldMatrixPreservingVisitor__T]):
     """
-    public interface FieldMatrixPreservingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
+    public interfaceFieldMatrixPreservingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
     
         Interface defining a visitor for matrix entries.
     """
@@ -930,7 +954,7 @@ class FieldMatrixPreservingVisitor(typing.Generic[_FieldMatrixPreservingVisitor_
 _FieldQRDecomposition__T = typing.TypeVar('_FieldQRDecomposition__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldQRDecomposition(typing.Generic[_FieldQRDecomposition__T]):
     """
-    public class FieldQRDecomposition<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldQRDecomposition<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the QR-decomposition of a field matrix.
     
@@ -945,8 +969,9 @@ class FieldQRDecomposition(typing.Generic[_FieldQRDecomposition__T]):
         This class is based on the class :class:`~org.hipparchus.linear.QRDecomposition`.
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/QRDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/QR_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/QRDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/QR_decomposition>`
     """
     @typing.overload
     def __init__(self, fieldMatrix: 'FieldMatrix'[_FieldQRDecomposition__T]): ...
@@ -963,7 +988,7 @@ class FieldQRDecomposition(typing.Generic[_FieldQRDecomposition__T]):
 _FieldVector__T = typing.TypeVar('_FieldVector__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldVector(typing.Generic[_FieldVector__T]):
     """
-    public interface FieldVector<T extends :class:`~org.hipparchus.FieldElement`<T>>
+    public interfaceFieldVector<T extends :class:`~org.hipparchus.FieldElement`<T>>
     
         Interface defining a field-valued vector with basic algebraic operations.
     
@@ -977,8 +1002,7 @@ class FieldVector(typing.Generic[_FieldVector__T]):
     
         .. code-block: java
         
-        
-           RealVector result = v.mapAddToSelf(3.0).mapTanToSelf().mapSquareToSelf();
+           RealVector result = v.mapAddToSelf(3.0).mapTanToSelf().mapSquareToSelf();
          
     
         Note that as almost all operations on :class:`~org.hipparchus.FieldElement` throw
@@ -1049,7 +1073,7 @@ class FieldVector(typing.Generic[_FieldVector__T]):
 _FieldVectorChangingVisitor__T = typing.TypeVar('_FieldVectorChangingVisitor__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldVectorChangingVisitor(typing.Generic[_FieldVectorChangingVisitor__T]):
     """
-    public interface FieldVectorChangingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
+    public interfaceFieldVectorChangingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
     
         This interface defines a visitor for the entries of a vector. Visitors implementing this interface may alter the entries
         of the vector being visited.
@@ -1094,7 +1118,7 @@ class FieldVectorChangingVisitor(typing.Generic[_FieldVectorChangingVisitor__T])
 _FieldVectorPreservingVisitor__T = typing.TypeVar('_FieldVectorPreservingVisitor__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldVectorPreservingVisitor(typing.Generic[_FieldVectorPreservingVisitor__T]):
     """
-    public interface FieldVectorPreservingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
+    public interfaceFieldVectorPreservingVisitor<T extends :class:`~org.hipparchus.FieldElement`<?>>
     
         This interface defines a visitor for the entries of a vector. Visitors implementing this interface do not alter the
         entries of the vector being visited.
@@ -1135,7 +1159,7 @@ class FieldVectorPreservingVisitor(typing.Generic[_FieldVectorPreservingVisitor_
 
 class HessenbergTransformer:
     """
-    public class HessenbergTransformer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classHessenbergTransformer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class transforming a general real matrix to Hessenberg form.
     
@@ -1151,8 +1175,9 @@ class HessenbergTransformer:
         <http://math.nist.gov/javanumerics/jama/>` library.
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/HessenbergDecomposition.html>`, `Householder Transformations
-            <http://en.wikipedia.org/wiki/Householder_transformation>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/HessenbergDecomposition.html>`
+              - `Householder Transformations <http://en.wikipedia.org/wiki/Householder_transformation>`
     """
     def __init__(self, realMatrix: 'RealMatrix'): ...
     def getH(self) -> 'RealMatrix':
@@ -1192,7 +1217,7 @@ class HessenbergTransformer:
 
 class IterativeLinearSolver:
     """
-    public abstract class IterativeLinearSolver extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classIterativeLinearSolver extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This abstract class defines an iterative solver for the linear system A · x = b. In what follows, the *residual* r is
         defined as r = b - A · x, where A is the linear operator of the linear system, b is the right-hand side vector, and x
@@ -1220,13 +1245,14 @@ class IterativeLinearSolver:
 
 class IterativeLinearSolverEvent(org.hipparchus.util.IterationEvent):
     """
-    public abstract class IterativeLinearSolverEvent extends :class:`~org.hipparchus.util.IterationEvent`
+    public abstract classIterativeLinearSolverEvent extends :class:`~org.hipparchus.util.IterationEvent`
     
         This is the base class for all events occurring during the iterations of a
         :class:`~org.hipparchus.linear.IterativeLinearSolver`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, object: typing.Any, int: int): ...
     def getNormOfResidual(self) -> float:
@@ -1303,7 +1329,7 @@ class IterativeLinearSolverEvent(org.hipparchus.util.IterationEvent):
 
 class LUDecomposition:
     """
-    public class LUDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classLUDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the LUP-decomposition of a square matrix.
     
@@ -1324,8 +1350,9 @@ class LUDecomposition:
     
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/LUDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/LU_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/LUDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/LU_decomposition>`
     """
     @typing.overload
     def __init__(self, realMatrix: 'RealMatrix'): ...
@@ -1366,7 +1393,9 @@ class LUDecomposition:
                 the P rows permutation matrix (or null if decomposed matrix is singular)
         
             Also see:
-                :meth:`~org.hipparchus.linear.LUDecomposition.getPivot`
+        
+                  - :meth:`~org.hipparchus.linear.LUDecomposition.getPivot`
+        
         
         
         """
@@ -1379,7 +1408,9 @@ class LUDecomposition:
                 the pivot permutation vector
         
             Also see:
-                :meth:`~org.hipparchus.linear.LUDecomposition.getP`
+        
+                  - :meth:`~org.hipparchus.linear.LUDecomposition.getP`
+        
         
         
         """
@@ -1409,7 +1440,7 @@ class LUDecomposition:
 
 class MatrixDecomposer:
     """
-    public interface MatrixDecomposer
+    public interfaceMatrixDecomposer
     
         Interface for all algorithms providing matrix decomposition.
     
@@ -1420,7 +1451,7 @@ class MatrixDecomposer:
 
 class MatrixUtils:
     """
-    public class MatrixUtils extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classMatrixUtils extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         A collection of static methods that operate on or return matrices.
     """
@@ -1531,7 +1562,7 @@ class MatrixUtils:
                 identity matrix
         
             Raises:
-                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if dimension is not positive
+                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if dimension is not positive
         
         
         """
@@ -1559,9 +1590,11 @@ class MatrixUtils:
                 FieldMatrix with specified dimensions
         
             Also see:
-                :meth:`~org.hipparchus.linear.MatrixUtils.createFieldMatrix`
         
-        public static <T extends :class:`~org.hipparchus.FieldElement`<T>> :class:`~org.hipparchus.linear.FieldMatrix`<T> createFieldMatrix (T[][] data) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
+                  - :meth:`~org.hipparchus.linear.MatrixUtils.createFieldMatrix`
+        
+        
+        public static <T extends :class:`~org.hipparchus.FieldElement`<T>> :class:`~org.hipparchus.linear.FieldMatrix`<T> createFieldMatrix(T[][] data) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
         
             Returns a :class:`~org.hipparchus.linear.FieldMatrix` whose entries are the the values in the the input array.
         
@@ -1583,7 +1616,9 @@ class MatrixUtils:
                 :class:`~org.hipparchus.exception.NullArgumentException`: if either :code:`data` or :code:`data[0]` is :code:`null`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.MatrixUtils.createFieldMatrix`
+        
+                  - :meth:`~org.hipparchus.linear.MatrixUtils.createFieldMatrix`
+        
         
         
         """
@@ -1641,7 +1676,7 @@ class MatrixUtils:
                 identity matrix
         
             Raises:
-                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if dimension is not positive
+                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if dimension is not positive
         
         
         """
@@ -1666,9 +1701,11 @@ class MatrixUtils:
                 RealMatrix with specified dimensions
         
             Also see:
-                :meth:`~org.hipparchus.linear.MatrixUtils.createRealMatrix`
         
-        public static :class:`~org.hipparchus.linear.RealMatrix` createRealMatrix (double[][] data) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
+                  - :meth:`~org.hipparchus.linear.MatrixUtils.createRealMatrix`
+        
+        
+        public static :class:`~org.hipparchus.linear.RealMatrix` createRealMatrix(double[][] data) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`, :class:`~org.hipparchus.exception.NullArgumentException`
         
             Returns a :class:`~org.hipparchus.linear.RealMatrix` whose entries are the the values in the the input array.
         
@@ -1691,7 +1728,9 @@ class MatrixUtils:
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`data` is not rectangular.
         
             Also see:
-                :meth:`~org.hipparchus.linear.MatrixUtils.createRealMatrix`
+        
+                  - :meth:`~org.hipparchus.linear.MatrixUtils.createRealMatrix`
+        
         
         
         """
@@ -1783,7 +1822,7 @@ class MatrixUtils:
 
 class QRDecomposition:
     """
-    public class QRDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classQRDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the QR-decomposition of a matrix.
     
@@ -1805,8 +1844,9 @@ class QRDecomposition:
     
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/QRDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/QR_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/QRDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/QR_decomposition>`
     """
     @typing.overload
     def __init__(self, realMatrix: 'RealMatrix'): ...
@@ -1879,7 +1919,7 @@ class QRDecomposition:
 
 class RealLinearOperator:
     """
-    public interface RealLinearOperator
+    public interfaceRealLinearOperator
     
         This class defines a linear operator operating on real (:code:`double`) vector spaces. No direct access to the
         coefficients of the underlying matrix is provided.
@@ -1934,12 +1974,13 @@ class RealLinearOperator:
 
 class RealMatrixChangingVisitor:
     """
-    public interface RealMatrixChangingVisitor
+    public interfaceRealMatrixChangingVisitor
     
         Interface defining a visitor for matrix entries.
     
         Also see:
-            :class:`~org.hipparchus.linear.DefaultRealMatrixChangingVisitor`
+    
+              - :class:`~org.hipparchus.linear.DefaultRealMatrixChangingVisitor`
     """
     def end(self) -> float:
         """
@@ -1988,7 +2029,7 @@ class RealMatrixChangingVisitor:
 
 class RealMatrixFormat:
     """
-    public class RealMatrixFormat extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classRealMatrixFormat extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Formats a :code:`nxm` matrix in components list format "{{a :sub:`0` :sub:`0` ,a :sub:`0` :sub:`1` , ..., a :sub:`0`
         :sub:`m-1` },{a :sub:`1` :sub:`0` , a :sub:`1` :sub:`1` , ..., a :sub:`1` :sub:`m-1` },{...},{ a :sub:`n-1` :sub:`0` , a
@@ -2003,8 +2044,8 @@ class RealMatrixFormat:
         position after parsing will be just after the closing curly brace, i.e. just before the trailing space.
     
         **Note:** the grouping functionality of the used
-        :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` is disabled to
-        prevent problems when parsing (e.g. 1,345.34 would be a valid number but conflicts with the default column separator).
+        :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` is disabled to prevent
+        problems when parsing (e.g. 1,345.34 would be a valid number but conflicts with the default column separator).
     """
     @typing.overload
     def __init__(self): ...
@@ -2029,8 +2070,8 @@ class RealMatrixFormat:
         
             Parameters:
                 matrix (:class:`~org.hipparchus.linear.RealMatrix`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -2046,7 +2087,7 @@ class RealMatrixFormat:
             Get the set of locales for which real vectors formats are available.
         
             This is the same set as the
-            :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` set.
+            :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` set.
         
             Returns:
                 available real vector format locales.
@@ -2105,7 +2146,7 @@ class RealMatrixFormat:
             Returns the default real vector format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the real vector format specific to the given locale.
@@ -2162,7 +2203,7 @@ class RealMatrixFormat:
             Parse a string to produce a :class:`~org.hipparchus.linear.RealMatrix` object.
         
             Parameters:
-                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): String to parse.
+                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): String to parse.
         
             Returns:
                 the parsed :class:`~org.hipparchus.linear.RealMatrix` object.
@@ -2173,8 +2214,8 @@ class RealMatrixFormat:
             Parse a string to produce a :class:`~org.hipparchus.linear.RealMatrix` object.
         
             Parameters:
-                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): String to parse.
-                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/ouput parsing parameter.
+                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): String to parse.
+                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/ouput parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.linear.RealMatrix` object.
@@ -2187,12 +2228,13 @@ class RealMatrixFormat:
 
 class RealMatrixPreservingVisitor:
     """
-    public interface RealMatrixPreservingVisitor
+    public interfaceRealMatrixPreservingVisitor
     
         Interface defining a visitor for matrix entries.
     
         Also see:
-            :class:`~org.hipparchus.linear.DefaultRealMatrixPreservingVisitor`
+    
+              - :class:`~org.hipparchus.linear.DefaultRealMatrixPreservingVisitor`
     """
     def end(self) -> float:
         """
@@ -2238,7 +2280,7 @@ class RealMatrixPreservingVisitor:
 
 class RealVector:
     """
-    public abstract class RealVector extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classRealVector extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class defining a real-valued vector with basic algebraic operations.
     
@@ -2252,7 +2294,6 @@ class RealVector:
     
         .. code-block: java
         
-        
            RealVector result = v.mapAddToSelf(3.4).mapToSelf(new Tan()).mapToSelf(new Power(2.3));
     """
     def __init__(self): ...
@@ -2322,8 +2363,11 @@ class RealVector:
                 the norm.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealVector.getNorm`, :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`,
-                :meth:`~org.hipparchus.linear.RealVector.getL1Distance`
+        
+                  - :meth:`~org.hipparchus.linear.RealVector.getNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getL1Distance`
+        
         
         
         """
@@ -2339,8 +2383,11 @@ class RealVector:
                 the norm.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealVector.getNorm`, :meth:`~org.hipparchus.linear.RealVector.getL1Norm`,
-                :meth:`~org.hipparchus.linear.RealVector.getLInfDistance`
+        
+                  - :meth:`~org.hipparchus.linear.RealVector.getNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getL1Norm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getLInfDistance`
+        
         
         
         """
@@ -2395,8 +2442,11 @@ class RealVector:
                 the norm.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealVector.getL1Norm`, :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`,
-                :meth:`~org.hipparchus.linear.RealVector.getDistance`
+        
+                  - :meth:`~org.hipparchus.linear.RealVector.getL1Norm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getDistance`
+        
         
         
         """
@@ -2430,8 +2480,7 @@ class RealVector:
         
             .. code-block: java
             
-            
-              return copy().mapToSelf(function);
+              return copy().mapToSelf(function);
              
             Returns a new vector. Does not change instance data.
         
@@ -2554,11 +2603,10 @@ class RealVector:
         
             .. code-block: java
             
-            
-              Entry e = null;
-              for(Iterator<Entry> it = iterator(); it.hasNext(); e = it.next()) {
-                  e.setValue(function.value(e.getValue()));
-              }
+              Entry e = null;
+              for(Iterator<Entry> it = iterator(); it.hasNext(); e = it.next()) {
+                  e.setValue(function.value(e.getValue()));
+              }
              
             Entries of this vector are modified in-place by this method.
         
@@ -2622,11 +2670,10 @@ class RealVector:
         
             .. code-block: java
             
-            
-                 RealVector v = new ArrayRealVector(2);
-                 RealVector w = RealVector.unmodifiableRealVector(v);
-                 v.setEntry(0, 1.2);
-                 v.setEntry(1, -3.4);
+                 RealVector v = new ArrayRealVector(2);
+                 RealVector w = RealVector.unmodifiableRealVector(v);
+                 v.setEntry(0, 1.2);
+                 v.setEntry(1, -3.4);
              
             the changes will be seen in the :code:`w` view of :code:`v`.
         
@@ -2650,7 +2697,7 @@ class RealVector:
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorPreservingVisitor.end` at the end of the walk
         
-        public double walkInDefaultOrder (:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInDefaultOrder(:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (but does not alter) some entries of this vector in default order (increasing index).
         
@@ -2674,7 +2721,7 @@ class RealVector:
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorChangingVisitor.end` at the end of the walk
         
-        public double walkInDefaultOrder (:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInDefaultOrder(:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (and possibly alters) some entries of this vector in default order (increasing index).
         
@@ -2712,7 +2759,7 @@ class RealVector:
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorPreservingVisitor.end` at the end of the walk
         
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (but does not alter) some entries of this vector in optimized order. The order in which the entries are visited
             is selected so as to lead to the most efficient implementation; it might depend on the concrete implementation of this
@@ -2740,7 +2787,7 @@ class RealVector:
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorChangingVisitor.end` at the end of the walk
         
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (and possibly change) some entries of this vector in optimized order. The order in which the entries are visited
             is selected so as to lead to the most efficient implementation; it might depend on the concrete implementation of this
@@ -2776,7 +2823,7 @@ class RealVector:
 
 class RealVectorChangingVisitor:
     """
-    public interface RealVectorChangingVisitor
+    public interfaceRealVectorChangingVisitor
     
         This interface defines a visitor for the entries of a vector. Visitors implementing this interface may alter the entries
         of the vector being visited.
@@ -2823,7 +2870,7 @@ class RealVectorChangingVisitor:
 
 class RealVectorFormat:
     """
-    public class RealVectorFormat extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classRealVectorFormat extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Formats a vector in components list format "{v0; v1; ...; vk-1}".
     
@@ -2858,8 +2905,8 @@ class RealVectorFormat:
         
             Parameters:
                 vector (:class:`~org.hipparchus.linear.RealVector`): the object to format.
-                toAppendTo (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                toAppendTo (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -2875,7 +2922,7 @@ class RealVectorFormat:
             Get the set of locales for which real vectors formats are available.
         
             This is the same set as the
-            :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is` set.
+            :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat` set.
         
             Returns:
                 available real vector format locales.
@@ -2924,7 +2971,7 @@ class RealVectorFormat:
             Returns the default real vector format for the given locale.
         
             Parameters:
-                locale (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the real vector format specific to the given locale.
@@ -2961,7 +3008,7 @@ class RealVectorFormat:
             Parse a string to produce a :class:`~org.hipparchus.linear.RealVector` object.
         
             Parameters:
-                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): String to parse.
+                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): String to parse.
         
             Returns:
                 the parsed :class:`~org.hipparchus.linear.RealVector` object.
@@ -2972,8 +3019,8 @@ class RealVectorFormat:
             Parse a string to produce a :class:`~org.hipparchus.linear.RealVector` object.
         
             Parameters:
-                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): String to parse.
-                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/ouput parsing parameter.
+                source (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): String to parse.
+                pos (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/ouput parsing parameter.
         
             Returns:
                 the parsed :class:`~org.hipparchus.linear.RealVector` object.
@@ -2986,7 +3033,7 @@ class RealVectorFormat:
 
 class RealVectorPreservingVisitor:
     """
-    public interface RealVectorPreservingVisitor
+    public interfaceRealVectorPreservingVisitor
     
         This interface defines a visitor for the entries of a vector. Visitors implementing this interface do not alter the
         entries of the vector being visited.
@@ -3030,7 +3077,7 @@ class RealVectorPreservingVisitor:
 
 class RectangularCholeskyDecomposition:
     """
-    public class RectangularCholeskyDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classRectangularCholeskyDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the rectangular Cholesky decomposition of a matrix.
     
@@ -3048,8 +3095,9 @@ class RectangularCholeskyDecomposition:
         :class:`~org.hipparchus.linear.DecompositionSolver`.
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/CholeskyDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/Cholesky_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/CholeskyDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/Cholesky_decomposition>`
     """
     @typing.overload
     def __init__(self, realMatrix: 'RealMatrix'): ...
@@ -3064,7 +3112,9 @@ class RectangularCholeskyDecomposition:
                 r of the square matrix.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RectangularCholeskyDecomposition.getRootMatrix`
+        
+                  - :meth:`~org.hipparchus.linear.RectangularCholeskyDecomposition.getRootMatrix`
+        
         
         
         """
@@ -3078,7 +3128,9 @@ class RectangularCholeskyDecomposition:
                 root of the square matrix
         
             Also see:
-                :meth:`~org.hipparchus.linear.RectangularCholeskyDecomposition.getRank`
+        
+                  - :meth:`~org.hipparchus.linear.RectangularCholeskyDecomposition.getRank`
+        
         
         
         """
@@ -3086,7 +3138,7 @@ class RectangularCholeskyDecomposition:
 
 class RiccatiEquationSolver:
     """
-    public interface RiccatiEquationSolver
+    public interfaceRiccatiEquationSolver
     
         An algebraic Riccati equation is a type of nonlinear equation that arises in the context of infinite-horizon optimal
         control problems in continuous time or discrete time. The continuous time algebraic Riccati equation (CARE): \[
@@ -3116,7 +3168,7 @@ class RiccatiEquationSolver:
 
 class SchurTransformer:
     """
-    public class SchurTransformer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSchurTransformer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class transforming a general real matrix to Schur form.
     
@@ -3132,9 +3184,10 @@ class SchurTransformer:
         <http://math.nist.gov/javanumerics/jama/>` library.
     
         Also see:
-            `Schur Decomposition - MathWorld <http://mathworld.wolfram.com/SchurDecomposition.html>`, `Schur Decomposition -
-            Wikipedia <http://en.wikipedia.org/wiki/Schur_decomposition>`, `Householder Transformations
-            <http://en.wikipedia.org/wiki/Householder_transformation>`
+    
+              - `Schur Decomposition - MathWorld <http://mathworld.wolfram.com/SchurDecomposition.html>`
+              - `Schur Decomposition - Wikipedia <http://en.wikipedia.org/wiki/Schur_decomposition>`
+              - `Householder Transformations <http://en.wikipedia.org/wiki/Householder_transformation>`
     """
     @typing.overload
     def __init__(self, realMatrix: 'RealMatrix'): ...
@@ -3177,7 +3230,7 @@ class SchurTransformer:
 
 class SemiDefinitePositiveCholeskyDecomposition:
     """
-    public class SemiDefinitePositiveCholeskyDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSemiDefinitePositiveCholeskyDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the Cholesky decomposition of a positive semidefinite matrix.
     
@@ -3189,8 +3242,9 @@ class SemiDefinitePositiveCholeskyDecomposition:
             2.2
     
         Also see:
-            "J. Hartikainen, A. Solin, and S. Särkkä. Optimal filtering with Kalman filters and smoothers, Dept. of Biomedica
-            Engineering and Computational Sciences, Aalto University School of Science, Aug. 2011."
+    
+              - "J. Hartikainen, A. Solin, and S. Särkkä. Optimal filtering with Kalman filters and smoothers, Dept. of Biomedica
+                Engineering and Computational Sciences, Aalto University School of Science, Aug. 2011."
     """
     POSITIVITY_THRESHOLD: typing.ClassVar[float] = ...
     """
@@ -3199,7 +3253,9 @@ class SemiDefinitePositiveCholeskyDecomposition:
         Default threshold below which elements are not considered positive.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -3234,7 +3290,7 @@ class SemiDefinitePositiveCholeskyDecomposition:
 
 class SingularValueDecomposition:
     """
-    public class SingularValueDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSingularValueDecomposition extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Calculates the compact Singular Value Decomposition of a matrix.
     
@@ -3256,8 +3312,9 @@ class SingularValueDecomposition:
     
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/SingularValueDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/Singular_value_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/SingularValueDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/Singular_value_decomposition>`
     """
     def __init__(self, realMatrix: 'RealMatrix'): ...
     def getConditionNumber(self) -> float:
@@ -3284,7 +3341,7 @@ class SingularValueDecomposition:
                 covariance matrix
         
             Raises:
-                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if minSingularValue is larger than the largest singular value, meaning all singular values are ignored
+                :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if minSingularValue is larger than the largest singular value, meaning all singular values are ignored
         
         
         """
@@ -3371,7 +3428,9 @@ class SingularValueDecomposition:
                 the U matrix
         
             Also see:
-                :meth:`~org.hipparchus.linear.SingularValueDecomposition.getUT`
+        
+                  - :meth:`~org.hipparchus.linear.SingularValueDecomposition.getUT`
+        
         
         
         """
@@ -3386,7 +3445,9 @@ class SingularValueDecomposition:
                 the U matrix (or null if decomposed matrix is singular)
         
             Also see:
-                :meth:`~org.hipparchus.linear.SingularValueDecomposition.getU`
+        
+                  - :meth:`~org.hipparchus.linear.SingularValueDecomposition.getU`
+        
         
         
         """
@@ -3401,7 +3462,9 @@ class SingularValueDecomposition:
                 the V matrix (or null if decomposed matrix is singular)
         
             Also see:
-                :meth:`~org.hipparchus.linear.SingularValueDecomposition.getVT`
+        
+                  - :meth:`~org.hipparchus.linear.SingularValueDecomposition.getVT`
+        
         
         
         """
@@ -3416,7 +3479,9 @@ class SingularValueDecomposition:
                 the V matrix (or null if decomposed matrix is singular)
         
             Also see:
-                :meth:`~org.hipparchus.linear.SingularValueDecomposition.getV`
+        
+                  - :meth:`~org.hipparchus.linear.SingularValueDecomposition.getV`
+        
         
         
         """
@@ -3425,13 +3490,15 @@ class SingularValueDecomposition:
 _ArrayFieldVector__T = typing.TypeVar('_ArrayFieldVector__T', bound=org.hipparchus.FieldElement)  # <T>
 class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable, typing.Generic[_ArrayFieldVector__T]):
     """
-    public class ArrayFieldVector<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldVector`<T>, :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classArrayFieldVector<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldVector`<T>, :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements the :class:`~org.hipparchus.linear.FieldVector` interface with a
         :class:`~org.hipparchus.FieldElement` array.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, int: int, t: _ArrayFieldVector__T): ...
@@ -3495,11 +3562,11 @@ class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable,
             Test for the equality of two vectors.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                other (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality.
+                other (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality.
         
             Returns:
                 :code:`true` if two vector objects are equal, :code:`false` otherwise.
@@ -3546,7 +3613,9 @@ class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable,
                 the vector entry at :code:`index`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.FieldVector.setEntry`
+        
+                  - :meth:`~org.hipparchus.linear.FieldVector.setEntry`
+        
         
         
         """
@@ -3560,8 +3629,8 @@ class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable,
             All NaN values have the same hash code.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a hash code value for this object
@@ -3615,7 +3684,9 @@ class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable,
                 value (:class:`~org.hipparchus.linear.ArrayFieldVector`): new value for the element.
         
             Also see:
-                :meth:`~org.hipparchus.linear.FieldVector.getEntry`
+        
+                  - :meth:`~org.hipparchus.linear.FieldVector.getEntry`
+        
         
         
         """
@@ -3644,8 +3715,8 @@ class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable,
         """
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Since:
                 2.0
@@ -3672,12 +3743,14 @@ class ArrayFieldVector(FieldVector[_ArrayFieldVector__T], java.io.Serializable,
 
 class ArrayRealVector(RealVector, java.io.Serializable):
     """
-    public class ArrayRealVector extends :class:`~org.hipparchus.linear.RealVector` implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classArrayRealVector extends :class:`~org.hipparchus.linear.RealVector`
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements the :class:`~org.hipparchus.linear.RealVector` interface with a double array.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -3788,7 +3861,7 @@ class ArrayRealVector(RealVector, java.io.Serializable):
                 :meth:`~org.hipparchus.linear.RealVector.equals` in class :class:`~org.hipparchus.linear.RealVector`
         
             Parameters:
-                other (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality.
+                other (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality.
         
             Returns:
                 :code:`true` if two vector objects are equal, :code:`false` if :code:`other` is null, not an instance of
@@ -3836,8 +3909,11 @@ class ArrayRealVector(RealVector, java.io.Serializable):
                 the norm.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealVector.getNorm`, :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`,
-                :meth:`~org.hipparchus.linear.RealVector.getL1Distance`
+        
+                  - :meth:`~org.hipparchus.linear.RealVector.getNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getL1Distance`
+        
         
         
         """
@@ -3856,8 +3932,11 @@ class ArrayRealVector(RealVector, java.io.Serializable):
                 the norm.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealVector.getNorm`, :meth:`~org.hipparchus.linear.RealVector.getL1Norm`,
-                :meth:`~org.hipparchus.linear.RealVector.getLInfDistance`
+        
+                  - :meth:`~org.hipparchus.linear.RealVector.getNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getL1Norm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getLInfDistance`
+        
         
         
         """
@@ -3875,8 +3954,11 @@ class ArrayRealVector(RealVector, java.io.Serializable):
                 the norm.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealVector.getL1Norm`, :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`,
-                :meth:`~org.hipparchus.linear.RealVector.getDistance`
+        
+                  - :meth:`~org.hipparchus.linear.RealVector.getL1Norm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getLInfNorm`
+                  - :meth:`~org.hipparchus.linear.RealVector.getDistance`
+        
         
         
         """
@@ -3925,8 +4007,7 @@ class ArrayRealVector(RealVector, java.io.Serializable):
         
             .. code-block: java
             
-            
-              return copy().mapToSelf(function);
+              return copy().mapToSelf(function);
              
             Returns a new vector. Does not change instance data.
         
@@ -4012,11 +4093,10 @@ class ArrayRealVector(RealVector, java.io.Serializable):
         
             .. code-block: java
             
-            
-              Entry e = null;
-              for(Iterator<Entry> it = iterator(); it.hasNext(); e = it.next()) {
-                  e.setValue(function.value(e.getValue()));
-              }
+              Entry e = null;
+              for(Iterator<Entry> it = iterator(); it.hasNext(); e = it.next()) {
+                  e.setValue(function.value(e.getValue()));
+              }
              
             Entries of this vector are modified in-place by this method.
         
@@ -4085,8 +4165,8 @@ class ArrayRealVector(RealVector, java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -4105,7 +4185,7 @@ class ArrayRealVector(RealVector, java.io.Serializable):
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorPreservingVisitor.end` at the end of the walk
         
-        public double walkInDefaultOrder (:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInDefaultOrder(:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (but does not alter) some entries of this vector in default order (increasing index).
         
@@ -4134,7 +4214,7 @@ class ArrayRealVector(RealVector, java.io.Serializable):
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorChangingVisitor.end` at the end of the walk
         
-        public double walkInDefaultOrder (:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInDefaultOrder(:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (and possibly alters) some entries of this vector in default order (increasing index).
         
@@ -4177,7 +4257,7 @@ class ArrayRealVector(RealVector, java.io.Serializable):
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorPreservingVisitor.end` at the end of the walk
         
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealVectorPreservingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (but does not alter) some entries of this vector in optimized order. The order in which the entries are visited
             is selected so as to lead to the most efficient implementation; it might depend on the concrete implementation of this
@@ -4210,7 +4290,7 @@ class ArrayRealVector(RealVector, java.io.Serializable):
             Returns:
                 the value returned by :meth:`~org.hipparchus.linear.RealVectorChangingVisitor.end` at the end of the walk
         
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealVectorChangingVisitor` visitor, int start, int end) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visits (and possibly change) some entries of this vector in optimized order. The order in which the entries are visited
             is selected so as to lead to the most efficient implementation; it might depend on the concrete implementation of this
@@ -4242,7 +4322,8 @@ class ArrayRealVector(RealVector, java.io.Serializable):
 
 class CholeskyDecomposer(MatrixDecomposer):
     """
-    public class CholeskyDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.MatrixDecomposer`
+    public classCholeskyDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.MatrixDecomposer`
     
         Matrix decomposer using Cholseky decomposition.
     
@@ -4270,7 +4351,8 @@ class CholeskyDecomposer(MatrixDecomposer):
 _DefaultFieldMatrixChangingVisitor__T = typing.TypeVar('_DefaultFieldMatrixChangingVisitor__T', bound=org.hipparchus.FieldElement)  # <T>
 class DefaultFieldMatrixChangingVisitor(FieldMatrixChangingVisitor[_DefaultFieldMatrixChangingVisitor__T], typing.Generic[_DefaultFieldMatrixChangingVisitor__T]):
     """
-    public class DefaultFieldMatrixChangingVisitor<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldMatrixChangingVisitor`<T>
+    public classDefaultFieldMatrixChangingVisitor<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldMatrixChangingVisitor`<T>
     
         Default implementation of the :class:`~org.hipparchus.linear.FieldMatrixChangingVisitor` interface.
     
@@ -4338,7 +4420,8 @@ class DefaultFieldMatrixChangingVisitor(FieldMatrixChangingVisitor[_DefaultField
 _DefaultFieldMatrixPreservingVisitor__T = typing.TypeVar('_DefaultFieldMatrixPreservingVisitor__T', bound=org.hipparchus.FieldElement)  # <T>
 class DefaultFieldMatrixPreservingVisitor(FieldMatrixPreservingVisitor[_DefaultFieldMatrixPreservingVisitor__T], typing.Generic[_DefaultFieldMatrixPreservingVisitor__T]):
     """
-    public class DefaultFieldMatrixPreservingVisitor<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldMatrixPreservingVisitor`<T>
+    public classDefaultFieldMatrixPreservingVisitor<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldMatrixPreservingVisitor`<T>
     
         Default implementation of the :class:`~org.hipparchus.linear.FieldMatrixPreservingVisitor` interface.
     
@@ -4402,12 +4485,13 @@ class DefaultFieldMatrixPreservingVisitor(FieldMatrixPreservingVisitor[_DefaultF
 
 class DefaultIterativeLinearSolverEvent(IterativeLinearSolverEvent):
     """
-    public class DefaultIterativeLinearSolverEvent extends :class:`~org.hipparchus.linear.IterativeLinearSolverEvent`
+    public classDefaultIterativeLinearSolverEvent extends :class:`~org.hipparchus.linear.IterativeLinearSolverEvent`
     
         A default concrete implementation of the abstract class :class:`~org.hipparchus.linear.IterativeLinearSolverEvent`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, object: typing.Any, int: int, realVector: RealVector, realVector2: RealVector, double: float): ...
@@ -4509,7 +4593,8 @@ class DefaultIterativeLinearSolverEvent(IterativeLinearSolverEvent):
 
 class DefaultRealMatrixChangingVisitor(RealMatrixChangingVisitor):
     """
-    public class DefaultRealMatrixChangingVisitor extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.RealMatrixChangingVisitor`
+    public classDefaultRealMatrixChangingVisitor extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.RealMatrixChangingVisitor`
     
         Default implementation of the :class:`~org.hipparchus.linear.RealMatrixChangingVisitor` interface.
     
@@ -4576,7 +4661,8 @@ class DefaultRealMatrixChangingVisitor(RealMatrixChangingVisitor):
 
 class DefaultRealMatrixPreservingVisitor(RealMatrixPreservingVisitor):
     """
-    public class DefaultRealMatrixPreservingVisitor extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.RealMatrixPreservingVisitor`
+    public classDefaultRealMatrixPreservingVisitor extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.RealMatrixPreservingVisitor`
     
         Default implementation of the :class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` interface.
     
@@ -4641,7 +4727,8 @@ class DefaultRealMatrixPreservingVisitor(RealMatrixPreservingVisitor):
 _FieldLUDecomposer__T = typing.TypeVar('_FieldLUDecomposer__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldLUDecomposer(FieldMatrixDecomposer[_FieldLUDecomposer__T], typing.Generic[_FieldLUDecomposer__T]):
     """
-    public class FieldLUDecomposer<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldMatrixDecomposer`<T>
+    public classFieldLUDecomposer<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldMatrixDecomposer`<T>
     
         Matrix decomposer using LU-decomposition.
     
@@ -4654,7 +4741,7 @@ class FieldLUDecomposer(FieldMatrixDecomposer[_FieldLUDecomposer__T], typing.Gen
 _FieldMatrix__T = typing.TypeVar('_FieldMatrix__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldMatrix(AnyMatrix, org.hipparchus.util.FieldBlendable['FieldMatrix'[_FieldMatrix__T], _FieldMatrix__T], typing.Generic[_FieldMatrix__T]):
     """
-    public interface FieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AnyMatrix`, :class:`~org.hipparchus.util.FieldBlendable`<:class:`~org.hipparchus.linear.FieldMatrix`<T>, T>
+    public interfaceFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>>extends :class:`~org.hipparchus.linear.AnyMatrix`, :class:`~org.hipparchus.util.FieldBlendable`<:class:`~org.hipparchus.linear.FieldMatrix`<T>,T>
     
         Interface defining field-valued matrix with basic algebraic operations.
     
@@ -4750,7 +4837,8 @@ class FieldMatrix(AnyMatrix, org.hipparchus.util.FieldBlendable['FieldMatrix'[_F
 _FieldQRDecomposer__T = typing.TypeVar('_FieldQRDecomposer__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldQRDecomposer(FieldMatrixDecomposer[_FieldQRDecomposer__T], typing.Generic[_FieldQRDecomposer__T]):
     """
-    public class FieldQRDecomposer<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldMatrixDecomposer`<T>
+    public classFieldQRDecomposer<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldMatrixDecomposer`<T>
     
         Matrix decomposer using QR-decomposition.
     
@@ -4762,7 +4850,8 @@ class FieldQRDecomposer(FieldMatrixDecomposer[_FieldQRDecomposer__T], typing.Gen
 
 class JacobiPreconditioner(RealLinearOperator):
     """
-    public class JacobiPreconditioner extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.RealLinearOperator`
+    public classJacobiPreconditioner extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.RealLinearOperator`
     
         This class implements the standard Jacobi (diagonal) preconditioner. For a matrix A :sub:`ij` , this preconditioner is M
         = diag(1 / A :sub:`11` , 1 / A :sub:`22` , …).
@@ -4829,7 +4918,8 @@ class JacobiPreconditioner(RealLinearOperator):
 
 class LUDecomposer(MatrixDecomposer):
     """
-    public class LUDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.MatrixDecomposer`
+    public classLUDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.MatrixDecomposer`
     
         Matrix decomposer using LU-decomposition.
     
@@ -4856,7 +4946,7 @@ class LUDecomposer(MatrixDecomposer):
 
 class OrderedComplexEigenDecomposition(ComplexEigenDecomposition):
     """
-    public class OrderedComplexEigenDecomposition extends :class:`~org.hipparchus.linear.ComplexEigenDecomposition`
+    public classOrderedComplexEigenDecomposition extends :class:`~org.hipparchus.linear.ComplexEigenDecomposition`
     
         Given a matrix A, it computes a complex eigen decomposition A = VDV^{T}. It ensures that eigen values in the diagonal of
         D are in ascending order.
@@ -4871,7 +4961,7 @@ class OrderedComplexEigenDecomposition(ComplexEigenDecomposition):
 
 class PreconditionedIterativeLinearSolver(IterativeLinearSolver):
     """
-    public abstract class PreconditionedIterativeLinearSolver extends :class:`~org.hipparchus.linear.IterativeLinearSolver`
+    public abstract classPreconditionedIterativeLinearSolver extends :class:`~org.hipparchus.linear.IterativeLinearSolver`
     
     
         This abstract class defines preconditioned iterative solvers. When A is ill-conditioned, instead of solving system A ·
@@ -4903,7 +4993,8 @@ class PreconditionedIterativeLinearSolver(IterativeLinearSolver):
 
 class QRDecomposer(MatrixDecomposer):
     """
-    public class QRDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.MatrixDecomposer`
+    public classQRDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.MatrixDecomposer`
     
         Matrix decomposer using QR-decomposition.
     
@@ -4930,7 +5021,7 @@ class QRDecomposer(MatrixDecomposer):
 
 class RRQRDecomposition(QRDecomposition):
     """
-    public class RRQRDecomposition extends :class:`~org.hipparchus.linear.QRDecomposition`
+    public classRRQRDecomposition extends :class:`~org.hipparchus.linear.QRDecomposition`
     
         Calculates the rank-revealing QR-decomposition of a matrix, with column pivoting.
     
@@ -4955,8 +5046,9 @@ class RRQRDecomposition(QRDecomposition):
     
     
         Also see:
-            `MathWorld <http://mathworld.wolfram.com/QRDecomposition.html>`, `Wikipedia
-            <http://en.wikipedia.org/wiki/QR_decomposition>`
+    
+              - `MathWorld <http://mathworld.wolfram.com/QRDecomposition.html>`
+              - `Wikipedia <http://en.wikipedia.org/wiki/QR_decomposition>`
     """
     @typing.overload
     def __init__(self, realMatrix: 'RealMatrix'): ...
@@ -4984,8 +5076,7 @@ class RRQRDecomposition(QRDecomposition):
         
             .. code-block: java
             
-            
-               (thisNorm/lastNorm) * rNorm < dropThreshold
+               (thisNorm/lastNorm) * rNorm < dropThreshold
              
         
             where thisNorm is the Frobenius norm of the current submatrix, lastNorm is the Frobenius norm of the previous submatrix,
@@ -5021,7 +5112,7 @@ class RRQRDecomposition(QRDecomposition):
 
 class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
     """
-    public interface RealMatrix extends :class:`~org.hipparchus.linear.AnyMatrix`, :class:`~org.hipparchus.util.Blendable`<:class:`~org.hipparchus.linear.RealMatrix`>
+    public interfaceRealMatrixextends :class:`~org.hipparchus.linear.AnyMatrix`, :class:`~org.hipparchus.util.Blendable`<:class:`~org.hipparchus.linear.RealMatrix`>
     
         Interface defining a real-valued matrix with basic algebraic operations.
     
@@ -5122,8 +5213,7 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
         
             .. code-block: java
             
-            
-              return copy().mapToSelf(function);
+              return copy().mapToSelf(function);
              
             Returns a new matrix. Does not change instance data.
         
@@ -5230,15 +5320,19 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in column order.
         
@@ -5252,17 +5346,21 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        double walkInColumnOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        double walkInColumnOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in column order.
         
@@ -5284,17 +5382,21 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`endRow < startRow` or :code:`endColumn < startColumn`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        double walkInColumnOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        double walkInColumnOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in column order.
         
@@ -5316,15 +5418,19 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`endRow < startRow` or :code:`endColumn < startColumn`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -5349,15 +5455,19 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries using the fastest possible order.
         
@@ -5370,17 +5480,21 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries using the fastest possible order.
         
@@ -5401,17 +5515,21 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`endRow < startRow` or :code:`endColumn < startColumn`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries using the fastest possible order.
         
@@ -5432,15 +5550,19 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`endRow < startRow` or :code:`endColumn < startColumn`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -5466,15 +5588,19 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in row order.
         
@@ -5488,17 +5614,21 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in row order.
         
@@ -5520,17 +5650,21 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`endRow < startRow` or :code:`endColumn < startColumn`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in row order.
         
@@ -5552,15 +5686,19 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`endRow < startRow` or :code:`endColumn < startColumn`.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -5574,7 +5712,8 @@ class RealMatrix(AnyMatrix, org.hipparchus.util.Blendable['RealMatrix']):
 
 class RiccatiEquationSolverImpl(RiccatiEquationSolver):
     """
-    public class RiccatiEquationSolverImpl extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.RiccatiEquationSolver`
+    public classRiccatiEquationSolverImpl extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.RiccatiEquationSolver`
     
         This solver computes the solution using the following approach: 1. Compute the Hamiltonian matrix 2. Extract its complex
         eigen vectors (not the best solution, a better solution would be ordered Schur transformation) 3. Approximate the
@@ -5612,7 +5751,8 @@ class RiccatiEquationSolverImpl(RiccatiEquationSolver):
 
 class SingularValueDecomposer(MatrixDecomposer):
     """
-    public class SingularValueDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.MatrixDecomposer`
+    public classSingularValueDecomposer extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.MatrixDecomposer`
     
         Matrix decomposer using Singular Value Decomposition.
     
@@ -5640,7 +5780,8 @@ class SingularValueDecomposer(MatrixDecomposer):
 _SparseFieldVector__T = typing.TypeVar('_SparseFieldVector__T', bound=org.hipparchus.FieldElement)  # <T>
 class SparseFieldVector(FieldVector[_SparseFieldVector__T], java.io.Serializable, typing.Generic[_SparseFieldVector__T]):
     """
-    public class SparseFieldVector<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldVector`<T>, :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSparseFieldVector<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldVector`<T>, :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements the :class:`~org.hipparchus.linear.FieldVector` interface with a
         :class:`~org.hipparchus.util.OpenIntToFieldHashMap` backing store.
@@ -5650,7 +5791,8 @@ class SparseFieldVector(FieldVector[_SparseFieldVector__T], java.io.Serializable
         infinities) may thus give incorrect results.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_SparseFieldVector__T]): ...
@@ -5680,8 +5822,8 @@ class SparseFieldVector(FieldVector[_SparseFieldVector__T], java.io.Serializable
         """
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -5706,8 +5848,8 @@ class SparseFieldVector(FieldVector[_SparseFieldVector__T], java.io.Serializable
         """
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -5783,7 +5925,7 @@ class SparseFieldVector(FieldVector[_SparseFieldVector__T], java.io.Serializable
 
 class SparseRealVector(RealVector):
     """
-    public abstract class SparseRealVector extends :class:`~org.hipparchus.linear.RealVector`
+    public abstract classSparseRealVector extends :class:`~org.hipparchus.linear.RealVector`
     
         Marker class for RealVectors that require sparse backing storage
     
@@ -5796,7 +5938,8 @@ class SparseRealVector(RealVector):
 _AbstractFieldMatrix__T = typing.TypeVar('_AbstractFieldMatrix__T', bound=org.hipparchus.FieldElement)  # <T>
 class AbstractFieldMatrix(FieldMatrix[_AbstractFieldMatrix__T], typing.Generic[_AbstractFieldMatrix__T]):
     """
-    public abstract class AbstractFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.FieldMatrix`<T>
+    public abstract classAbstractFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.FieldMatrix`<T>
     
         Basic implementation of :class:`~org.hipparchus.linear.FieldMatrix` methods regardless of the underlying storage.
     
@@ -5817,11 +5960,11 @@ class AbstractFieldMatrix(FieldMatrix[_AbstractFieldMatrix__T], typing.Generic[_
             matrix entries are equal.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to test equality against.
+                object (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to test equality against.
         
             Returns:
                 true if object equals this
@@ -5886,8 +6029,8 @@ class AbstractFieldMatrix(FieldMatrix[_AbstractFieldMatrix__T], typing.Generic[_
             Computes a hashcode for the matrix.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 hashcode for matrix
@@ -5937,8 +6080,8 @@ class AbstractFieldMatrix(FieldMatrix[_AbstractFieldMatrix__T], typing.Generic[_
             Get a string representation for this matrix.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation for this matrix
@@ -5974,7 +6117,8 @@ class AbstractFieldMatrix(FieldMatrix[_AbstractFieldMatrix__T], typing.Generic[_
 
 class AbstractRealMatrix(RealMatrix, RealLinearOperator):
     """
-    public abstract class AbstractRealMatrix extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.linear.RealMatrix`, :class:`~org.hipparchus.linear.RealLinearOperator`
+    public abstract classAbstractRealMatrix extends :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.linear.RealMatrix`, :class:`~org.hipparchus.linear.RealLinearOperator`
     
         Basic implementation of RealMatrix methods regardless of the underlying storage.
     
@@ -6007,11 +6151,11 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
             matrix entries are equal.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to test equality against.
+                object (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to test equality against.
         
             Returns:
                 true if object equals this
@@ -6096,8 +6240,8 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
             Computes a hashcode for the matrix.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 hashcode for matrix
@@ -6177,8 +6321,8 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
             Get a string representation for this matrix.
         
             Overrides:
-                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation for this matrix
@@ -6217,15 +6361,19 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in column order.
         
@@ -6242,17 +6390,21 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInColumnOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInColumnOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in column order.
         
@@ -6276,17 +6428,21 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInColumnOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInColumnOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in column order.
         
@@ -6310,15 +6466,19 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -6346,15 +6506,19 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries using the fastest possible order.
         
@@ -6370,17 +6534,21 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries using the fastest possible order.
         
@@ -6403,17 +6571,21 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries using the fastest possible order.
         
@@ -6436,15 +6608,19 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -6473,15 +6649,19 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in row order.
         
@@ -6498,17 +6678,21 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in row order.
         
@@ -6532,17 +6716,21 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in row order.
         
@@ -6566,15 +6754,19 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -6588,7 +6780,7 @@ class AbstractRealMatrix(RealMatrix, RealLinearOperator):
 
 class ConjugateGradient(PreconditionedIterativeLinearSolver):
     """
-    public class ConjugateGradient extends :class:`~org.hipparchus.linear.PreconditionedIterativeLinearSolver`
+    public classConjugateGradient extends :class:`~org.hipparchus.linear.PreconditionedIterativeLinearSolver`
     
     
         This is an implementation of the conjugate gradient method for :class:`~org.hipparchus.linear.RealLinearOperator`. It
@@ -6631,23 +6823,27 @@ class ConjugateGradient(PreconditionedIterativeLinearSolver):
     """
     OPERATOR: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` OPERATOR
+    public static final :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` OPERATOR
     
         Key for the :meth:`~org.hipparchus.linear.ConjugateGradient.context`.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
     VECTOR: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` VECTOR
+    public static final :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` VECTOR
     
         Key for the :meth:`~org.hipparchus.linear.ConjugateGradient.context`.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -6675,7 +6871,8 @@ class ConjugateGradient(PreconditionedIterativeLinearSolver):
 
 class OpenMapRealVector(SparseRealVector, java.io.Serializable):
     """
-    public class OpenMapRealVector extends :class:`~org.hipparchus.linear.SparseRealVector` implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classOpenMapRealVector extends :class:`~org.hipparchus.linear.SparseRealVector`
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements the :class:`~org.hipparchus.linear.RealVector` interface with a
         :class:`~org.hipparchus.util.OpenIntToDoubleHashMap` backing store.
@@ -6685,7 +6882,8 @@ class OpenMapRealVector(SparseRealVector, java.io.Serializable):
         infinities) may thus give incorrect results, like multiplications, divisions or functions mapping.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     DEFAULT_ZERO_TOLERANCE: typing.ClassVar[float] = ...
     """
@@ -6694,7 +6892,9 @@ class OpenMapRealVector(SparseRealVector, java.io.Serializable):
         Default Tolerance for having a value considered zero.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -6796,7 +6996,7 @@ class OpenMapRealVector(SparseRealVector, java.io.Serializable):
                 :meth:`~org.hipparchus.linear.RealVector.equals` in class :class:`~org.hipparchus.linear.RealVector`
         
             Parameters:
-                obj (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object to test for equality.
+                obj (:class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object to test for equality.
         
             Returns:
                 :code:`true` if two vector objects are equal, :code:`false` if :code:`other` is null, not an instance of
@@ -6948,7 +7148,7 @@ class OpenMapRealVector(SparseRealVector, java.io.Serializable):
 
 class SparseRealMatrix(RealMatrix):
     """
-    public interface SparseRealMatrix extends :class:`~org.hipparchus.linear.RealMatrix`
+    public interfaceSparseRealMatrixextends :class:`~org.hipparchus.linear.RealMatrix`
     
         Marker interface for :class:`~org.hipparchus.linear.RealMatrix` implementations that require sparse backing storage
     
@@ -6960,7 +7160,7 @@ class SparseRealMatrix(RealMatrix):
 
 class SymmLQ(PreconditionedIterativeLinearSolver):
     """
-    public class SymmLQ extends :class:`~org.hipparchus.linear.PreconditionedIterativeLinearSolver`
+    public classSymmLQ extends :class:`~org.hipparchus.linear.PreconditionedIterativeLinearSolver`
     
     
         Implementation of the SYMMLQ iterative linear solver proposed by :meth:`~org.hipparchus.linear.SymmLQ.PAIG1975`. This
@@ -7081,7 +7281,8 @@ class SymmLQ(PreconditionedIterativeLinearSolver):
 _Array2DRowFieldMatrix__T = typing.TypeVar('_Array2DRowFieldMatrix__T', bound=org.hipparchus.FieldElement)  # <T>
 class Array2DRowFieldMatrix(AbstractFieldMatrix[_Array2DRowFieldMatrix__T], java.io.Serializable, typing.Generic[_Array2DRowFieldMatrix__T]):
     """
-    public class Array2DRowFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AbstractFieldMatrix`<T> implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classArray2DRowFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AbstractFieldMatrix`<T>
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Implementation of :class:`~org.hipparchus.linear.FieldMatrix` using a :class:`~org.hipparchus.FieldElement`[][] array to
         store entries.
@@ -7090,7 +7291,8 @@ class Array2DRowFieldMatrix(AbstractFieldMatrix[_Array2DRowFieldMatrix__T], java
         :code:`getEntry(0, 0)` returns the element in the first row, first column of the matrix
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_Array2DRowFieldMatrix__T]): ...
@@ -7230,12 +7432,14 @@ class Array2DRowFieldMatrix(AbstractFieldMatrix[_Array2DRowFieldMatrix__T], java
 
 class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
     """
-    public class Array2DRowRealMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix` implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classArray2DRowRealMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix`
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Implementation of :class:`~org.hipparchus.linear.RealMatrix` using a :code:`double[][]` array to store entries.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -7466,15 +7670,19 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in column order.
         
@@ -7495,17 +7703,21 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInColumnOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInColumnOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in column order.
         
@@ -7533,17 +7745,21 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInColumnOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInColumnOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in column order.
         
@@ -7571,15 +7787,19 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -7612,15 +7832,19 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in row order.
         
@@ -7641,17 +7865,21 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in row order.
         
@@ -7679,17 +7907,21 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in row order.
         
@@ -7717,15 +7949,19 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -7740,7 +7976,8 @@ class Array2DRowRealMatrix(AbstractRealMatrix, java.io.Serializable):
 _BlockFieldMatrix__T = typing.TypeVar('_BlockFieldMatrix__T', bound=org.hipparchus.FieldElement)  # <T>
 class BlockFieldMatrix(AbstractFieldMatrix[_BlockFieldMatrix__T], java.io.Serializable, typing.Generic[_BlockFieldMatrix__T]):
     """
-    public class BlockFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AbstractFieldMatrix`<T> implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBlockFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AbstractFieldMatrix`<T>
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Cache-friendly implementation of FieldMatrix using a flat arrays to store square blocks of the matrix.
     
@@ -7768,7 +8005,8 @@ class BlockFieldMatrix(AbstractFieldMatrix[_BlockFieldMatrix__T], java.io.Serial
         1%). The gain from cache efficiency leads to up to 3-fold improvements for matrices of moderate to large size.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     BLOCK_SIZE: typing.ClassVar[int] = ...
     """
@@ -7777,7 +8015,9 @@ class BlockFieldMatrix(AbstractFieldMatrix[_BlockFieldMatrix__T], java.io.Serial
         Block size.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -7811,8 +8051,10 @@ class BlockFieldMatrix(AbstractFieldMatrix[_BlockFieldMatrix__T], java.io.Serial
                 a new data array in blocks layout.
         
             Also see:
-                :meth:`~org.hipparchus.linear.BlockFieldMatrix.toBlocksLayout`,
-                :meth:`~org.hipparchus.linear.BlockFieldMatrix.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.linear.BlockFieldMatrix.toBlocksLayout`
+                  - :meth:`~org.hipparchus.linear.BlockFieldMatrix.%3Cinit%3E`
+        
         
         
         """
@@ -7942,7 +8184,8 @@ class BlockFieldMatrix(AbstractFieldMatrix[_BlockFieldMatrix__T], java.io.Serial
 
 class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
     """
-    public class BlockRealMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix` implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBlockRealMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix`
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Cache-friendly implementation of RealMatrix using a flat arrays to store square blocks of the matrix.
     
@@ -7971,7 +8214,8 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
         1%). The gain from cache efficiency leads to up to 3-fold improvements for matrices of moderate to large size.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     BLOCK_SIZE: typing.ClassVar[int] = ...
     """
@@ -7980,7 +8224,9 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
         Block size.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -8027,7 +8273,10 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 a new data array in blocks layout.
         
             Also see:
-                :meth:`~org.hipparchus.linear.BlockRealMatrix.toBlocksLayout`, :meth:`~org.hipparchus.linear.BlockRealMatrix.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.linear.BlockRealMatrix.toBlocksLayout`
+                  - :meth:`~org.hipparchus.linear.BlockRealMatrix.%3Cinit%3E`
+        
         
         
         """
@@ -8263,15 +8512,19 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries using the fastest possible order.
         
@@ -8291,17 +8544,21 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries using the fastest possible order.
         
@@ -8328,17 +8585,21 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInOptimizedOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInOptimizedOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries using the fastest possible order.
         
@@ -8365,15 +8626,19 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -8406,15 +8671,19 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixChangingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
             Visit (but don't change) all matrix entries in row order.
         
@@ -8435,17 +8704,21 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 the value returned by :meth:`~org.hipparchus.linear.RealMatrixPreservingVisitor.end` at the end of the walk
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixChangingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (and possibly change) some matrix entries in row order.
         
@@ -8473,17 +8746,21 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
-        
-        public double walkInRowOrder (:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+        
+        public double walkInRowOrder(:class:`~org.hipparchus.linear.RealMatrixPreservingVisitor` visitor, int startRow, int endRow, int startColumn, int endColumn) throws :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Visit (but don't change) some matrix entries in row order.
         
@@ -8511,15 +8788,19 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if the indices are not valid.
         
             Also see:
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`, :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`,
-                :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInRowOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInColumnOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+                  - :meth:`~org.hipparchus.linear.RealMatrix.walkInOptimizedOrder`
+        
         
         
         """
@@ -8533,12 +8814,14 @@ class BlockRealMatrix(AbstractRealMatrix, java.io.Serializable):
 
 class DiagonalMatrix(AbstractRealMatrix, java.io.Serializable):
     """
-    public class DiagonalMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix` implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classDiagonalMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix`
+    implements :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Implementation of a diagonal matrix.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]): ...
@@ -8705,7 +8988,8 @@ class DiagonalMatrix(AbstractRealMatrix, java.io.Serializable):
 
 class OpenMapRealMatrix(AbstractRealMatrix, SparseRealMatrix, java.io.Serializable):
     """
-    public class OpenMapRealMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix` implements :class:`~org.hipparchus.linear.SparseRealMatrix`, :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classOpenMapRealMatrix extends :class:`~org.hipparchus.linear.AbstractRealMatrix`
+    implements :class:`~org.hipparchus.linear.SparseRealMatrix`, :class:`~org.hipparchus.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Sparse matrix implementation based on an open addressed map.
     
@@ -8714,7 +8998,8 @@ class OpenMapRealMatrix(AbstractRealMatrix, SparseRealMatrix, java.io.Serializab
         infinities) may thus give incorrect results.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, int: int, int2: int): ...
@@ -8801,7 +9086,7 @@ class OpenMapRealMatrix(AbstractRealMatrix, SparseRealMatrix, java.io.Serializab
 _SparseFieldMatrix__T = typing.TypeVar('_SparseFieldMatrix__T', bound=org.hipparchus.FieldElement)  # <T>
 class SparseFieldMatrix(AbstractFieldMatrix[_SparseFieldMatrix__T], typing.Generic[_SparseFieldMatrix__T]):
     """
-    public class SparseFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AbstractFieldMatrix`<T>
+    public classSparseFieldMatrix<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.linear.AbstractFieldMatrix`<T>
     
         Sparse matrix implementation based on an open addressed map.
     
diff --git a/org-stubs/hipparchus/ode/__init__.pyi b/org-stubs/hipparchus/ode/__init__.pyi
index fb14c2efe716b10f792e8bde9542b44b4505b676..8ce9c26840db6b6d49f03d29dc29307addac1ece 100644
--- a/org-stubs/hipparchus/ode/__init__.pyi
+++ b/org-stubs/hipparchus/ode/__init__.pyi
@@ -21,7 +21,7 @@ import typing
 
 class ComplexODEConverter:
     """
-    public class ComplexODEConverter extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classComplexODEConverter extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class converts :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation` into
         :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`.
@@ -44,15 +44,14 @@ class ComplexODEConverter:
     
         .. code-block: java
         
-        
-           ODEIntegrator                       integrator       = ...build some integrator...;
-           ComplexOrdinaryDifferentialEquation complexEquations = ...set up the complex problem...;
-           ComplexODEState                     initialState     = ...set up initial state...;
-           ComplexODEConverter                 converter        = new ComplexODEConverter();
-           ComplexODEStateAndDerivative        finalstate       =
-              converter.convertStateAndDerivative(integrator.integrate(converter.convertEquations(complexEquations),
-                                                                       converter.convertState(initialState),
-                                                                       t);
+           ODEIntegrator                       integrator       = ...build some integrator...;
+           ComplexOrdinaryDifferentialEquation complexEquations = ...set up the complex problem...;
+           ComplexODEState                     initialState     = ...set up initial state...;
+           ComplexODEConverter                 converter        = new ComplexODEConverter();
+           ComplexODEStateAndDerivative        finalstate       =
+              converter.convertStateAndDerivative(integrator.integrate(converter.convertEquations(complexEquations),
+                                                                       converter.convertState(initialState),
+                                                                       t);
          
     
         If there are :class:`~org.hipparchus.ode.ComplexSecondaryODE`, they must be converted too and both the converted primary
@@ -63,8 +62,9 @@ class ComplexODEConverter:
             1.4
     
         Also see:
-            :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation`,
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+    
+              - :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
     """
     def __init__(self): ...
     def convertEquations(self, complexOrdinaryDifferentialEquation: 'ComplexOrdinaryDifferentialEquation') -> 'OrdinaryDifferentialEquation':
@@ -121,7 +121,8 @@ class ComplexODEConverter:
 
 class ComplexODEState(java.io.Serializable):
     """
-    public class ComplexODEState extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classComplexODEState extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Container for time, main and secondary state vectors.
     
@@ -129,8 +130,12 @@ class ComplexODEState(java.io.Serializable):
             1.4
     
         Also see:
-            :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.SecondaryODE`,
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.ODEStateAndDerivative`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.SecondaryODE`
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.ODEStateAndDerivative`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, complexArray: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray]): ...
@@ -145,8 +150,10 @@ class ComplexODEState(java.io.Serializable):
                 :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryState` in increasing index order
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryState`,
-                :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryState`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryState`
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryState`
+        
         
         
         """
@@ -161,8 +168,10 @@ class ComplexODEState(java.io.Serializable):
                 dimension of the complete set of equations
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryStateDimension`,
-                :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryStateDimension`
+        
         
         
         """
@@ -185,8 +194,10 @@ class ComplexODEState(java.io.Serializable):
                 primary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryState`,
-                :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteState`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryState`
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteState`
+        
         
         
         """
@@ -199,8 +210,10 @@ class ComplexODEState(java.io.Serializable):
                 primary state dimension
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryStateDimension`,
-                :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getSecondaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteStateDimension`
+        
         
         
         """
@@ -217,8 +230,10 @@ class ComplexODEState(java.io.Serializable):
                 secondary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryState`,
-                :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteState`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryState`
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteState`
+        
         
         
         """
@@ -235,8 +250,10 @@ class ComplexODEState(java.io.Serializable):
                 secondary state dimension
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryStateDimension`,
-                :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getPrimaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.ComplexODEState.getCompleteStateDimension`
+        
         
         
         """
@@ -254,7 +271,7 @@ class ComplexODEState(java.io.Serializable):
 
 class ComplexOrdinaryDifferentialEquation:
     """
-    public interface ComplexOrdinaryDifferentialEquation
+    public interfaceComplexOrdinaryDifferentialEquation
     
         This interface represents a first order differential equations set for
         :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`.
@@ -263,7 +280,9 @@ class ComplexOrdinaryDifferentialEquation:
             1.4
     
         Also see:
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.ComplexODEConverter`
+    
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.ComplexODEConverter`
     """
     def computeDerivatives(self, double: float, complexArray: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray]) -> typing.MutableSequence[org.hipparchus.complex.Complex]:
         """
@@ -309,7 +328,7 @@ class ComplexOrdinaryDifferentialEquation:
 
 class ComplexSecondaryODE:
     """
-    public interface ComplexSecondaryODE
+    public interfaceComplexSecondaryODE
     
         This interface allows users to add secondary differential equations to a primary set of differential equations.
     
@@ -326,7 +345,9 @@ class ComplexSecondaryODE:
             1.4
     
         Also see:
-            :class:`~org.hipparchus.ode.ExpandableODE`, :class:`~org.hipparchus.ode.ComplexODEConverter`
+    
+              - :class:`~org.hipparchus.ode.ExpandableODE`
+              - :class:`~org.hipparchus.ode.ComplexODEConverter`
     """
     def computeDerivatives(self, double: float, complexArray: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray], complexArray2: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray], complexArray3: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray]) -> typing.MutableSequence[org.hipparchus.complex.Complex]: ...
     def getDimension(self) -> int:
@@ -360,7 +381,8 @@ class ComplexSecondaryODE:
 
 class DenseOutputModel(org.hipparchus.ode.sampling.ODEStepHandler, java.io.Serializable):
     """
-    public class DenseOutputModel extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.sampling.ODEStepHandler`, :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classDenseOutputModel extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.sampling.ODEStepHandler`, :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class stores all information provided by an ODE integrator during the integration process and build a continuous
         model of the solution from this.
@@ -394,8 +416,10 @@ class DenseOutputModel(org.hipparchus.ode.sampling.ODEStepHandler, java.io.Seria
         in :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator`).
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.ODEStepHandler`, :class:`~org.hipparchus.ode.sampling.ODEStateInterpolator`,
-            :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.ODEStateInterpolator`
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def append(self, denseOutputModel: 'DenseOutputModel') -> None: ...
@@ -483,14 +507,17 @@ class DenseOutputModel(org.hipparchus.ode.sampling.ODEStepHandler, java.io.Seria
 
 class EquationsMapper(java.io.Serializable):
     """
-    public class EquationsMapper extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classEquationsMapper extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Class mapping the part of a complete state or derivative that pertains to a specific differential equation.
     
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :class:`~org.hipparchus.ode.SecondaryODE`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.SecondaryODE`
+              - :meth:`~serialized`
     """
     def extractEquationData(self, int: int, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]: ...
     def getNumberOfEquations(self) -> int:
@@ -520,7 +547,7 @@ class EquationsMapper(java.io.Serializable):
 
 class ExpandableODE:
     """
-    public class ExpandableODE extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classExpandableODE extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class represents a combined set of first order differential equations, with at least a primary set of equations
         expandable by some sets of secondary equations.
@@ -534,7 +561,9 @@ class ExpandableODE:
         know where the primary set ends and so where the secondary sets begin.
     
         Also see:
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.VariationalEquation`
+    
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.VariationalEquation`
     """
     def __init__(self, ordinaryDifferentialEquation: 'OrdinaryDifferentialEquation'): ...
     def addSecondaryEquations(self, secondaryODE: 'SecondaryODE') -> int:
@@ -593,7 +622,8 @@ class ExpandableODE:
 _FieldDenseOutputModel__T = typing.TypeVar('_FieldDenseOutputModel__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldDenseOutputModel(org.hipparchus.ode.sampling.FieldODEStepHandler[_FieldDenseOutputModel__T], typing.Generic[_FieldDenseOutputModel__T]):
     """
-    public class FieldDenseOutputModel<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`<T>
+    public classFieldDenseOutputModel<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`<T>
     
         This class stores all information provided by an ODE integrator during the integration process and build a continuous
         model of the solution from this.
@@ -622,8 +652,9 @@ class FieldDenseOutputModel(org.hipparchus.ode.sampling.FieldODEStepHandler[_Fie
         settings in :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator`).
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`,
-            :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`
+    
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`
     """
     def __init__(self): ...
     def append(self, fieldDenseOutputModel: 'FieldDenseOutputModel'[_FieldDenseOutputModel__T]) -> None: ...
@@ -655,14 +686,17 @@ class FieldDenseOutputModel(org.hipparchus.ode.sampling.FieldODEStepHandler[_Fie
 _FieldEquationsMapper__T = typing.TypeVar('_FieldEquationsMapper__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldEquationsMapper(java.io.Serializable, typing.Generic[_FieldEquationsMapper__T]):
     """
-    public class FieldEquationsMapper<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFieldEquationsMapper<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Class mapping the part of a complete state or derivative that pertains to a set of differential equations.
     
         Instances of this class are guaranteed to be immutable.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldExpandableODE`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.FieldExpandableODE`
+              - :meth:`~serialized`
     """
     def extractEquationData(self, int: int, tArray: typing.Union[typing.List[_FieldEquationsMapper__T], jpype.JArray]) -> typing.MutableSequence[_FieldEquationsMapper__T]: ...
     def getNumberOfEquations(self) -> int:
@@ -693,7 +727,7 @@ class FieldEquationsMapper(java.io.Serializable, typing.Generic[_FieldEquationsM
 _FieldExpandableODE__T = typing.TypeVar('_FieldExpandableODE__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldExpandableODE(typing.Generic[_FieldExpandableODE__T]):
     """
-    public class FieldExpandableODE<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldExpandableODE<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class represents a combined set of first order differential equations, with at least a primary set of equations
         expandable by some sets of secondary equations.
@@ -707,7 +741,9 @@ class FieldExpandableODE(typing.Generic[_FieldExpandableODE__T]):
         know where the primary set ends and so where the secondary sets begin.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.FieldSecondaryODE`
+    
+              - :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.FieldSecondaryODE`
     """
     def __init__(self, fieldOrdinaryDifferentialEquation: 'FieldOrdinaryDifferentialEquation'[_FieldExpandableODE__T]): ...
     def addSecondaryEquations(self, fieldSecondaryODE: 'FieldSecondaryODE'[_FieldExpandableODE__T]) -> int: ...
@@ -719,7 +755,7 @@ class FieldExpandableODE(typing.Generic[_FieldExpandableODE__T]):
 _FieldODEIntegrator__T = typing.TypeVar('_FieldODEIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEIntegrator(typing.Generic[_FieldODEIntegrator__T]):
     """
-    public interface FieldODEIntegrator<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEIntegrator<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a first order integrator for differential equations.
     
@@ -727,7 +763,8 @@ class FieldODEIntegrator(typing.Generic[_FieldODEIntegrator__T]):
         which can be handled should implement the :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation` interface.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`
+    
+              - :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`
     """
     def addEventDetector(self, fieldODEEventDetector: org.hipparchus.ode.events.FieldODEEventDetector[_FieldODEIntegrator__T]) -> None: ...
     def addStepEndHandler(self, fieldODEStepEndHandler: typing.Union[org.hipparchus.ode.events.FieldODEStepEndHandler[_FieldODEIntegrator__T], typing.Callable[['FieldODEStateAndDerivative'[org.hipparchus.CalculusFieldElement], bool], org.hipparchus.ode.events.Action]]) -> None: ...
@@ -740,8 +777,10 @@ class FieldODEIntegrator(typing.Generic[_FieldODEIntegrator__T]):
                 3.0
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.addEventDetector`,
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.getEventDetectors`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.addEventDetector`
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.getEventDetectors`
+        
         
         
         """
@@ -754,8 +793,10 @@ class FieldODEIntegrator(typing.Generic[_FieldODEIntegrator__T]):
                 3.0
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepEndHandler`,
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepEndHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepEndHandler`
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepEndHandlers`
+        
         
         
         """
@@ -765,8 +806,10 @@ class FieldODEIntegrator(typing.Generic[_FieldODEIntegrator__T]):
             Remove all the step handlers that have been added to the integrator.
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepHandler`,
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepHandler`
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepHandlers`
+        
         
         
         """
@@ -843,13 +886,16 @@ class FieldODEIntegrator(typing.Generic[_FieldODEIntegrator__T]):
 _FieldODEState__T = typing.TypeVar('_FieldODEState__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEState(typing.Generic[_FieldODEState__T]):
     """
-    public class FieldODEState<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldODEState<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Container for time, main and secondary state vectors.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.FieldSecondaryODE`,
-            :class:`~org.hipparchus.ode.FieldODEIntegrator`, :class:`~org.hipparchus.ode.FieldODEStateAndDerivative`
+    
+              - :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.FieldSecondaryODE`
+              - :class:`~org.hipparchus.ode.FieldODEIntegrator`
+              - :class:`~org.hipparchus.ode.FieldODEStateAndDerivative`
     """
     @typing.overload
     def __init__(self, t: _FieldODEState__T, tArray: typing.Union[typing.List[_FieldODEState__T], jpype.JArray]): ...
@@ -864,7 +910,10 @@ class FieldODEState(typing.Generic[_FieldODEState__T]):
                 :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryState` in increasing index order
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEState.getPrimaryState`, :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryState`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEState.getPrimaryState`
+                  - :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryState`
+        
         
         
         """
@@ -899,7 +948,10 @@ class FieldODEState(typing.Generic[_FieldODEState__T]):
                 primary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryState`, :meth:`~org.hipparchus.ode.FieldODEState.getCompleteState`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryState`
+                  - :meth:`~org.hipparchus.ode.FieldODEState.getCompleteState`
+        
         
         
         """
@@ -912,8 +964,10 @@ class FieldODEState(typing.Generic[_FieldODEState__T]):
                 primary state dimension
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryStateDimension`,
-                :meth:`~org.hipparchus.ode.FieldODEState.getCompleteStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEState.getSecondaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.FieldODEState.getCompleteStateDimension`
+        
         
         
         """
@@ -960,7 +1014,7 @@ class FieldODEState(typing.Generic[_FieldODEState__T]):
 _FieldOrdinaryDifferentialEquation__T = typing.TypeVar('_FieldOrdinaryDifferentialEquation__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldOrdinaryDifferentialEquation(typing.Generic[_FieldOrdinaryDifferentialEquation__T]):
     """
-    public interface FieldOrdinaryDifferentialEquation<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldOrdinaryDifferentialEquation<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a first order differential equations set.
     
@@ -976,7 +1030,8 @@ class FieldOrdinaryDifferentialEquation(typing.Generic[_FieldOrdinaryDifferentia
         implement it are allowed to handle them as they want.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldODEIntegrator`
+    
+              - :class:`~org.hipparchus.ode.FieldODEIntegrator`
     """
     def computeDerivatives(self, t: _FieldOrdinaryDifferentialEquation__T, tArray: typing.Union[typing.List[_FieldOrdinaryDifferentialEquation__T], jpype.JArray]) -> typing.MutableSequence[_FieldOrdinaryDifferentialEquation__T]:
         """
@@ -1023,7 +1078,7 @@ class FieldOrdinaryDifferentialEquation(typing.Generic[_FieldOrdinaryDifferentia
 _FieldSecondaryODE__T = typing.TypeVar('_FieldSecondaryODE__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldSecondaryODE(typing.Generic[_FieldSecondaryODE__T]):
     """
-    public interface FieldSecondaryODE<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldSecondaryODE<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface allows users to add secondary differential equations to a primary set of differential equations.
     
@@ -1036,7 +1091,9 @@ class FieldSecondaryODE(typing.Generic[_FieldSecondaryODE__T]):
         :meth:`~org.hipparchus.ode.FieldExpandableODE.addSecondaryEquations` method.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.FieldExpandableODE`
+    
+              - :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.FieldExpandableODE`
     """
     def computeDerivatives(self, t: _FieldSecondaryODE__T, tArray: typing.Union[typing.List[_FieldSecondaryODE__T], jpype.JArray], tArray2: typing.Union[typing.List[_FieldSecondaryODE__T], jpype.JArray], tArray3: typing.Union[typing.List[_FieldSecondaryODE__T], jpype.JArray]) -> typing.MutableSequence[_FieldSecondaryODE__T]: ...
     def getDimension(self) -> int:
@@ -1070,7 +1127,8 @@ class FieldSecondaryODE(typing.Generic[_FieldSecondaryODE__T]):
 
 class LocalizedODEFormats(java.lang.Enum['LocalizedODEFormats'], org.hipparchus.exception.Localizable):
     """
-    public enum LocalizedODEFormats extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.ode.LocalizedODEFormats`> implements :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`
+    public enumLocalizedODEFormats extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.ode.LocalizedODEFormats`>
+    implements :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`
     
         Enumeration for localized messages formats used in exceptions messages.
     
@@ -1122,14 +1180,14 @@ class LocalizedODEFormats(java.lang.Enum['LocalizedODEFormats'], org.hipparchus.
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -1137,15 +1195,7 @@ class LocalizedODEFormats(java.lang.Enum['LocalizedODEFormats'], org.hipparchus.
     @staticmethod
     def values() -> typing.MutableSequence['LocalizedODEFormats']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (LocalizedODEFormats c : LocalizedODEFormats.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -1157,7 +1207,7 @@ class LocalizedODEFormats(java.lang.Enum['LocalizedODEFormats'], org.hipparchus.
 _MultistepFieldIntegrator__T = typing.TypeVar('_MultistepFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class MultistepFieldIntegrator(org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator[_MultistepFieldIntegrator__T], typing.Generic[_MultistepFieldIntegrator__T]):
     """
-    public abstract class MultistepFieldIntegrator<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator`<T>
+    public abstract classMultistepFieldIntegrator<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator`<T>
     
         This class is the base class for multistep integrators for Ordinary Differential Equations.
     
@@ -1176,8 +1226,9 @@ class MultistepFieldIntegrator(org.hipparchus.ode.nonstiff.AdaptiveStepsizeField
         :sup:`1/order` .
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.AdamsBashforthFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.AdamsBashforthFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonFieldIntegrator`
     """
     def getMaxGrowth(self) -> float:
         """
@@ -1254,7 +1305,7 @@ class MultistepFieldIntegrator(org.hipparchus.ode.nonstiff.AdaptiveStepsizeField
 
 class MultistepIntegrator(org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator):
     """
-    public abstract class MultistepIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator`
+    public abstract classMultistepIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator`
     
         This class is the base class for multistep integrators for Ordinary Differential Equations.
     
@@ -1273,8 +1324,9 @@ class MultistepIntegrator(org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator
         :sup:`1/order` .
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.AdamsBashforthIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.AdamsBashforthIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonIntegrator`
     """
     def getMaxGrowth(self) -> float:
         """
@@ -1372,7 +1424,7 @@ class MultistepIntegrator(org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator
 
 class ODEIntegrator:
     """
-    public interface ODEIntegrator
+    public interfaceODEIntegrator
     
         This interface represents a first order integrator for differential equations.
     
@@ -1380,8 +1432,10 @@ class ODEIntegrator:
         which can be handled should implement the :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation` interface.
     
         Also see:
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.sampling.ODEStepHandler`,
-            :class:`~org.hipparchus.ode.events.ODEEventHandler`
+    
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+              - :class:`~org.hipparchus.ode.events.ODEEventHandler`
     """
     def addEventDetector(self, oDEEventDetector: org.hipparchus.ode.events.ODEEventDetector) -> None:
         """
@@ -1394,8 +1448,10 @@ class ODEIntegrator:
                 3.0
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`,
-                :meth:`~org.hipparchus.ode.ODEIntegrator.clearEventDetectors`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.clearEventDetectors`
+        
         
         
         """
@@ -1414,8 +1470,10 @@ class ODEIntegrator:
                 3.0
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`,
-                :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepEndHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepEndHandlers`
+        
         
         
         """
@@ -1430,7 +1488,10 @@ class ODEIntegrator:
                 handler (:class:`~org.hipparchus.ode.sampling.ODEStepHandler`): handler for the accepted steps
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`, :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepHandlers`
+        
         
         
         """
@@ -1443,7 +1504,10 @@ class ODEIntegrator:
                 3.0
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.addEventDetector`, :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.addEventDetector`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`
+        
         
         
         """
@@ -1456,8 +1520,10 @@ class ODEIntegrator:
                 3.0
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.addStepEndHandler`,
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.addStepEndHandler`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`
+        
         
         
         """
@@ -1467,7 +1533,10 @@ class ODEIntegrator:
             Remove all the step handlers that have been added to the integrator.
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.addStepHandler`, :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.addStepHandler`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`
+        
         
         
         """
@@ -1561,13 +1630,18 @@ class ODEIntegrator:
 
 class ODEState(java.io.Serializable):
     """
-    public class ODEState extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classODEState extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Container for time, main and secondary state vectors.
     
         Also see:
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.SecondaryODE`,
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.ODEStateAndDerivative`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.SecondaryODE`
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.ODEStateAndDerivative`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray]): ...
@@ -1582,7 +1656,10 @@ class ODEState(java.io.Serializable):
                 :meth:`~org.hipparchus.ode.ODEState.getSecondaryState` in increasing index order
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEState.getPrimaryState`, :meth:`~org.hipparchus.ode.ODEState.getSecondaryState`
+        
+                  - :meth:`~org.hipparchus.ode.ODEState.getPrimaryState`
+                  - :meth:`~org.hipparchus.ode.ODEState.getSecondaryState`
+        
         
         
         """
@@ -1597,8 +1674,10 @@ class ODEState(java.io.Serializable):
                 dimension of the complete set of equations
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEState.getPrimaryStateDimension`,
-                :meth:`~org.hipparchus.ode.ODEState.getSecondaryStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.ODEState.getPrimaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.ODEState.getSecondaryStateDimension`
+        
         
         
         """
@@ -1621,7 +1700,10 @@ class ODEState(java.io.Serializable):
                 primary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEState.getSecondaryState`, :meth:`~org.hipparchus.ode.ODEState.getCompleteState`
+        
+                  - :meth:`~org.hipparchus.ode.ODEState.getSecondaryState`
+                  - :meth:`~org.hipparchus.ode.ODEState.getCompleteState`
+        
         
         
         """
@@ -1634,8 +1716,10 @@ class ODEState(java.io.Serializable):
                 primary state dimension
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEState.getSecondaryStateDimension`,
-                :meth:`~org.hipparchus.ode.ODEState.getCompleteStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.ODEState.getSecondaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.ODEState.getCompleteStateDimension`
+        
         
         
         """
@@ -1652,7 +1736,10 @@ class ODEState(java.io.Serializable):
                 secondary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEState.getPrimaryState`, :meth:`~org.hipparchus.ode.ODEState.getCompleteState`
+        
+                  - :meth:`~org.hipparchus.ode.ODEState.getPrimaryState`
+                  - :meth:`~org.hipparchus.ode.ODEState.getCompleteState`
+        
         
         
         """
@@ -1669,8 +1756,10 @@ class ODEState(java.io.Serializable):
                 secondary state dimension
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEState.getPrimaryStateDimension`,
-                :meth:`~org.hipparchus.ode.ODEState.getCompleteStateDimension`
+        
+                  - :meth:`~org.hipparchus.ode.ODEState.getPrimaryStateDimension`
+                  - :meth:`~org.hipparchus.ode.ODEState.getCompleteStateDimension`
+        
         
         
         """
@@ -1688,7 +1777,7 @@ class ODEState(java.io.Serializable):
 
 class OrdinaryDifferentialEquation:
     """
-    public interface OrdinaryDifferentialEquation
+    public interfaceOrdinaryDifferentialEquation
     
         This interface represents a first order differential equations set.
     
@@ -1704,8 +1793,10 @@ class OrdinaryDifferentialEquation:
         implement it are allowed to handle them as they want.
     
         Also see:
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.FirstOrderConverter`,
-            :class:`~org.hipparchus.ode.SecondOrderODE`
+    
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.FirstOrderConverter`
+              - :class:`~org.hipparchus.ode.SecondOrderODE`
     """
     def computeDerivatives(self, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
         """
@@ -1751,7 +1842,7 @@ class OrdinaryDifferentialEquation:
 
 class ParameterConfiguration:
     """
-    public class ParameterConfiguration extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classParameterConfiguration extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Simple container pairing a parameter name with a step in order to compute the associated Jacobian matrix by finite
         difference.
@@ -1781,7 +1872,7 @@ class ParameterConfiguration:
 
 class Parameterizable:
     """
-    public interface Parameterizable
+    public interfaceParameterizable
     
         This interface enables to process any parameterizable object.
     """
@@ -1793,13 +1884,15 @@ class Parameterizable:
             Supported parameters are those listed by :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`.
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): parameter name to check
+                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): parameter name to check
         
             Returns:
                 true if the parameter is supported
         
             Also see:
-                :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`
+        
+                  - :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`
+        
         
         
         """
@@ -1807,7 +1900,7 @@ class Parameterizable:
 
 class SecondOrderODE:
     """
-    public interface SecondOrderODE
+    public interfaceSecondOrderODE
     
         This interface represents a second order differential equations set.
     
@@ -1824,7 +1917,9 @@ class SecondOrderODE:
         implement it are allowed to handle them as they want.
     
         Also see:
-            :class:`~org.hipparchus.ode.FirstOrderConverter`, :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+    
+              - :class:`~org.hipparchus.ode.FirstOrderConverter`
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
     """
     def computeSecondDerivatives(self, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
         """
@@ -1854,7 +1949,7 @@ class SecondOrderODE:
 
 class SecondaryODE:
     """
-    public interface SecondaryODE
+    public interfaceSecondaryODE
     
         This interface allows users to add secondary differential equations to a primary set of differential equations.
     
@@ -1867,7 +1962,8 @@ class SecondaryODE:
         :meth:`~org.hipparchus.ode.ExpandableODE.addSecondaryEquations` method.
     
         Also see:
-            :class:`~org.hipparchus.ode.ExpandableODE`
+    
+              - :class:`~org.hipparchus.ode.ExpandableODE`
     """
     def computeDerivatives(self, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], doubleArray3: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]: ...
     def getDimension(self) -> int:
@@ -1901,7 +1997,7 @@ class SecondaryODE:
 
 class VariationalEquation:
     """
-    public class VariationalEquation extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classVariationalEquation extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This class defines a set of :class:`~org.hipparchus.ode.SecondaryODE` to compute the global Jacobian matrices with
         respect to the initial state vector and, if any, to some parameters of the primary ODE set.
@@ -1921,24 +2017,23 @@ class VariationalEquation:
     
         .. code-block: java
         
-        
-           // set up equations
-           ODEJacobiansProvider jode       = new MyODE(...);
-           ExpandableODE        expandable = new Expandable(jode);
-           VariationalEquation  ve         = new VariationalEquation(expandable, jode);
-        
-           // set up initial state
-           ODEState initWithoutDerivatives = new ODEState(t0, y0);
-           ve.setInitialMainStateJacobian(dYdY0); // only needed if the default identity matrix is not suitable
-           ve.setInitialParameterJacobian(name, dYdP); // only needed if the default zero matrix is not suitable
-           ODEState initWithDerivatives = ve.setUpInitialState(initWithoutDerivatives);
-        
-           // perform integration on the expanded equations with the expanded initial state
-           ODEStateAndDerivative finalState = integrator.integrate(expandable, initWithDerivatives, finalT);
-        
-           // extract Jacobian matrices
-           dYdY0 = ve.extractMainSetJacobian(finalState);
-           dYdP  = ve.extractParameterJacobian(finalState, name);
+           // set up equations
+           ODEJacobiansProvider jode       = new MyODE(...);
+           ExpandableODE        expandable = new Expandable(jode);
+           VariationalEquation  ve         = new VariationalEquation(expandable, jode);
+        
+           // set up initial state
+           ODEState initWithoutDerivatives = new ODEState(t0, y0);
+           ve.setInitialMainStateJacobian(dYdY0); // only needed if the default identity matrix is not suitable
+           ve.setInitialParameterJacobian(name, dYdP); // only needed if the default zero matrix is not suitable
+           ODEState initWithDerivatives = ve.setUpInitialState(initWithoutDerivatives);
+        
+           // perform integration on the expanded equations with the expanded initial state
+           ODEStateAndDerivative finalState = integrator.integrate(expandable, initWithDerivatives, finalT);
+        
+           // extract Jacobian matrices
+           dYdY0 = ve.extractMainSetJacobian(finalState);
+           dYdP  = ve.extractParameterJacobian(finalState, name);
          
     
         The most important part is to not forget to call :meth:`~org.hipparchus.ode.VariationalEquation.setUpInitialState` to
@@ -1948,9 +2043,12 @@ class VariationalEquation:
         not have the correct dimension.
     
         Also see:
-            :class:`~org.hipparchus.ode.ExpandableODE`, :class:`~org.hipparchus.ode.ODEJacobiansProvider`,
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.NamedParameterJacobianProvider`,
-            :class:`~org.hipparchus.ode.ParametersController`
+    
+              - :class:`~org.hipparchus.ode.ExpandableODE`
+              - :class:`~org.hipparchus.ode.ODEJacobiansProvider`
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.NamedParameterJacobianProvider`
+              - :class:`~org.hipparchus.ode.ParametersController`
     """
     @typing.overload
     def __init__(self, expandableODE: ExpandableODE, oDEJacobiansProvider: 'ODEJacobiansProvider'): ...
@@ -1975,7 +2073,7 @@ class VariationalEquation:
         
             Parameters:
                 state (:class:`~org.hipparchus.ode.ODEState`): state from which to extract Jacobian matrix
-                pName (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): name of the parameter for the computed Jacobian matrix
+                pName (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): name of the parameter for the computed Jacobian matrix
         
             Returns:
                 Jacobian matrix dY/dP with respect to the named parameter
@@ -2010,7 +2108,8 @@ class VariationalEquation:
 _AbstractFieldIntegrator__T = typing.TypeVar('_AbstractFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AbstractFieldIntegrator(FieldODEIntegrator[_AbstractFieldIntegrator__T], typing.Generic[_AbstractFieldIntegrator__T]):
     """
-    public abstract class AbstractFieldIntegrator<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.FieldODEIntegrator`<T>
+    public abstract classAbstractFieldIntegrator<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.FieldODEIntegrator`<T>
     
         Base class managing common boilerplate for all integrators.
     """
@@ -2026,8 +2125,10 @@ class AbstractFieldIntegrator(FieldODEIntegrator[_AbstractFieldIntegrator__T], t
                 interface :class:`~org.hipparchus.ode.FieldODEIntegrator`
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.addEventDetector`,
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.getEventDetectors`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.addEventDetector`
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.getEventDetectors`
+        
         
         
         """
@@ -2041,8 +2142,10 @@ class AbstractFieldIntegrator(FieldODEIntegrator[_AbstractFieldIntegrator__T], t
                 interface :class:`~org.hipparchus.ode.FieldODEIntegrator`
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepEndHandler`,
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepEndHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepEndHandler`
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepEndHandlers`
+        
         
         
         """
@@ -2056,8 +2159,10 @@ class AbstractFieldIntegrator(FieldODEIntegrator[_AbstractFieldIntegrator__T], t
                 interface :class:`~org.hipparchus.ode.FieldODEIntegrator`
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepHandler`,
-                :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.addStepHandler`
+                  - :meth:`~org.hipparchus.ode.FieldODEIntegrator.getStepHandlers`
+        
         
         
         """
@@ -2153,7 +2258,8 @@ class AbstractFieldIntegrator(FieldODEIntegrator[_AbstractFieldIntegrator__T], t
 
 class AbstractIntegrator(ODEIntegrator):
     """
-    public abstract class AbstractIntegrator extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.ODEIntegrator`
+    public abstract classAbstractIntegrator extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.ODEIntegrator`
     
         Base class managing common boilerplate for all integrators.
     """
@@ -2168,8 +2274,10 @@ class AbstractIntegrator(ODEIntegrator):
                 detector (:class:`~org.hipparchus.ode.events.ODEEventDetector`): event detector
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`,
-                :meth:`~org.hipparchus.ode.ODEIntegrator.clearEventDetectors`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.clearEventDetectors`
+        
         
         
         """
@@ -2188,8 +2296,10 @@ class AbstractIntegrator(ODEIntegrator):
                 handler (:class:`~org.hipparchus.ode.events.ODEStepEndHandler`): handler for step ends
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`,
-                :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepEndHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepEndHandlers`
+        
         
         
         """
@@ -2207,7 +2317,10 @@ class AbstractIntegrator(ODEIntegrator):
                 handler (:class:`~org.hipparchus.ode.sampling.ODEStepHandler`): handler for the accepted steps
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`, :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepHandlers`
+        
         
         
         """
@@ -2220,7 +2333,10 @@ class AbstractIntegrator(ODEIntegrator):
                 :meth:`~org.hipparchus.ode.ODEIntegrator.clearEventDetectors` in interface :class:`~org.hipparchus.ode.ODEIntegrator`
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.addEventDetector`, :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.addEventDetector`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getEventDetectors`
+        
         
         
         """
@@ -2233,8 +2349,10 @@ class AbstractIntegrator(ODEIntegrator):
                 :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepEndHandlers` in interface :class:`~org.hipparchus.ode.ODEIntegrator`
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.addStepEndHandler`,
-                :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.addStepEndHandler`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepEndHandlers`
+        
         
         
         """
@@ -2247,7 +2365,10 @@ class AbstractIntegrator(ODEIntegrator):
                 :meth:`~org.hipparchus.ode.ODEIntegrator.clearStepHandlers` in interface :class:`~org.hipparchus.ode.ODEIntegrator`
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEIntegrator.addStepHandler`, :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`
+        
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.addStepHandler`
+                  - :meth:`~org.hipparchus.ode.ODEIntegrator.getStepHandlers`
+        
         
         
         """
@@ -2357,7 +2478,8 @@ class AbstractIntegrator(ODEIntegrator):
 
 class AbstractParameterizable(Parameterizable):
     """
-    public abstract class AbstractParameterizable extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.Parameterizable`
+    public abstract classAbstractParameterizable extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.Parameterizable`
     
         This abstract class provides boilerplate parameters list.
     """
@@ -2373,13 +2495,15 @@ class AbstractParameterizable(Parameterizable):
                 :meth:`~org.hipparchus.ode.Parameterizable.isSupported` in interface :class:`~org.hipparchus.ode.Parameterizable`
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): parameter name to check
+                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): parameter name to check
         
             Returns:
                 true if the parameter is supported
         
             Also see:
-                :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`
+        
+                  - :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`
+        
         
         
         """
@@ -2387,13 +2511,16 @@ class AbstractParameterizable(Parameterizable):
 
 class ComplexODEStateAndDerivative(ComplexODEState):
     """
-    public class ComplexODEStateAndDerivative extends :class:`~org.hipparchus.ode.ComplexODEState`
+    public classComplexODEStateAndDerivative extends :class:`~org.hipparchus.ode.ComplexODEState`
     
         Container for time, main and secondary state vectors as well as their derivatives.
     
         Also see:
-            :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.ComplexSecondaryODE`,
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.ComplexOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.ComplexSecondaryODE`
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, complexArray: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray], complexArray2: typing.Union[typing.List[org.hipparchus.complex.Complex], jpype.JArray]): ...
@@ -2409,8 +2536,10 @@ class ComplexODEStateAndDerivative(ComplexODEState):
                 :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getSecondaryDerivative` in increasing index order
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getPrimaryDerivative`,
-                :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getSecondaryDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getPrimaryDerivative`
+                  - :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getSecondaryDerivative`
+        
         
         
         """
@@ -2423,8 +2552,10 @@ class ComplexODEStateAndDerivative(ComplexODEState):
                 derivative of the primary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getSecondaryDerivative`,
-                :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getCompleteDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getSecondaryDerivative`
+                  - :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getCompleteDerivative`
+        
         
         
         """
@@ -2441,8 +2572,10 @@ class ComplexODEStateAndDerivative(ComplexODEState):
                 derivative of the secondary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getPrimaryDerivative`,
-                :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getCompleteDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getPrimaryDerivative`
+                  - :meth:`~org.hipparchus.ode.ComplexODEStateAndDerivative.getCompleteDerivative`
+        
         
         
         """
@@ -2451,13 +2584,15 @@ class ComplexODEStateAndDerivative(ComplexODEState):
 _FieldODEStateAndDerivative__T = typing.TypeVar('_FieldODEStateAndDerivative__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEStateAndDerivative(FieldODEState[_FieldODEStateAndDerivative__T], typing.Generic[_FieldODEStateAndDerivative__T]):
     """
-    public class FieldODEStateAndDerivative<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.FieldODEState`<T>
+    public classFieldODEStateAndDerivative<T extends :class:`~org.hipparchus.ode.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.FieldODEState`<T>
     
         Container for time, main and secondary state vectors as well as their derivatives.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.FieldSecondaryODE`,
-            :class:`~org.hipparchus.ode.FieldODEIntegrator`
+    
+              - :class:`~org.hipparchus.ode.FieldOrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.FieldSecondaryODE`
+              - :class:`~org.hipparchus.ode.FieldODEIntegrator`
     """
     @typing.overload
     def __init__(self, t: _FieldODEStateAndDerivative__T, tArray: typing.Union[typing.List[_FieldODEStateAndDerivative__T], jpype.JArray], tArray2: typing.Union[typing.List[_FieldODEStateAndDerivative__T], jpype.JArray]): ...
@@ -2472,8 +2607,10 @@ class FieldODEStateAndDerivative(FieldODEState[_FieldODEStateAndDerivative__T],
                 followed by all :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getSecondaryDerivative` in increasing index order
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getPrimaryDerivative`,
-                :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getSecondaryDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getPrimaryDerivative`
+                  - :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getSecondaryDerivative`
+        
         
         
         """
@@ -2486,8 +2623,10 @@ class FieldODEStateAndDerivative(FieldODEState[_FieldODEStateAndDerivative__T],
                 derivative of the primary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getSecondaryDerivative`,
-                :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getCompleteDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getSecondaryDerivative`
+                  - :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getCompleteDerivative`
+        
         
         
         """
@@ -2504,8 +2643,10 @@ class FieldODEStateAndDerivative(FieldODEState[_FieldODEStateAndDerivative__T],
                 derivative of the secondary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getPrimaryDerivative`,
-                :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getCompleteDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getPrimaryDerivative`
+                  - :meth:`~org.hipparchus.ode.FieldODEStateAndDerivative.getCompleteDerivative`
+        
         
         
         """
@@ -2513,7 +2654,8 @@ class FieldODEStateAndDerivative(FieldODEState[_FieldODEStateAndDerivative__T],
 
 class FirstOrderConverter(OrdinaryDifferentialEquation):
     """
-    public class FirstOrderConverter extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+    public classFirstOrderConverter extends :class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
     
         This class converts second order differential equations to first order ones.
     
@@ -2534,8 +2676,10 @@ class FirstOrderConverter(OrdinaryDifferentialEquation):
         problem as a first order one and then avoid using this class.
     
         Also see:
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`,
-            :class:`~org.hipparchus.ode.SecondOrderODE`
+    
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.SecondOrderODE`
     """
     def __init__(self, secondOrderODE: SecondOrderODE): ...
     def computeDerivatives(self, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
@@ -2575,7 +2719,7 @@ class FirstOrderConverter(OrdinaryDifferentialEquation):
 
 class NamedParameterJacobianProvider(Parameterizable):
     """
-    public interface NamedParameterJacobianProvider extends :class:`~org.hipparchus.ode.Parameterizable`
+    public interfaceNamedParameterJacobianProviderextends :class:`~org.hipparchus.ode.Parameterizable`
     
         Interface to compute exactly Jacobian matrix for some parameter when computing
         :class:`~org.hipparchus.ode.VariationalEquation`.
@@ -2584,13 +2728,16 @@ class NamedParameterJacobianProvider(Parameterizable):
 
 class ODEStateAndDerivative(ODEState):
     """
-    public class ODEStateAndDerivative extends :class:`~org.hipparchus.ode.ODEState`
+    public classODEStateAndDerivative extends :class:`~org.hipparchus.ode.ODEState`
     
         Container for time, main and secondary state vectors as well as their derivatives.
     
         Also see:
-            :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.SecondaryODE`,
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`
+              - :class:`~org.hipparchus.ode.SecondaryODE`
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
@@ -2605,8 +2752,10 @@ class ODEStateAndDerivative(ODEState):
                 followed by all :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getSecondaryDerivative` in increasing index order
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getPrimaryDerivative`,
-                :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getSecondaryDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getPrimaryDerivative`
+                  - :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getSecondaryDerivative`
+        
         
         
         """
@@ -2619,8 +2768,10 @@ class ODEStateAndDerivative(ODEState):
                 derivative of the primary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getSecondaryDerivative`,
-                :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getCompleteDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getSecondaryDerivative`
+                  - :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getCompleteDerivative`
+        
         
         
         """
@@ -2637,8 +2788,10 @@ class ODEStateAndDerivative(ODEState):
                 derivative of the secondary state at time
         
             Also see:
-                :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getPrimaryDerivative`,
-                :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getCompleteDerivative`
+        
+                  - :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getPrimaryDerivative`
+                  - :meth:`~org.hipparchus.ode.ODEStateAndDerivative.getCompleteDerivative`
+        
         
         
         """
@@ -2646,7 +2799,7 @@ class ODEStateAndDerivative(ODEState):
 
 class ParametersController(Parameterizable):
     """
-    public interface ParametersController extends :class:`~org.hipparchus.ode.Parameterizable`
+    public interfaceParametersControllerextends :class:`~org.hipparchus.ode.Parameterizable`
     
         Interface to compute by finite difference Jacobian matrix for some parameter when computing
         :class:`~org.hipparchus.ode.VariationalEquation`.
@@ -2656,7 +2809,7 @@ class ParametersController(Parameterizable):
 
 class ODEJacobiansProvider(OrdinaryDifferentialEquation, NamedParameterJacobianProvider):
     """
-    public interface ODEJacobiansProvider extends :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.NamedParameterJacobianProvider`
+    public interfaceODEJacobiansProviderextends :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`, :class:`~org.hipparchus.ode.NamedParameterJacobianProvider`
     
         Interface expanding :class:`~org.hipparchus.ode.OrdinaryDifferentialEquation` in order to compute exactly the Jacobian
         matrices for :class:`~org.hipparchus.ode.VariationalEquation`.
@@ -2676,13 +2829,15 @@ class ODEJacobiansProvider(OrdinaryDifferentialEquation, NamedParameterJacobianP
                 :meth:`~org.hipparchus.ode.Parameterizable.isSupported` in interface :class:`~org.hipparchus.ode.Parameterizable`
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): parameter name to check
+                name (:class:`~org.hipparchus.ode.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): parameter name to check
         
             Returns:
                 true if the parameter is supported
         
             Also see:
-                :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`
+        
+                  - :meth:`~org.hipparchus.ode.Parameterizable.getParametersNames`
+        
         
         
         """
diff --git a/org-stubs/hipparchus/ode/events/__init__.pyi b/org-stubs/hipparchus/ode/events/__init__.pyi
index 4b058f048227853e6f7436df753c3568be5a12da..c0e2750cda0453aea74a775997d825c3e4d77415 100644
--- a/org-stubs/hipparchus/ode/events/__init__.pyi
+++ b/org-stubs/hipparchus/ode/events/__init__.pyi
@@ -17,7 +17,7 @@ import typing
 
 class Action(java.lang.Enum['Action']):
     """
-    public enum Action extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.ode.events.Action`>
+    public enumAction extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.ode.events.Action`>
     
         Enumerate for actions to be performed when an event occurs during ODE integration.
     """
@@ -38,14 +38,14 @@ class Action(java.lang.Enum['Action']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -53,15 +53,7 @@ class Action(java.lang.Enum['Action']):
     @staticmethod
     def values() -> typing.MutableSequence['Action']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (Action c : Action.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -72,7 +64,7 @@ class Action(java.lang.Enum['Action']):
 
 class AdaptableInterval:
     """
-    :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.FunctionalInterface?is` public interface AdaptableInterval
+    :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.FunctionalInterface`public interfaceAdaptableInterval
     
         This interface represents an event checking interval that depends on state.
     
@@ -80,7 +72,8 @@ class AdaptableInterval:
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.ODEEventDetector`
+    
+              - :class:`~org.hipparchus.ode.events.ODEEventDetector`
     """
     def currentInterval(self, oDEStateAndDerivative: org.hipparchus.ode.ODEStateAndDerivative) -> float:
         """
@@ -98,7 +91,7 @@ class AdaptableInterval:
 
 class EventOccurrence:
     """
-    public class EventOccurrence extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classEventOccurrence extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class to hold the data related to an event occurrence that is needed to decide how to modify integration.
     
@@ -139,7 +132,7 @@ class EventOccurrence:
 
 class EventState:
     """
-    public interface EventState
+    public interfaceEventState
     
         This interface handles the state for either one :class:`~org.hipparchus.ode.events.ODEEventHandler` or one
         :class:`~org.hipparchus.ode.events.ODEStepEndHandler` during integration steps.
@@ -194,7 +187,7 @@ class EventState:
 _FieldAdaptableInterval__T = typing.TypeVar('_FieldAdaptableInterval__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldAdaptableInterval(typing.Generic[_FieldAdaptableInterval__T]):
     """
-    :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.FunctionalInterface?is` public interface FieldAdaptableInterval<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
+    :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.FunctionalInterface`public interfaceFieldAdaptableInterval<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents an event checking interval that depends on state.
     
@@ -202,14 +195,15 @@ class FieldAdaptableInterval(typing.Generic[_FieldAdaptableInterval__T]):
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.ODEEventDetector`
+    
+              - :class:`~org.hipparchus.ode.events.ODEEventDetector`
     """
     def currentInterval(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldAdaptableInterval__T]) -> float: ...
 
 _FieldEventOccurrence__T = typing.TypeVar('_FieldEventOccurrence__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldEventOccurrence(typing.Generic[_FieldEventOccurrence__T]):
     """
-    public class FieldEventOccurrence<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldEventOccurrence<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class to hold the data related to an event occurrence that is needed to decide how to modify integration.
     """
@@ -239,7 +233,7 @@ class FieldEventOccurrence(typing.Generic[_FieldEventOccurrence__T]):
 _FieldEventState__T = typing.TypeVar('_FieldEventState__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldEventState(typing.Generic[_FieldEventState__T]):
     """
-    public interface FieldEventState<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldEventState<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface handles the state for either one :class:`~org.hipparchus.ode.events.FieldODEEventHandler` or one
         :class:`~org.hipparchus.ode.events.FieldODEStepEndHandler` during integration steps.
@@ -264,7 +258,7 @@ class FieldEventState(typing.Generic[_FieldEventState__T]):
 _FieldODEEventDetector__T = typing.TypeVar('_FieldODEEventDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEEventDetector(typing.Generic[_FieldODEEventDetector__T]):
     """
-    public interface FieldODEEventDetector<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEEventDetector<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a handler for discrete events triggered during ODE integration.
     
@@ -291,7 +285,8 @@ class FieldODEEventDetector(typing.Generic[_FieldODEEventDetector__T]):
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.package`
+    
+              - :class:`~org.hipparchus.ode.events.package`
     """
     def g(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEEventDetector__T]) -> _FieldODEEventDetector__T: ...
     def getHandler(self) -> 'FieldODEEventHandler'[_FieldODEEventDetector__T]: ...
@@ -312,7 +307,7 @@ class FieldODEEventDetector(typing.Generic[_FieldODEEventDetector__T]):
 _FieldODEEventHandler__T = typing.TypeVar('_FieldODEEventHandler__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEEventHandler(typing.Generic[_FieldODEEventHandler__T]):
     """
-    public interface FieldODEEventHandler<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEEventHandler<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a handler for discrete events triggered during ODE integration.
     
@@ -336,7 +331,8 @@ class FieldODEEventHandler(typing.Generic[_FieldODEEventHandler__T]):
         custom handlers.
     
         Also see:
-            :class:`~org.hipparchus.ode.events.package`
+    
+              - :class:`~org.hipparchus.ode.events.package`
     """
     def eventOccurred(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEEventHandler__T], fieldODEEventDetector: FieldODEEventDetector[_FieldODEEventHandler__T], boolean: bool) -> Action: ...
     def init(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEEventHandler__T], t: _FieldODEEventHandler__T, fieldODEEventDetector: FieldODEEventDetector[_FieldODEEventHandler__T]) -> None: ...
@@ -345,7 +341,7 @@ class FieldODEEventHandler(typing.Generic[_FieldODEEventHandler__T]):
 _FieldODEStepEndHandler__T = typing.TypeVar('_FieldODEStepEndHandler__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEStepEndHandler(typing.Generic[_FieldODEStepEndHandler__T]):
     """
-    public interface FieldODEStepEndHandler<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEStepEndHandler<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a handler for discrete events triggered during ODE integration at each step end.
     
@@ -353,7 +349,8 @@ class FieldODEStepEndHandler(typing.Generic[_FieldODEStepEndHandler__T]):
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.package`
+    
+              - :class:`~org.hipparchus.ode.events.package`
     """
     def init(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEStepEndHandler__T], t: _FieldODEStepEndHandler__T) -> None: ...
     def resetState(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEStepEndHandler__T]) -> org.hipparchus.ode.FieldODEState[_FieldODEStepEndHandler__T]: ...
@@ -361,7 +358,7 @@ class FieldODEStepEndHandler(typing.Generic[_FieldODEStepEndHandler__T]):
 
 class FilterType(java.lang.Enum['FilterType']):
     """
-    public enum FilterType extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.ode.events.FilterType`>
+    public enumFilterType extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.ode.events.FilterType`>
     
         Enumerate for :class:`~org.hipparchus.ode.events.EventSlopeFilter`.
     """
@@ -379,14 +376,14 @@ class FilterType(java.lang.Enum['FilterType']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -394,15 +391,7 @@ class FilterType(java.lang.Enum['FilterType']):
     @staticmethod
     def values() -> typing.MutableSequence['FilterType']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (FilterType c : FilterType.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -413,7 +402,7 @@ class FilterType(java.lang.Enum['FilterType']):
 
 class ODEEventDetector:
     """
-    public interface ODEEventDetector
+    public interfaceODEEventDetector
     
         This interface represents a detector for discrete events triggered during ODE integration.
     
@@ -439,7 +428,8 @@ class ODEEventDetector:
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.package`
+    
+              - :class:`~org.hipparchus.ode.events.package`
     """
     def g(self, oDEStateAndDerivative: org.hipparchus.ode.ODEStateAndDerivative) -> float:
         """
@@ -479,7 +469,9 @@ class ODEEventDetector:
                 value of the g switching function
         
             Also see:
-                :class:`~org.hipparchus.ode.events.package`
+        
+                  - :class:`~org.hipparchus.ode.events.package`
+        
         
         
         """
@@ -534,7 +526,7 @@ class ODEEventDetector:
 
 class ODEEventHandler:
     """
-    public interface ODEEventHandler
+    public interfaceODEEventHandler
     
         This interface represents a handler for discrete events triggered during ODE integration.
     
@@ -560,7 +552,8 @@ class ODEEventHandler:
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.package`
+    
+              - :class:`~org.hipparchus.ode.events.package`
     """
     def eventOccurred(self, oDEStateAndDerivative: org.hipparchus.ode.ODEStateAndDerivative, oDEEventDetector: ODEEventDetector, boolean: bool) -> Action:
         """
@@ -646,7 +639,7 @@ class ODEEventHandler:
 
 class ODEStepEndHandler:
     """
-    public interface ODEStepEndHandler
+    public interfaceODEStepEndHandler
     
         This interface represents a handler for discrete events triggered during ODE integration at each step end.
     
@@ -654,7 +647,8 @@ class ODEStepEndHandler:
             3.0
     
         Also see:
-            :class:`~org.hipparchus.ode.events.package`
+    
+              - :class:`~org.hipparchus.ode.events.package`
     """
     def init(self, oDEStateAndDerivative: org.hipparchus.ode.ODEStateAndDerivative, double: float) -> None:
         """
@@ -737,7 +731,8 @@ _AbstractFieldODEDetector__T = typing.TypeVar('_AbstractFieldODEDetector__T', bo
 _AbstractFieldODEDetector__E = typing.TypeVar('_AbstractFieldODEDetector__E', bound=org.hipparchus.CalculusFieldElement)  # <E>
 class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__E], typing.Generic[_AbstractFieldODEDetector__T, _AbstractFieldODEDetector__E]):
     """
-    public abstract class AbstractFieldODEDetector<T extends AbstractFieldODEDetector<T, E>, E extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<E>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.events.FieldODEEventDetector`<E>
+    public abstract classAbstractFieldODEDetector<T extends AbstractFieldODEDetector<T,E>,E extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<E>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.events.FieldODEEventDetector`<E>
     
         Base class for #@link :class:`~org.hipparchus.ode.events.FieldODEEventDetector`.
     
@@ -751,7 +746,9 @@ class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__
         Default maximum checking interval (s).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -762,7 +759,9 @@ class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__
         Default convergence threshold (s).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -773,7 +772,9 @@ class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__
         Default maximum number of iterations in the event time search.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -820,7 +821,7 @@ class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__
             Returns:
                 a new detector with updated configuration (the instance is not changed)
         
-        public :class:`~org.hipparchus.ode.events.AbstractFieldODEDetector` withMaxCheck (:class:`~org.hipparchus.ode.events.FieldAdaptableInterval`<:class:`~org.hipparchus.ode.events.AbstractFieldODEDetector`> newMaxCheck)
+        public :class:`~org.hipparchus.ode.events.AbstractFieldODEDetector` withMaxCheck(:class:`~org.hipparchus.ode.events.FieldAdaptableInterval`<:class:`~org.hipparchus.ode.events.AbstractFieldODEDetector`> newMaxCheck)
         
             Setup the maximum checking interval.
         
@@ -870,7 +871,9 @@ class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__
                 a new detector with updated configuration (the instance is not changed)
         
             Also see:
-                :meth:`~org.hipparchus.ode.events.AbstractFieldODEDetector.withSolver`
+        
+                  - :meth:`~org.hipparchus.ode.events.AbstractFieldODEDetector.withSolver`
+        
         
         
         """
@@ -879,7 +882,8 @@ class AbstractFieldODEDetector(FieldODEEventDetector[_AbstractFieldODEDetector__
 _AbstractODEDetector__T = typing.TypeVar('_AbstractODEDetector__T', bound='AbstractODEDetector')  # <T>
 class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector__T]):
     """
-    public abstract class AbstractODEDetector<T extends AbstractODEDetector<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.events.ODEEventDetector`
+    public abstract classAbstractODEDetector<T extends AbstractODEDetector<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.events.ODEEventDetector`
     
         Base class for #@link :class:`~org.hipparchus.ode.events.ODEEventDetector`.
     
@@ -893,7 +897,9 @@ class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector_
         Default maximum checking interval (s).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -904,7 +910,9 @@ class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector_
         Default convergence threshold (s).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -915,7 +923,9 @@ class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector_
         Default maximum number of iterations in the event time search.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -960,7 +970,9 @@ class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector_
                 value of the g switching function
         
             Also see:
-                :class:`~org.hipparchus.ode.events.package`
+        
+                  - :class:`~org.hipparchus.ode.events.package`
+        
         
         
         """
@@ -1117,7 +1129,9 @@ class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector_
                 a new detector with updated configuration (the instance is not changed)
         
             Also see:
-                :meth:`~org.hipparchus.ode.events.AbstractODEDetector.withSolver`
+        
+                  - :meth:`~org.hipparchus.ode.events.AbstractODEDetector.withSolver`
+        
         
         
         """
@@ -1125,7 +1139,8 @@ class AbstractODEDetector(ODEEventDetector, typing.Generic[_AbstractODEDetector_
 
 class DetectorBasedEventState(EventState):
     """
-    public class DetectorBasedEventState extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.events.EventState`
+    public classDetectorBasedEventState extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.events.EventState`
     
         This class handles the state for one :class:`~org.hipparchus.ode.events.ODEEventHandler` during integration steps.
     
@@ -1223,7 +1238,8 @@ class DetectorBasedEventState(EventState):
 _FieldDetectorBasedEventState__T = typing.TypeVar('_FieldDetectorBasedEventState__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldDetectorBasedEventState(FieldEventState[_FieldDetectorBasedEventState__T], typing.Generic[_FieldDetectorBasedEventState__T]):
     """
-    public class FieldDetectorBasedEventState<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.events.FieldEventState`<T>
+    public classFieldDetectorBasedEventState<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.events.FieldEventState`<T>
     
         This class handles the state for one :class:`~org.hipparchus.ode.events.FieldODEEventHandler` during integration steps.
     
@@ -1256,7 +1272,8 @@ class FieldDetectorBasedEventState(FieldEventState[_FieldDetectorBasedEventState
 _FieldStepEndEventState__T = typing.TypeVar('_FieldStepEndEventState__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldStepEndEventState(FieldEventState[_FieldStepEndEventState__T], typing.Generic[_FieldStepEndEventState__T]):
     """
-    public class FieldStepEndEventState<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.events.FieldEventState`<T>
+    public classFieldStepEndEventState<T extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.events.FieldEventState`<T>
     
         This class handles the state for one :class:`~org.hipparchus.ode.events.ODEEventHandler` that triggers at step end.
     
@@ -1295,7 +1312,8 @@ class FieldStepEndEventState(FieldEventState[_FieldStepEndEventState__T], typing
 
 class StepEndEventState(EventState):
     """
-    public class StepEndEventState extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.events.EventState`
+    public classStepEndEventState extends :class:`~org.hipparchus.ode.events.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.events.EventState`
     
         This class handles the state for one :class:`~org.hipparchus.ode.events.ODEEventHandler` that triggers at step end.
     
@@ -1394,7 +1412,7 @@ class StepEndEventState(EventState):
 _EventSlopeFilter__T = typing.TypeVar('_EventSlopeFilter__T', bound=ODEEventDetector)  # <T>
 class EventSlopeFilter(AbstractODEDetector['EventSlopeFilter'[_EventSlopeFilter__T]], typing.Generic[_EventSlopeFilter__T]):
     """
-    public class EventSlopeFilter<T extends :class:`~org.hipparchus.ode.events.ODEEventDetector`> extends :class:`~org.hipparchus.ode.events.AbstractODEDetector`<:class:`~org.hipparchus.ode.events.EventSlopeFilter`<T>>
+    public classEventSlopeFilter<T extends :class:`~org.hipparchus.ode.events.ODEEventDetector`> extends :class:`~org.hipparchus.ode.events.AbstractODEDetector`<:class:`~org.hipparchus.ode.events.EventSlopeFilter`<T>>
     
         Wrapper used to detect only increasing or decreasing events.
     
@@ -1465,7 +1483,9 @@ class EventSlopeFilter(AbstractODEDetector['EventSlopeFilter'[_EventSlopeFilter_
                 value of the g switching function
         
             Also see:
-                :class:`~org.hipparchus.ode.events.package`
+        
+                  - :class:`~org.hipparchus.ode.events.package`
+        
         
         
         """
@@ -1512,7 +1532,7 @@ _FieldEventSlopeFilter__T = typing.TypeVar('_FieldEventSlopeFilter__T', bound=Fi
 _FieldEventSlopeFilter__E = typing.TypeVar('_FieldEventSlopeFilter__E', bound=org.hipparchus.CalculusFieldElement)  # <E>
 class FieldEventSlopeFilter(AbstractFieldODEDetector['FieldEventSlopeFilter'[_FieldEventSlopeFilter__T, _FieldEventSlopeFilter__E], _FieldEventSlopeFilter__E], typing.Generic[_FieldEventSlopeFilter__T, _FieldEventSlopeFilter__E]):
     """
-    public class FieldEventSlopeFilter<T extends :class:`~org.hipparchus.ode.events.FieldODEEventDetector`<E>, E extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<E>> extends :class:`~org.hipparchus.ode.events.AbstractFieldODEDetector`<:class:`~org.hipparchus.ode.events.FieldEventSlopeFilter`<T, E>, E>
+    public classFieldEventSlopeFilter<T extends :class:`~org.hipparchus.ode.events.FieldODEEventDetector`<E>,E extends :class:`~org.hipparchus.ode.events.https:.www.hipparchus.org.hipparchus`<E>> extends :class:`~org.hipparchus.ode.events.AbstractFieldODEDetector`<:class:`~org.hipparchus.ode.events.FieldEventSlopeFilter`<T,E>,E>
     
         Wrapper used to detect only increasing or decreasing events.
     
diff --git a/org-stubs/hipparchus/ode/nonstiff/__init__.pyi b/org-stubs/hipparchus/ode/nonstiff/__init__.pyi
index fa024116285af369375320d20b69228336b21ede..e75f32d9eb2dad86b69b6aa7f3ac644bdf3d2d42 100644
--- a/org-stubs/hipparchus/ode/nonstiff/__init__.pyi
+++ b/org-stubs/hipparchus/ode/nonstiff/__init__.pyi
@@ -16,7 +16,7 @@ import typing
 _AdamsFieldIntegrator__T = typing.TypeVar('_AdamsFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AdamsFieldIntegrator(org.hipparchus.ode.MultistepFieldIntegrator[_AdamsFieldIntegrator__T], typing.Generic[_AdamsFieldIntegrator__T]):
     """
-    public abstract class AdamsFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.MultistepFieldIntegrator`<T>
+    public abstract classAdamsFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.MultistepFieldIntegrator`<T>
     
         Base class for :class:`~org.hipparchus.ode.nonstiff.AdamsBashforthFieldIntegrator` and
         :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonFieldIntegrator` integrators.
@@ -31,7 +31,7 @@ class AdamsFieldIntegrator(org.hipparchus.ode.MultistepFieldIntegrator[_AdamsFie
 
 class AdamsIntegrator(org.hipparchus.ode.MultistepIntegrator):
     """
-    public abstract class AdamsIntegrator extends :class:`~org.hipparchus.ode.MultistepIntegrator`
+    public abstract classAdamsIntegrator extends :class:`~org.hipparchus.ode.MultistepIntegrator`
     
         Base class for :class:`~org.hipparchus.ode.nonstiff.AdamsBashforthIntegrator` and
         :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonIntegrator` integrators.
@@ -58,7 +58,9 @@ class AdamsIntegrator(org.hipparchus.ode.MultistepIntegrator):
                 updated high order derivatives
         
             Also see:
-                :meth:`~org.hipparchus.ode.nonstiff.AdamsIntegrator.updateHighOrderDerivativesPhase2`
+        
+                  - :meth:`~org.hipparchus.ode.nonstiff.AdamsIntegrator.updateHighOrderDerivativesPhase2`
+        
         
         
         """
@@ -78,7 +80,9 @@ class AdamsIntegrator(org.hipparchus.ode.MultistepIntegrator):
                 highOrder (:class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`): high order scaled derivatives, will be modified (h :sup:`2` /2 y'', ... h :sup:`k` /k! y(k))
         
             Also see:
-                :meth:`~org.hipparchus.ode.nonstiff.AdamsIntegrator.updateHighOrderDerivativesPhase1`
+        
+                  - :meth:`~org.hipparchus.ode.nonstiff.AdamsIntegrator.updateHighOrderDerivativesPhase1`
+        
         
         
         """
@@ -87,7 +91,7 @@ class AdamsIntegrator(org.hipparchus.ode.MultistepIntegrator):
 _AdamsNordsieckFieldTransformer__T = typing.TypeVar('_AdamsNordsieckFieldTransformer__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AdamsNordsieckFieldTransformer(typing.Generic[_AdamsNordsieckFieldTransformer__T]):
     """
-    public class AdamsNordsieckFieldTransformer<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classAdamsNordsieckFieldTransformer<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Transformer to Nordsieck vectors for Adams integrators.
     
@@ -132,14 +136,13 @@ class AdamsNordsieckFieldTransformer(typing.Generic[_AdamsNordsieckFieldTransfor
     
         .. code-block: java
         
-        
-                [ 0 0   ...  0 0 | 0 ]
-                [ ---------------+---]
-                [ 1 0   ...  0 0 | 0 ]
-            A = [ 0 1   ...  0 0 | 0 ]
-                [       ...      | 0 ]
-                [ 0 0   ...  1 0 | 0 ]
-                [ 0 0   ...  0 1 | 0 ]
+                [ 0 0   ...  0 0 | 0 ]
+                [ ---------------+---]
+                [ 1 0   ...  0 0 | 0 ]
+            A = [ 0 1   ...  0 0 | 0 ]
+                [       ...      | 0 ]
+                [ 0 0   ...  1 0 | 0 ]
+                [ 0 0   ...  0 1 | 0 ]
          
     
         For :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonIntegrator` method, the predicted Nordsieck vector at step n+1 is
@@ -184,7 +187,7 @@ class AdamsNordsieckFieldTransformer(typing.Generic[_AdamsNordsieckFieldTransfor
 
 class AdamsNordsieckTransformer:
     """
-    public class AdamsNordsieckTransformer extends :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classAdamsNordsieckTransformer extends :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Transformer to Nordsieck vectors for Adams integrators.
     
@@ -229,14 +232,13 @@ class AdamsNordsieckTransformer:
     
         .. code-block: java
         
-        
-                [ 0 0   ...  0 0 | 0 ]
-                [ ---------------+---]
-                [ 1 0   ...  0 0 | 0 ]
-            A = [ 0 1   ...  0 0 | 0 ]
-                [       ...      | 0 ]
-                [ 0 0   ...  1 0 | 0 ]
-                [ 0 0   ...  0 1 | 0 ]
+                [ 0 0   ...  0 0 | 0 ]
+                [ ---------------+---]
+                [ 1 0   ...  0 0 | 0 ]
+            A = [ 0 1   ...  0 0 | 0 ]
+                [       ...      | 0 ]
+                [ 0 0   ...  1 0 | 0 ]
+                [ 0 0   ...  0 1 | 0 ]
          
     
         For :class:`~org.hipparchus.ode.nonstiff.AdamsMoultonIntegrator` method, the predicted Nordsieck vector at step n+1 is
@@ -304,7 +306,9 @@ class AdamsNordsieckTransformer:
                 updated high order derivatives
         
             Also see:
-                :meth:`~org.hipparchus.ode.nonstiff.AdamsNordsieckTransformer.updateHighOrderDerivativesPhase2`
+        
+                  - :meth:`~org.hipparchus.ode.nonstiff.AdamsNordsieckTransformer.updateHighOrderDerivativesPhase2`
+        
         
         
         """
@@ -324,7 +328,9 @@ class AdamsNordsieckTransformer:
                 highOrder (:class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`): high order scaled derivatives, will be modified (h :sup:`2` /2 y'', ... h :sup:`k` /k! y(k))
         
             Also see:
-                :meth:`~org.hipparchus.ode.nonstiff.AdamsNordsieckTransformer.updateHighOrderDerivativesPhase1`
+        
+                  - :meth:`~org.hipparchus.ode.nonstiff.AdamsNordsieckTransformer.updateHighOrderDerivativesPhase1`
+        
         
         
         """
@@ -333,7 +339,7 @@ class AdamsNordsieckTransformer:
 _AdaptiveStepsizeFieldIntegrator__T = typing.TypeVar('_AdaptiveStepsizeFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AdaptiveStepsizeFieldIntegrator(org.hipparchus.ode.AbstractFieldIntegrator[_AdaptiveStepsizeFieldIntegrator__T], typing.Generic[_AdaptiveStepsizeFieldIntegrator__T]):
     """
-    public abstract class AdaptiveStepsizeFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.AbstractFieldIntegrator`<T>
+    public abstract classAdaptiveStepsizeFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.AbstractFieldIntegrator`<T>
     
         This abstract class holds the common part of all adaptive stepsize integrators for Ordinary Differential Equations.
     
@@ -342,8 +348,7 @@ class AdaptiveStepsizeFieldIntegrator(org.hipparchus.ode.AbstractFieldIntegrator
     
         .. code-block: java
         
-        
-         threshold_i = absTol_i + relTol_i * max (abs (ym), abs (ym+1))
+         threshold_i = absTol_i + relTol_i * max (abs (ym), abs (ym+1))
          
     
         where absTol_i is the absolute tolerance for component i of the state vector and relTol_i is the relative tolerance for
@@ -358,8 +363,7 @@ class AdaptiveStepsizeFieldIntegrator(org.hipparchus.ode.AbstractFieldIntegrator
     
         .. code-block: java
         
-        
-         sqrt((sum (errEst_i / threshold_i)^2 ) / n) < 1
+         sqrt((sum (errEst_i / threshold_i)^2 ) / n) < 1
          
     
         (where n is the main set dimension) then the step is accepted, otherwise the step is rejected and a new attempt is made
@@ -438,7 +442,7 @@ class AdaptiveStepsizeFieldIntegrator(org.hipparchus.ode.AbstractFieldIntegrator
 
 class AdaptiveStepsizeIntegrator(org.hipparchus.ode.AbstractIntegrator):
     """
-    public abstract class AdaptiveStepsizeIntegrator extends :class:`~org.hipparchus.ode.AbstractIntegrator`
+    public abstract classAdaptiveStepsizeIntegrator extends :class:`~org.hipparchus.ode.AbstractIntegrator`
     
         This abstract class holds the common part of all adaptive stepsize integrators for Ordinary Differential Equations.
     
@@ -447,8 +451,7 @@ class AdaptiveStepsizeIntegrator(org.hipparchus.ode.AbstractIntegrator):
     
         .. code-block: java
         
-        
-         threshold_i = absTol_i + relTol_i * max (abs (ym), abs (ym+1))
+         threshold_i = absTol_i + relTol_i * max (abs (ym), abs (ym+1))
          
     
         where absTol_i is the absolute tolerance for component i of the state vector and relTol_i is the relative tolerance for
@@ -464,8 +467,7 @@ class AdaptiveStepsizeIntegrator(org.hipparchus.ode.AbstractIntegrator):
     
         .. code-block: java
         
-        
-         sqrt((sum (errEst_i / threshold_i)^2 ) / n) < 1
+         sqrt((sum (errEst_i / threshold_i)^2 ) / n) < 1
          
     
         (where n is the main set dimension) then the step is accepted, otherwise the step is rejected and a new attempt is made
@@ -544,13 +546,14 @@ class AdaptiveStepsizeIntegrator(org.hipparchus.ode.AbstractIntegrator):
 
 class ButcherArrayProvider:
     """
-    public interface ButcherArrayProvider
+    public interfaceButcherArrayProvider
     
         This interface represents an integrator based on Butcher arrays.
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
     """
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
         """
@@ -586,13 +589,14 @@ class ButcherArrayProvider:
 _FieldButcherArrayProvider__T = typing.TypeVar('_FieldButcherArrayProvider__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldButcherArrayProvider(typing.Generic[_FieldButcherArrayProvider__T]):
     """
-    public interface FieldButcherArrayProvider<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldButcherArrayProvider<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents an integrator based on Butcher arrays.
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`
     """
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_FieldButcherArrayProvider__T]]:
         """
@@ -627,7 +631,7 @@ class FieldButcherArrayProvider(typing.Generic[_FieldButcherArrayProvider__T]):
 
 class StepsizeHelper:
     """
-    public class StepsizeHelper extends :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classStepsizeHelper extends :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Helper for adaptive stepsize control.
     
@@ -756,7 +760,7 @@ class StepsizeHelper:
 _AdamsBashforthFieldIntegrator__T = typing.TypeVar('_AdamsBashforthFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AdamsBashforthFieldIntegrator(AdamsFieldIntegrator[_AdamsBashforthFieldIntegrator__T], typing.Generic[_AdamsBashforthFieldIntegrator__T]):
     """
-    public class AdamsBashforthFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdamsFieldIntegrator`<T>
+    public classAdamsBashforthFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdamsFieldIntegrator`<T>
     
         This class implements explicit Adams-Bashforth integrators for Ordinary Differential Equations.
     
@@ -826,18 +830,30 @@ class AdamsBashforthFieldIntegrator(AdamsFieldIntegrator[_AdamsBashforthFieldInt
     
         .. code-block: java
         
-        
-                [ 0 0   ...  0 0 | 0 ]
-                [ ---------------+---]
-                [ 1 0   ...  0 0 | 0 ]
-            A = [ 0 1   ...  0 0 | 0 ]
-                [       ...      | 0 ]
-                [ 0 0   ...  1 0 | 0 ]
-                [ 0 0   ...  0 1 | 0 ]
+                [ 0 0   ...  0 0 | 0 ]
+                [ ---------------+---]
+                [ 1 0   ...  0 0 | 0 ]
+            A = [ 0 1   ...  0 0 | 0 ]
+                [       ...      | 0 ]
+                [ 0 0   ...  1 0 | 0 ]
+                [ 0 0   ...  0 1 | 0 ]
          
     
         The P :sup:`-1` u vector and the P :sup:`-1` A P matrix do not depend on the state, they only depend on k and therefore
         are precomputed once for all.
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_AdamsBashforthFieldIntegrator__T], int: int, double: float, double2: float, double3: float, double4: float): ...
@@ -846,7 +862,7 @@ class AdamsBashforthFieldIntegrator(AdamsFieldIntegrator[_AdamsBashforthFieldInt
 
 class AdamsBashforthIntegrator(AdamsIntegrator):
     """
-    public class AdamsBashforthIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdamsIntegrator`
+    public classAdamsBashforthIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdamsIntegrator`
     
         This class implements explicit Adams-Bashforth integrators for Ordinary Differential Equations.
     
@@ -916,18 +932,30 @@ class AdamsBashforthIntegrator(AdamsIntegrator):
     
         .. code-block: java
         
-        
-                [ 0 0   ...  0 0 | 0 ]
-                [ ---------------+---]
-                [ 1 0   ...  0 0 | 0 ]
-            A = [ 0 1   ...  0 0 | 0 ]
-                [       ...      | 0 ]
-                [ 0 0   ...  1 0 | 0 ]
-                [ 0 0   ...  0 1 | 0 ]
+                [ 0 0   ...  0 0 | 0 ]
+                [ ---------------+---]
+                [ 1 0   ...  0 0 | 0 ]
+            A = [ 0 1   ...  0 0 | 0 ]
+                [       ...      | 0 ]
+                [ 0 0   ...  1 0 | 0 ]
+                [ 0 0   ...  0 1 | 0 ]
          
     
         The P :sup:`-1` u vector and the P :sup:`-1` A P matrix do not depend on the state, they only depend on k and therefore
         are precomputed once for all.
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, int: int, double: float, double2: float, double3: float, double4: float): ...
@@ -937,7 +965,7 @@ class AdamsBashforthIntegrator(AdamsIntegrator):
 _AdamsMoultonFieldIntegrator__T = typing.TypeVar('_AdamsMoultonFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AdamsMoultonFieldIntegrator(AdamsFieldIntegrator[_AdamsMoultonFieldIntegrator__T], typing.Generic[_AdamsMoultonFieldIntegrator__T]):
     """
-    public class AdamsMoultonFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdamsFieldIntegrator`<T>
+    public classAdamsMoultonFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdamsFieldIntegrator`<T>
     
         This class implements implicit Adams-Moulton integrators for Ordinary Differential Equations.
     
@@ -1012,14 +1040,13 @@ class AdamsMoultonFieldIntegrator(AdamsFieldIntegrator[_AdamsMoultonFieldIntegra
     
         .. code-block: java
         
-        
-                [ 0 0   ...  0 0 | 0 ]
-                [ ---------------+---]
-                [ 1 0   ...  0 0 | 0 ]
-            A = [ 0 1   ...  0 0 | 0 ]
-                [       ...      | 0 ]
-                [ 0 0   ...  1 0 | 0 ]
-                [ 0 0   ...  0 1 | 0 ]
+                [ 0 0   ...  0 0 | 0 ]
+                [ ---------------+---]
+                [ 1 0   ...  0 0 | 0 ]
+            A = [ 0 1   ...  0 0 | 0 ]
+                [       ...      | 0 ]
+                [ 0 0   ...  1 0 | 0 ]
+                [ 0 0   ...  0 1 | 0 ]
          
         From this predicted vector, the corrected vector is computed as follows:
     
@@ -1033,6 +1060,19 @@ class AdamsMoultonFieldIntegrator(AdamsFieldIntegrator[_AdamsMoultonFieldIntegra
     
         The P :sup:`-1` u vector and the P :sup:`-1` A P matrix do not depend on the state, they only depend on k and therefore
         are precomputed once for all.
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_AdamsMoultonFieldIntegrator__T], int: int, double: float, double2: float, double3: float, double4: float): ...
@@ -1041,7 +1081,7 @@ class AdamsMoultonFieldIntegrator(AdamsFieldIntegrator[_AdamsMoultonFieldIntegra
 
 class AdamsMoultonIntegrator(AdamsIntegrator):
     """
-    public class AdamsMoultonIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdamsIntegrator`
+    public classAdamsMoultonIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdamsIntegrator`
     
         This class implements implicit Adams-Moulton integrators for Ordinary Differential Equations.
     
@@ -1116,14 +1156,13 @@ class AdamsMoultonIntegrator(AdamsIntegrator):
     
         .. code-block: java
         
-        
-                [ 0 0   ...  0 0 | 0 ]
-                [ ---------------+---]
-                [ 1 0   ...  0 0 | 0 ]
-            A = [ 0 1   ...  0 0 | 0 ]
-                [       ...      | 0 ]
-                [ 0 0   ...  1 0 | 0 ]
-                [ 0 0   ...  0 1 | 0 ]
+                [ 0 0   ...  0 0 | 0 ]
+                [ ---------------+---]
+                [ 1 0   ...  0 0 | 0 ]
+            A = [ 0 1   ...  0 0 | 0 ]
+                [       ...      | 0 ]
+                [ 0 0   ...  1 0 | 0 ]
+                [ 0 0   ...  0 1 | 0 ]
          
         From this predicted vector, the corrected vector is computed as follows:
     
@@ -1137,225 +1176,312 @@ class AdamsMoultonIntegrator(AdamsIntegrator):
     
         The P :sup:`-1` u vector and the P :sup:`-1` A P matrix do not depend on the state, they only depend on k and therefore
         are precomputed once for all.
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, int: int, double: float, double2: float, double3: float, double4: float): ...
     @typing.overload
     def __init__(self, int: int, double: float, double2: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
 
-_EmbeddedRungeKuttaFieldIntegrator__T = typing.TypeVar('_EmbeddedRungeKuttaFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class EmbeddedRungeKuttaFieldIntegrator(AdaptiveStepsizeFieldIntegrator[_EmbeddedRungeKuttaFieldIntegrator__T], FieldButcherArrayProvider[_EmbeddedRungeKuttaFieldIntegrator__T], typing.Generic[_EmbeddedRungeKuttaFieldIntegrator__T]):
+class ExplicitRungeKuttaIntegrator(ButcherArrayProvider, org.hipparchus.ode.ODEIntegrator):
     """
-    public abstract class EmbeddedRungeKuttaFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator`<T> implements :class:`~org.hipparchus.ode.nonstiff.FieldButcherArrayProvider`<T>
+    public interfaceExplicitRungeKuttaIntegratorextends :class:`~org.hipparchus.ode.nonstiff.ButcherArrayProvider`, :class:`~org.hipparchus.ode.ODEIntegrator`
     
-        This class implements the common part of all embedded Runge-Kutta integrators for Ordinary Differential Equations.
+        This interface implements the part of Runge-Kutta integrators for Ordinary Differential Equations common to fixed- and
+        adaptive steps.
     
-        These methods are embedded explicit Runge-Kutta methods with two sets of coefficients allowing to estimate the error,
-        their Butcher arrays are as follows :
+        These methods are explicit Runge-Kutta methods, their Butcher arrays are as follows :
     
         .. code-block: java
         
-        
-            0  |
-           c2  | a21
-           c3  | a31  a32
-           ... |        ...
-           cs  | as1  as2  ...  ass-1
-               |--------------------------
-               |  b1   b2  ...   bs-1  bs
-               |  b'1  b'2 ...   b's-1 b's
+            0  |
+           c2  | a21
+           c3  | a31  a32
+           ... |        ...
+           cs  | as1  as2  ...  ass-1
+               |--------------------------
+               |  b1   b2  ...   bs-1  bs
          
     
-        In fact, we rather use the array defined by ej = bj - b'j to compute directly the error rather than computing two
-        estimates and then comparing them.
+        Since:
+            3.1
     
-        Some methods are qualified as *fsal* (first same as last) methods. This means the last evaluation of the derivatives in
-        one step is the same as the first in the next step. Then, this evaluation can be reused from one step to the next one
-        and the cost of such a method is really s-1 evaluations despite the method still has s stages. This behaviour is true
-        only for successful steps, if the step is rejected after the error estimation phase, no evaluation is saved. For an
-        *fsal* method, we have cs = 1 and asi = bi for all i.
+        Also see:
+    
+              - :class:`~org.hipparchus.ode.nonstiff.ButcherArrayProvider`
+              - :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
     """
-    def getMaxGrowth(self) -> _EmbeddedRungeKuttaFieldIntegrator__T:
+    @staticmethod
+    def applyExternalButcherWeights(doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], double3: float, doubleArray3: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
         """
-            Get the maximal growth factor for stepsize control.
+            Apply external weights of Butcher array, assuming internal ones have been applied.
         
-            Returns:
-                maximal growth factor
-        
-        
-        """
-        ...
-    def getMinReduction(self) -> _EmbeddedRungeKuttaFieldIntegrator__T:
-        """
-            Get the minimal reduction factor for stepsize control.
+            Parameters:
+                yDotK (double[]): output of stages
+                y0 (double[][]): initial value of the state vector at t0
+                h (double): step size
+                b (double[]): external weights of Butcher array
         
             Returns:
-                minimal reduction factor
+                state vector
         
         
         """
         ...
-    def getOrder(self) -> int:
+    @staticmethod
+    def applyInternalButcherWeights(expandableODE: org.hipparchus.ode.ExpandableODE, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], double3: float, doubleArray2: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray3: typing.Union[typing.List[float], jpype.JArray], doubleArray4: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]) -> None:
         """
-            Get the order of the method.
+            Apply internal weights of Butcher array, with corresponding times.
         
-            Returns:
-                order of the method
+            Parameters:
+                equations (:class:`~org.hipparchus.ode.ExpandableODE`): differential equations to integrate
+                t0 (double): initial time
+                y0 (double[]): initial value of the state vector at t0
+                h (double): step size
+                a (double[][]): internal weights of Butcher array
+                c (double[]): times of Butcher array
+                yDotK (double[][]): array where to store result
         
         
         """
         ...
-    def getSafety(self) -> _EmbeddedRungeKuttaFieldIntegrator__T:
+    def getNumberOfStages(self) -> int:
         """
-            Get the safety factor for stepsize control.
+            Getter for the number of stages corresponding to the Butcher array.
         
             Returns:
-                safety factor
+                number of stages
         
         
         """
         ...
-    def integrate(self, fieldExpandableODE: org.hipparchus.ode.FieldExpandableODE[_EmbeddedRungeKuttaFieldIntegrator__T], fieldODEState: org.hipparchus.ode.FieldODEState[_EmbeddedRungeKuttaFieldIntegrator__T], t: _EmbeddedRungeKuttaFieldIntegrator__T) -> org.hipparchus.ode.FieldODEStateAndDerivative[_EmbeddedRungeKuttaFieldIntegrator__T]: ...
-    def setMaxGrowth(self, t: _EmbeddedRungeKuttaFieldIntegrator__T) -> None:
+    def singleStep(self, ordinaryDifferentialEquation: org.hipparchus.ode.OrdinaryDifferentialEquation, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], double3: float) -> typing.MutableSequence[float]:
         """
-            Set the maximal growth factor for stepsize control.
+            Fast computation of a single step of ODE integration.
         
-            Parameters:
-                maxGrowth (:class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`): maximal growth factor
+            This method is intended for the limited use case of very fast computation of only one step without using any of the rich
+            features of general integrators that may take some time to set up (i.e. no step handlers, no events handlers, no
+            additional states, no interpolators, no error control, no evaluations count, no sanity checks ...). It handles the
+            strict minimum of computation, so it can be embedded in outer loops.
         
+            This method is *not* used at all by the :meth:`~org.hipparchus.ode.ODEIntegrator.integrate` method. It also completely
+            ignores the step set at construction time, and uses only a single step to go from :code:`t0` to :code:`t`.
         
-        """
-        ...
-    def setMinReduction(self, t: _EmbeddedRungeKuttaFieldIntegrator__T) -> None:
-        """
-            Set the minimal reduction factor for stepsize control.
+            As this method does not use any of the state-dependent features of the integrator, it should be reasonably thread-safe
+            *if and only if* the provided differential equations are themselves thread-safe.
         
             Parameters:
-                minReduction (:class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`): minimal reduction factor
-        
-        
-        """
-        ...
-    def setSafety(self, t: _EmbeddedRungeKuttaFieldIntegrator__T) -> None:
-        """
-            Set the safety factor for stepsize control.
+                equations (:class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`): differential equations to integrate
+                t0 (double): initial time
+                y0 (double[]): initial value of the state vector at t0
+                t (double): target time for the integration (can be set to a value smaller than :code:`t0` for backward integration)
         
-            Parameters:
-                safety (:class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`): safety factor
+            Returns:
+                state vector at :code:`t`
         
         
         """
         ...
 
-class EmbeddedRungeKuttaIntegrator(AdaptiveStepsizeIntegrator, ButcherArrayProvider):
+_FieldExplicitRungeKuttaIntegrator__T = typing.TypeVar('_FieldExplicitRungeKuttaIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldExplicitRungeKuttaIntegrator(FieldButcherArrayProvider[_FieldExplicitRungeKuttaIntegrator__T], org.hipparchus.ode.FieldODEIntegrator[_FieldExplicitRungeKuttaIntegrator__T], typing.Generic[_FieldExplicitRungeKuttaIntegrator__T]):
     """
-    public abstract class EmbeddedRungeKuttaIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator` implements :class:`~org.hipparchus.ode.nonstiff.ButcherArrayProvider`
+    public interfaceFieldExplicitRungeKuttaIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>>extends :class:`~org.hipparchus.ode.nonstiff.FieldButcherArrayProvider`<T>, :class:`~org.hipparchus.ode.FieldODEIntegrator`<T>
     
-        This class implements the common part of all embedded Runge-Kutta integrators for Ordinary Differential Equations.
+        This interface implements the part of Runge-Kutta Field integrators for Ordinary Differential Equations common to fixed-
+        and adaptive steps.
     
-        These methods are embedded explicit Runge-Kutta methods with two sets of coefficients allowing to estimate the error,
-        their Butcher arrays are as follows :
+        These methods are explicit Runge-Kutta methods, their Butcher arrays are as follows :
     
         .. code-block: java
         
-        
-            0  |
-           c2  | a21
-           c3  | a31  a32
-           ... |        ...
-           cs  | as1  as2  ...  ass-1
-               |--------------------------
-               |  b1   b2  ...   bs-1  bs
-               |  b'1  b'2 ...   b's-1 b's
+            0  |
+           c2  | a21
+           c3  | a31  a32
+           ... |        ...
+           cs  | as1  as2  ...  ass-1
+               |--------------------------
+               |  b1   b2  ...   bs-1  bs
          
     
-        In fact, we rather use the array defined by ej = bj - b'j to compute directly the error rather than computing two
-        estimates and then comparing them.
+        Since:
+            3.1
     
-        Some methods are qualified as *fsal* (first same as last) methods. This means the last evaluation of the derivatives in
-        one step is the same as the first in the next step. Then, this evaluation can be reused from one step to the next one
-        and the cost of such a method is really s-1 evaluations despite the method still has s stages. This behaviour is true
-        only for successful steps, if the step is rejected after the error estimation phase, no evaluation is saved. For an
-        *fsal* method, we have cs = 1 and asi = bi for all i.
+        Also see:
+    
+              - :class:`~org.hipparchus.ode.nonstiff.FieldButcherArrayProvider`
+              - :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`
     """
-    def getMaxGrowth(self) -> float:
+    _applyExternalButcherWeights_0__T = typing.TypeVar('_applyExternalButcherWeights_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _applyExternalButcherWeights_1__T = typing.TypeVar('_applyExternalButcherWeights_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def applyExternalButcherWeights(tArray: typing.Union[typing.List[_applyExternalButcherWeights_0__T], jpype.JArray], tArray2: typing.Union[typing.List[typing.MutableSequence[_applyExternalButcherWeights_0__T]], jpype.JArray], t3: _applyExternalButcherWeights_0__T, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[_applyExternalButcherWeights_0__T]:
         """
-            Get the maximal growth factor for stepsize control.
+            Apply external weights of Butcher array, assuming internal ones have been applied.
+        
+            Parameters:
+                yDotK (T[]): output of stages
+                y0 (T[][]): initial value of the state vector at t0
+                h (T): step size
+                b (T[]): external weights of Butcher array
         
             Returns:
-                maximal growth factor
+                state vector
+        
+            Apply external weights of Butcher array, assuming internal ones have been applied. Version with real Butcher array
+            (non-Field version).
+        
+            Parameters:
+                yDotK (T[]): output of stages
+                y0 (T[][]): initial value of the state vector at t0
+                h (T): step size
+                b (double[]): external weights of Butcher array
+        
+            Returns:
+                state vector
         
         
         """
         ...
-    def getMinReduction(self) -> float:
+    @typing.overload
+    @staticmethod
+    def applyExternalButcherWeights(tArray: typing.Union[typing.List[_applyExternalButcherWeights_1__T], jpype.JArray], tArray2: typing.Union[typing.List[typing.MutableSequence[_applyExternalButcherWeights_1__T]], jpype.JArray], t3: _applyExternalButcherWeights_1__T, tArray3: typing.Union[typing.List[_applyExternalButcherWeights_1__T], jpype.JArray]) -> typing.MutableSequence[_applyExternalButcherWeights_1__T]: ...
+    _applyInternalButcherWeights_0__T = typing.TypeVar('_applyInternalButcherWeights_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _applyInternalButcherWeights_1__T = typing.TypeVar('_applyInternalButcherWeights_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def applyInternalButcherWeights(fieldExpandableODE: org.hipparchus.ode.FieldExpandableODE[_applyInternalButcherWeights_0__T], t: _applyInternalButcherWeights_0__T, tArray: typing.Union[typing.List[_applyInternalButcherWeights_0__T], jpype.JArray], t3: _applyInternalButcherWeights_0__T, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], tArray2: typing.Union[typing.List[typing.MutableSequence[_applyInternalButcherWeights_0__T]], jpype.JArray]) -> None:
         """
-            Get the minimal reduction factor for stepsize control.
+            Apply internal weights of Butcher array, with corresponding times.
+        
+            Parameters:
+                equations (:class:`~org.hipparchus.ode.FieldExpandableODE`<T> equations): differential equations to integrate
+                t0 (T): initial time
+                y0 (T[]): initial value of the state vector at t0
+                h (T): step size
+                a (T[][]): internal weights of Butcher array
+                c (T[]): times of Butcher array
+                yDotK (T[][]): array where to store result
+        
+            Apply internal weights of Butcher array, with corresponding times. Version with real Butcher array (non-Field).
+        
+            Parameters:
+                equations (:class:`~org.hipparchus.ode.FieldExpandableODE`<T> equations): differential equations to integrate
+                t0 (T): initial time
+                y0 (T[]): initial value of the state vector at t0
+                h (T): step size
+                a (double[][]): internal weights of Butcher array
+                c (double[]): times of Butcher array
+                yDotK (T[][]): array where to store result
+        
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def applyInternalButcherWeights(fieldExpandableODE: org.hipparchus.ode.FieldExpandableODE[_applyInternalButcherWeights_1__T], t: _applyInternalButcherWeights_1__T, tArray: typing.Union[typing.List[_applyInternalButcherWeights_1__T], jpype.JArray], t3: _applyInternalButcherWeights_1__T, tArray2: typing.Union[typing.List[typing.MutableSequence[_applyInternalButcherWeights_1__T]], jpype.JArray], tArray3: typing.Union[typing.List[_applyInternalButcherWeights_1__T], jpype.JArray], tArray4: typing.Union[typing.List[typing.MutableSequence[_applyInternalButcherWeights_1__T]], jpype.JArray]) -> None: ...
+    _fraction_0__T = typing.TypeVar('_fraction_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _fraction_1__T = typing.TypeVar('_fraction_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def fraction(field: org.hipparchus.Field[_fraction_0__T], double: float, double2: float) -> _fraction_0__T:
+        """
+            Create a fraction from integers.
+        
+            Parameters:
+                field (:class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T> field): field to which elements belong
+                p (int): numerator
+                q (int): denominator
         
             Returns:
-                minimal reduction factor
+                p/q computed in the instance field
+        
+            Create a fraction from doubles.
+        
+            Parameters:
+                field (:class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T> field): field to which elements belong
+                p (double): numerator
+                q (double): denominator
+        
+            Returns:
+                p/q computed in the instance field
         
         
         """
         ...
-    def getOrder(self) -> int:
+    @typing.overload
+    @staticmethod
+    def fraction(field: org.hipparchus.Field[_fraction_1__T], int: int, int2: int) -> _fraction_1__T: ...
+    def getNumberOfStages(self) -> int:
         """
-            Get the order of the method.
+            Getter for the number of stages corresponding to the Butcher array.
         
             Returns:
-                order of the method
+                number of stages
         
         
         """
         ...
-    def getSafety(self) -> float:
+    def getRealA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
         """
-            Get the safety factor for stepsize control.
+            Get the internal weights from Butcher array (without the first empty row). Real version (non-Field).
         
             Returns:
-                safety factor
+                internal weights from Butcher array (without the first empty row)
         
         
         """
         ...
-    @typing.overload
-    def integrate(self, ordinaryDifferentialEquation: org.hipparchus.ode.OrdinaryDifferentialEquation, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
-    @typing.overload
-    def integrate(self, expandableODE: org.hipparchus.ode.ExpandableODE, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
-    def setMaxGrowth(self, double: float) -> None:
+    def getRealB(self) -> typing.MutableSequence[float]:
         """
-            Set the maximal growth factor for stepsize control.
+            Get the external weights for the high order method from Butcher array. Real version (non-Field).
         
-            Parameters:
-                maxGrowth (double): maximal growth factor
+            Returns:
+                external weights for the high order method from Butcher array
         
         
         """
         ...
-    def setMinReduction(self, double: float) -> None:
+    def getRealC(self) -> typing.MutableSequence[float]:
         """
-            Set the minimal reduction factor for stepsize control.
+            Get the time steps from Butcher array (without the first zero). Real version (non-Field).
         
-            Parameters:
-                minReduction (double): minimal reduction factor
+            Returns:
+                time steps from Butcher array (without the first zero).
         
         
         """
         ...
-    def setSafety(self, double: float) -> None:
+    def isUsingFieldCoefficients(self) -> bool:
         """
-            Set the safety factor for stepsize control.
+            Getter for the flag between real or Field coefficients in the Butcher array.
         
-            Parameters:
-                safety (double): safety factor
+            Returns:
+                flag
         
         
         """
         ...
+    def singleStep(self, fieldOrdinaryDifferentialEquation: org.hipparchus.ode.FieldOrdinaryDifferentialEquation[_FieldExplicitRungeKuttaIntegrator__T], t: _FieldExplicitRungeKuttaIntegrator__T, tArray: typing.Union[typing.List[_FieldExplicitRungeKuttaIntegrator__T], jpype.JArray], t3: _FieldExplicitRungeKuttaIntegrator__T) -> typing.MutableSequence[_FieldExplicitRungeKuttaIntegrator__T]: ...
 
 class GraggBulirschStoerIntegrator(AdaptiveStepsizeIntegrator):
     """
-    public class GraggBulirschStoerIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator`
+    public classGraggBulirschStoerIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator`
     
         This class implements a Gragg-Bulirsch-Stoer integrator for Ordinary Differential Equations.
     
@@ -1393,6 +1519,19 @@ class GraggBulirschStoerIntegrator(AdaptiveStepsizeIntegrator):
             USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
             STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
             IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float): ...
@@ -1410,8 +1549,7 @@ class GraggBulirschStoerIntegrator(AdaptiveStepsizeIntegrator):
         
             .. code-block: java
             
-            
-             hNew = h * stepControl2 / (err/stepControl1)^(1/(2k + 1))
+             hNew = h * stepControl2 / (err/stepControl1)^(1/(2k + 1))
              
         
             where err is the scaled error and k the iteration number of the extrapolation scheme (counting from 0). The default
@@ -1421,8 +1559,7 @@ class GraggBulirschStoerIntegrator(AdaptiveStepsizeIntegrator):
         
             .. code-block: java
             
-            
-             stepControl3^(1/(2k + 1))/stepControl4 <= hNew/h <= 1/stepControl3^(1/(2k + 1))
+             stepControl3^(1/(2k + 1))/stepControl4 <= hNew/h <= 1/stepControl3^(1/(2k + 1))
              
         
             The default values are 0.02 for stepControl3 and 4.0 for stepControl4.
@@ -1458,9 +1595,8 @@ class GraggBulirschStoerIntegrator(AdaptiveStepsizeIntegrator):
         
             .. code-block: java
             
-            
-             order is decreased if w(k - 1) <= w(k)     * orderControl1
-             order is increased if w(k)     <= w(k - 1) * orderControl2
+             order is decreased if w(k - 1) <= w(k)     * orderControl1
+             order is increased if w(k)     <= w(k - 1) * orderControl2
              
         
             where w is the table of work per unit step for each order (number of function calls divided by the step length), and k
@@ -1499,117 +1635,378 @@ class GraggBulirschStoerIntegrator(AdaptiveStepsizeIntegrator):
         """
         ...
 
-_RungeKuttaFieldIntegrator__T = typing.TypeVar('_RungeKuttaFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class RungeKuttaFieldIntegrator(org.hipparchus.ode.AbstractFieldIntegrator[_RungeKuttaFieldIntegrator__T], FieldButcherArrayProvider[_RungeKuttaFieldIntegrator__T], typing.Generic[_RungeKuttaFieldIntegrator__T]):
+_EmbeddedRungeKuttaFieldIntegrator__T = typing.TypeVar('_EmbeddedRungeKuttaFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class EmbeddedRungeKuttaFieldIntegrator(AdaptiveStepsizeFieldIntegrator[_EmbeddedRungeKuttaFieldIntegrator__T], FieldExplicitRungeKuttaIntegrator[_EmbeddedRungeKuttaFieldIntegrator__T], typing.Generic[_EmbeddedRungeKuttaFieldIntegrator__T]):
     """
-    public abstract class RungeKuttaFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.AbstractFieldIntegrator`<T> implements :class:`~org.hipparchus.ode.nonstiff.FieldButcherArrayProvider`<T>
+    public abstract classEmbeddedRungeKuttaFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator`<T>
+    implements :class:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator`<T>
     
-        This class implements the common part of all fixed step Runge-Kutta integrators for Ordinary Differential Equations.
+        This class implements the common part of all embedded Runge-Kutta integrators for Ordinary Differential Equations.
     
-        These methods are explicit Runge-Kutta methods, their Butcher arrays are as follows :
+        These methods are embedded explicit Runge-Kutta methods with two sets of coefficients allowing to estimate the error,
+        their Butcher arrays are as follows :
     
         .. code-block: java
         
-        
-            0  |
-           c2  | a21
-           c3  | a31  a32
-           ... |        ...
-           cs  | as1  as2  ...  ass-1
-               |--------------------------
-               |  b1   b2  ...   bs-1  bs
+            0  |
+           c2  | a21
+           c3  | a31  a32
+           ... |        ...
+           cs  | as1  as2  ...  ass-1
+               |--------------------------
+               |  b1   b2  ...   bs-1  bs
+               |  b'1  b'2 ...   b's-1 b's
          
     
-        Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`, :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+        In fact, we rather use the array defined by ej = bj - b'j to compute directly the error rather than computing two
+        estimates and then comparing them.
+    
+        Some methods are qualified as *fsal* (first same as last) methods. This means the last evaluation of the derivatives in
+        one step is the same as the first in the next step. Then, this evaluation can be reused from one step to the next one
+        and the cost of such a method is really s-1 evaluations despite the method still has s stages. This behaviour is true
+        only for successful steps, if the step is rejected after the error estimation phase, no evaluation is saved. For an
+        *fsal* method, we have cs = 1 and asi = bi for all i.
     """
-    def getDefaultStep(self) -> _RungeKuttaFieldIntegrator__T:
+    def getMaxGrowth(self) -> _EmbeddedRungeKuttaFieldIntegrator__T:
         """
-            Getter for the default, positive step-size assigned at constructor level.
+            Get the maximal growth factor for stepsize control.
         
             Returns:
-                step
+                maximal growth factor
         
         
         """
         ...
-    def integrate(self, fieldExpandableODE: org.hipparchus.ode.FieldExpandableODE[_RungeKuttaFieldIntegrator__T], fieldODEState: org.hipparchus.ode.FieldODEState[_RungeKuttaFieldIntegrator__T], t: _RungeKuttaFieldIntegrator__T) -> org.hipparchus.ode.FieldODEStateAndDerivative[_RungeKuttaFieldIntegrator__T]: ...
-    def singleStep(self, fieldOrdinaryDifferentialEquation: org.hipparchus.ode.FieldOrdinaryDifferentialEquation[_RungeKuttaFieldIntegrator__T], t: _RungeKuttaFieldIntegrator__T, tArray: typing.Union[typing.List[_RungeKuttaFieldIntegrator__T], jpype.JArray], t3: _RungeKuttaFieldIntegrator__T) -> typing.MutableSequence[_RungeKuttaFieldIntegrator__T]: ...
-
-class RungeKuttaIntegrator(org.hipparchus.ode.AbstractIntegrator, ButcherArrayProvider):
-    """
-    public abstract class RungeKuttaIntegrator extends :class:`~org.hipparchus.ode.AbstractIntegrator` implements :class:`~org.hipparchus.ode.nonstiff.ButcherArrayProvider`
-    
-        This class implements the common part of all fixed step Runge-Kutta integrators for Ordinary Differential Equations.
-    
-        These methods are explicit Runge-Kutta methods, their Butcher arrays are as follows :
-    
-        .. code-block: java
-        
-        
-            0  |
-           c2  | a21
-           c3  | a31  a32
-           ... |        ...
-           cs  | as1  as2  ...  ass-1
-               |--------------------------
-               |  b1   b2  ...   bs-1  bs
-         
-    
-        Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`, :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
-    """
-    def getDefaultStep(self) -> float:
+    def getMinReduction(self) -> _EmbeddedRungeKuttaFieldIntegrator__T:
         """
-            Getter for the default, positive step-size assigned at constructor level.
+            Get the minimal reduction factor for stepsize control.
         
             Returns:
-                step
+                minimal reduction factor
+        
+        
+        """
+        ...
+    def getNumberOfStages(self) -> int:
+        """
+            Getter for the number of stages corresponding to the Butcher array.
+        
+            Specified by:
+                :meth:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator.getNumberOfStages` in
+                interface :class:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator`
+        
+            Returns:
+                number of stages
+        
+        
+        """
+        ...
+    def getOrder(self) -> int:
+        """
+            Get the order of the method.
+        
+            Returns:
+                order of the method
+        
+        
+        """
+        ...
+    def getSafety(self) -> _EmbeddedRungeKuttaFieldIntegrator__T:
+        """
+            Get the safety factor for stepsize control.
+        
+            Returns:
+                safety factor
+        
+        
+        """
+        ...
+    def integrate(self, fieldExpandableODE: org.hipparchus.ode.FieldExpandableODE[_EmbeddedRungeKuttaFieldIntegrator__T], fieldODEState: org.hipparchus.ode.FieldODEState[_EmbeddedRungeKuttaFieldIntegrator__T], t: _EmbeddedRungeKuttaFieldIntegrator__T) -> org.hipparchus.ode.FieldODEStateAndDerivative[_EmbeddedRungeKuttaFieldIntegrator__T]: ...
+    def isUsingFieldCoefficients(self) -> bool:
+        """
+            Getter for the flag between real or Field coefficients in the Butcher array.
+        
+            Specified by:
+                :meth:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator.isUsingFieldCoefficients` in
+                interface :class:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator`
+        
+            Returns:
+                flag
+        
+        
+        """
+        ...
+    def setMaxGrowth(self, t: _EmbeddedRungeKuttaFieldIntegrator__T) -> None:
+        """
+            Set the maximal growth factor for stepsize control.
+        
+            Parameters:
+                maxGrowth (:class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`): maximal growth factor
+        
+        
+        """
+        ...
+    def setMinReduction(self, t: _EmbeddedRungeKuttaFieldIntegrator__T) -> None:
+        """
+            Set the minimal reduction factor for stepsize control.
+        
+            Parameters:
+                minReduction (:class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`): minimal reduction factor
+        
+        
+        """
+        ...
+    def setSafety(self, t: _EmbeddedRungeKuttaFieldIntegrator__T) -> None:
+        """
+            Set the safety factor for stepsize control.
+        
+            Parameters:
+                safety (:class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`): safety factor
+        
+        
+        """
+        ...
+    def setUsingFieldCoefficients(self, boolean: bool) -> None:
+        """
+            Setter for the flag between real or Field coefficients in the Butcher array.
+        
+            Parameters:
+                usingFieldCoefficients (boolean): new value for flag
+        
+        
+        """
+        ...
+
+class EmbeddedRungeKuttaIntegrator(AdaptiveStepsizeIntegrator, ExplicitRungeKuttaIntegrator):
+    """
+    public abstract classEmbeddedRungeKuttaIntegrator extends :class:`~org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator`
+    implements :class:`~org.hipparchus.ode.nonstiff.ExplicitRungeKuttaIntegrator`
+    
+        This class implements the common part of all embedded Runge-Kutta integrators for Ordinary Differential Equations.
+    
+        These methods are embedded explicit Runge-Kutta methods with two sets of coefficients allowing to estimate the error,
+        their Butcher arrays are as follows :
+    
+        .. code-block: java
+        
+            0  |
+           c2  | a21
+           c3  | a31  a32
+           ... |        ...
+           cs  | as1  as2  ...  ass-1
+               |--------------------------
+               |  b1   b2  ...   bs-1  bs
+               |  b'1  b'2 ...   b's-1 b's
+         
+    
+        In fact, we rather use the array defined by ej = bj - b'j to compute directly the error rather than computing two
+        estimates and then comparing them.
+    
+        Some methods are qualified as *fsal* (first same as last) methods. This means the last evaluation of the derivatives in
+        one step is the same as the first in the next step. Then, this evaluation can be reused from one step to the next one
+        and the cost of such a method is really s-1 evaluations despite the method still has s stages. This behaviour is true
+        only for successful steps, if the step is rejected after the error estimation phase, no evaluation is saved. For an
+        *fsal* method, we have cs = 1 and asi = bi for all i.
+    """
+    def getMaxGrowth(self) -> float:
+        """
+            Get the maximal growth factor for stepsize control.
+        
+            Returns:
+                maximal growth factor
+        
+        
+        """
+        ...
+    def getMinReduction(self) -> float:
+        """
+            Get the minimal reduction factor for stepsize control.
+        
+            Returns:
+                minimal reduction factor
+        
+        
+        """
+        ...
+    def getOrder(self) -> int:
+        """
+            Get the order of the method.
+        
+            Returns:
+                order of the method
+        
+        
+        """
+        ...
+    def getSafety(self) -> float:
+        """
+            Get the safety factor for stepsize control.
+        
+            Returns:
+                safety factor
         
         
         """
         ...
     @typing.overload
-    def integrate(self, ordinaryDifferentialEquation: org.hipparchus.ode.OrdinaryDifferentialEquation, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
-    @typing.overload
+    def integrate(self, ordinaryDifferentialEquation: org.hipparchus.ode.OrdinaryDifferentialEquation, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
+    @typing.overload
     def integrate(self, expandableODE: org.hipparchus.ode.ExpandableODE, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
-    def singleStep(self, ordinaryDifferentialEquation: org.hipparchus.ode.OrdinaryDifferentialEquation, double: float, doubleArray: typing.Union[typing.List[float], jpype.JArray], double3: float) -> typing.MutableSequence[float]:
+    def setMaxGrowth(self, double: float) -> None:
         """
-            Fast computation of a single step of ODE integration.
+            Set the maximal growth factor for stepsize control.
         
-            This method is intended for the limited use case of very fast computation of only one step without using any of the rich
-            features of general integrators that may take some time to set up (i.e. no step handlers, no events handlers, no
-            additional states, no interpolators, no error control, no evaluations count, no sanity checks ...). It handles the
-            strict minimum of computation, so it can be embedded in outer loops.
+            Parameters:
+                maxGrowth (double): maximal growth factor
         
-            This method is *not* used at all by the :meth:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator.integrate` method. It
-            also completely ignores the step set at construction time, and uses only a single step to go from :code:`t0` to
-            :code:`t`.
         
-            As this method does not use any of the state-dependent features of the integrator, it should be reasonably thread-safe
-            *if and only if* the provided differential equations are themselves thread-safe.
+        """
+        ...
+    def setMinReduction(self, double: float) -> None:
+        """
+            Set the minimal reduction factor for stepsize control.
         
             Parameters:
-                equations (:class:`~org.hipparchus.ode.OrdinaryDifferentialEquation`): differential equations to integrate
-                t0 (double): initial time
-                y0 (double[]): initial value of the state vector at t0
-                t (double): target time for the integration (can be set to a value smaller than :code:`t0` for backward integration)
+                minReduction (double): minimal reduction factor
+        
+        
+        """
+        ...
+    def setSafety(self, double: float) -> None:
+        """
+            Set the safety factor for stepsize control.
+        
+            Parameters:
+                safety (double): safety factor
+        
+        
+        """
+        ...
+
+_RungeKuttaFieldIntegrator__T = typing.TypeVar('_RungeKuttaFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class RungeKuttaFieldIntegrator(org.hipparchus.ode.AbstractFieldIntegrator[_RungeKuttaFieldIntegrator__T], FieldExplicitRungeKuttaIntegrator[_RungeKuttaFieldIntegrator__T], typing.Generic[_RungeKuttaFieldIntegrator__T]):
+    """
+    public abstract classRungeKuttaFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.AbstractFieldIntegrator`<T>
+    implements :class:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator`<T>
+    
+        This class implements the common part of all fixed step Runge-Kutta integrators for Ordinary Differential Equations.
+    
+        These methods are explicit Runge-Kutta methods, their Butcher arrays are as follows :
+    
+        .. code-block: java
+        
+            0  |
+           c2  | a21
+           c3  | a31  a32
+           ... |        ...
+           cs  | as1  as2  ...  ass-1
+               |--------------------------
+               |  b1   b2  ...   bs-1  bs
+         
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+    """
+    def getDefaultStep(self) -> _RungeKuttaFieldIntegrator__T:
+        """
+            Getter for the default, positive step-size assigned at constructor level.
         
             Returns:
-                state vector at :code:`t`
+                step
+        
+        
+        """
+        ...
+    def getNumberOfStages(self) -> int:
+        """
+            Getter for the number of stages corresponding to the Butcher array.
+        
+            Specified by:
+                :meth:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator.getNumberOfStages` in
+                interface :class:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator`
+        
+            Returns:
+                number of stages
+        
+        
+        """
+        ...
+    def integrate(self, fieldExpandableODE: org.hipparchus.ode.FieldExpandableODE[_RungeKuttaFieldIntegrator__T], fieldODEState: org.hipparchus.ode.FieldODEState[_RungeKuttaFieldIntegrator__T], t: _RungeKuttaFieldIntegrator__T) -> org.hipparchus.ode.FieldODEStateAndDerivative[_RungeKuttaFieldIntegrator__T]: ...
+    def isUsingFieldCoefficients(self) -> bool:
+        """
+            Getter for the flag between real or Field coefficients in the Butcher array.
+        
+            Specified by:
+                :meth:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator.isUsingFieldCoefficients` in
+                interface :class:`~org.hipparchus.ode.nonstiff.FieldExplicitRungeKuttaIntegrator`
+        
+            Returns:
+                flag
+        
+        
+        """
+        ...
+    def setUsingFieldCoefficients(self, boolean: bool) -> None:
+        """
+            Setter for the flag between real or Field coefficients in the Butcher array.
+        
+            Parameters:
+                usingFieldCoefficients (boolean): new value for flag
         
         
         """
         ...
 
+class RungeKuttaIntegrator(org.hipparchus.ode.AbstractIntegrator, ExplicitRungeKuttaIntegrator):
+    """
+    public abstract classRungeKuttaIntegrator extends :class:`~org.hipparchus.ode.AbstractIntegrator`
+    implements :class:`~org.hipparchus.ode.nonstiff.ExplicitRungeKuttaIntegrator`
+    
+        This class implements the common part of all fixed step Runge-Kutta integrators for Ordinary Differential Equations.
+    
+        These methods are explicit Runge-Kutta methods, their Butcher arrays are as follows :
+    
+        .. code-block: java
+        
+            0  |
+           c2  | a21
+           c3  | a31  a32
+           ... |        ...
+           cs  | as1  as2  ...  ass-1
+               |--------------------------
+               |  b1   b2  ...   bs-1  bs
+         
+    
+        Also see:
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
+    """
+    def getDefaultStep(self) -> float:
+        """
+            Getter for the default, positive step-size assigned at constructor level.
+        
+            Returns:
+                step
+        
+        
+        """
+        ...
+    @typing.overload
+    def integrate(self, ordinaryDifferentialEquation: org.hipparchus.ode.OrdinaryDifferentialEquation, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
+    @typing.overload
+    def integrate(self, expandableODE: org.hipparchus.ode.ExpandableODE, oDEState: org.hipparchus.ode.ODEState, double: float) -> org.hipparchus.ode.ODEStateAndDerivative: ...
+
 _ClassicalRungeKuttaFieldIntegrator__T = typing.TypeVar('_ClassicalRungeKuttaFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class ClassicalRungeKuttaFieldIntegrator(RungeKuttaFieldIntegrator[_ClassicalRungeKuttaFieldIntegrator__T], typing.Generic[_ClassicalRungeKuttaFieldIntegrator__T]):
     """
-    public class ClassicalRungeKuttaFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
+    public classClassicalRungeKuttaFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
     
         This class implements the classical fourth order Runge-Kutta integrator for Ordinary Differential Equations (it is the
         most often used Runge-Kutta method).
@@ -1618,20 +2015,34 @@ class ClassicalRungeKuttaFieldIntegrator(RungeKuttaFieldIntegrator[_ClassicalRun
     
         .. code-block: java
         
-        
-            0  |  0    0    0    0
-           1/2 | 1/2   0    0    0
-           1/2 |  0   1/2   0    0
-            1  |  0    0    1    0
-               |--------------------
-               | 1/6  1/3  1/3  1/6
+            0  |  0    0    0    0
+           1/2 | 1/2   0    0    0
+           1/2 |  0   1/2   0    0
+            1  |  0    0    1    0
+               |--------------------
+               | 1/6  1/3  1/3  1/6
          
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`, :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, field: org.hipparchus.Field[_ClassicalRungeKuttaFieldIntegrator__T], t: _ClassicalRungeKuttaFieldIntegrator__T): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_ClassicalRungeKuttaFieldIntegrator__T]]:
@@ -1667,7 +2078,7 @@ class ClassicalRungeKuttaFieldIntegrator(RungeKuttaFieldIntegrator[_ClassicalRun
 
 class ClassicalRungeKuttaIntegrator(RungeKuttaIntegrator):
     """
-    public class ClassicalRungeKuttaIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+    public classClassicalRungeKuttaIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
     
         This class implements the classical fourth order Runge-Kutta integrator for Ordinary Differential Equations (it is the
         most often used Runge-Kutta method).
@@ -1676,19 +2087,34 @@ class ClassicalRungeKuttaIntegrator(RungeKuttaIntegrator):
     
         .. code-block: java
         
-        
-            0  |  0    0    0    0
-           1/2 | 1/2   0    0    0
-           1/2 |  0   1/2   0    0
-            1  |  0    0    1    0
-               |--------------------
-               | 1/6  1/3  1/3  1/6
+            0  |  0    0    0    0
+           1/2 | 1/2   0    0    0
+           1/2 |  0   1/2   0    0
+            1  |  0    0    1    0
+               |--------------------
+               | 1/6  1/3  1/3  1/6
          
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`, :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`, :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, double: float): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
@@ -1725,7 +2151,7 @@ class ClassicalRungeKuttaIntegrator(RungeKuttaIntegrator):
 _DormandPrince54FieldIntegrator__T = typing.TypeVar('_DormandPrince54FieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class DormandPrince54FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_DormandPrince54FieldIntegrator__T], typing.Generic[_DormandPrince54FieldIntegrator__T]):
     """
-    public class DormandPrince54FieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`<T>
+    public classDormandPrince54FieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`<T>
     
         This class implements the 5(4) Dormand-Prince integrator for Ordinary Differential Equations.
     
@@ -1740,11 +2166,23 @@ class DormandPrince54FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_DormandP
     
         .. code-block: java
         
-        
-          A family of embedded Runge-Kutta formulae
-          J. R. Dormand and P. J. Prince
-          Journal of Computational and Applied Mathematics
+          A family of embedded Runge-Kutta formulae
+          J. R. Dormand and P. J. Prince
+          Journal of Computational and Applied Mathematics
           volume 6, no 1, 1980, pp. 19-26
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_DormandPrince54FieldIntegrator__T], double: float, double2: float, double3: float, double4: float): ...
@@ -1797,7 +2235,7 @@ class DormandPrince54FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_DormandP
 
 class DormandPrince54Integrator(EmbeddedRungeKuttaIntegrator):
     """
-    public class DormandPrince54Integrator extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
+    public classDormandPrince54Integrator extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
     
         This class implements the 5(4) Dormand-Prince integrator for Ordinary Differential Equations.
     
@@ -1812,11 +2250,23 @@ class DormandPrince54Integrator(EmbeddedRungeKuttaIntegrator):
     
         .. code-block: java
         
-        
-          A family of embedded Runge-Kutta formulae
-          J. R. Dormand and P. J. Prince
-          Journal of Computational and Applied Mathematics
+          A family of embedded Runge-Kutta formulae
+          J. R. Dormand and P. J. Prince
+          Journal of Computational and Applied Mathematics
           volume 6, no 1, 1980, pp. 19-26
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float): ...
@@ -1870,7 +2320,7 @@ class DormandPrince54Integrator(EmbeddedRungeKuttaIntegrator):
 _DormandPrince853FieldIntegrator__T = typing.TypeVar('_DormandPrince853FieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class DormandPrince853FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_DormandPrince853FieldIntegrator__T], typing.Generic[_DormandPrince853FieldIntegrator__T]):
     """
-    public class DormandPrince853FieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`<T>
+    public classDormandPrince853FieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`<T>
     
         This class implements the 8(5,3) Dormand-Prince integrator for Ordinary Differential Equations.
     
@@ -1889,6 +2339,19 @@ class DormandPrince853FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_Dormand
         discontinuities*. This modification is explained in the second edition of the first volume (Nonstiff Problems) of the
         reference book by Hairer, Norsett and Wanner: *Solving Ordinary Differential Equations* (Springer-Verlag, ISBN
         3-540-56670-8).
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_DormandPrince853FieldIntegrator__T], double: float, double2: float, double3: float, double4: float): ...
@@ -1941,7 +2404,7 @@ class DormandPrince853FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_Dormand
 
 class DormandPrince853Integrator(EmbeddedRungeKuttaIntegrator):
     """
-    public class DormandPrince853Integrator extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
+    public classDormandPrince853Integrator extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
     
         This class implements the 8(5,3) Dormand-Prince integrator for Ordinary Differential Equations.
     
@@ -1960,6 +2423,19 @@ class DormandPrince853Integrator(EmbeddedRungeKuttaIntegrator):
         discontinuities*. This modification is explained in the second edition of the first volume (Nonstiff Problems) of the
         reference book by Hairer, Norsett and Wanner: *Solving Ordinary Differential Equations* (Springer-Verlag, ISBN
         3-540-56670-8).
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float): ...
@@ -2013,7 +2489,7 @@ class DormandPrince853Integrator(EmbeddedRungeKuttaIntegrator):
 _EulerFieldIntegrator__T = typing.TypeVar('_EulerFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class EulerFieldIntegrator(RungeKuttaFieldIntegrator[_EulerFieldIntegrator__T], typing.Generic[_EulerFieldIntegrator__T]):
     """
-    public class EulerFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
+    public classEulerFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
     
         This class implements a simple Euler integrator for Ordinary Differential Equations.
     
@@ -2028,11 +2504,25 @@ class EulerFieldIntegrator(RungeKuttaFieldIntegrator[_EulerFieldIntegrator__T],
         integrators.
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, field: org.hipparchus.Field[_EulerFieldIntegrator__T], t: _EulerFieldIntegrator__T): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_EulerFieldIntegrator__T]]:
@@ -2068,7 +2558,7 @@ class EulerFieldIntegrator(RungeKuttaFieldIntegrator[_EulerFieldIntegrator__T],
 
 class EulerIntegrator(RungeKuttaIntegrator):
     """
-    public class EulerIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+    public classEulerIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
     
         This class implements a simple Euler integrator for Ordinary Differential Equations.
     
@@ -2083,10 +2573,25 @@ class EulerIntegrator(RungeKuttaIntegrator):
         integrators.
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`, :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, double: float): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
@@ -2123,7 +2628,7 @@ class EulerIntegrator(RungeKuttaIntegrator):
 _GillFieldIntegrator__T = typing.TypeVar('_GillFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class GillFieldIntegrator(RungeKuttaFieldIntegrator[_GillFieldIntegrator__T], typing.Generic[_GillFieldIntegrator__T]):
     """
-    public class GillFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
+    public classGillFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
     
         This class implements the Gill fourth order Runge-Kutta integrator for Ordinary Differential Equations .
     
@@ -2131,23 +2636,36 @@ class GillFieldIntegrator(RungeKuttaFieldIntegrator[_GillFieldIntegrator__T], ty
     
         .. code-block: java
         
-        
-            0  |    0        0       0      0
-           1/2 |   1/2       0       0      0
-           1/2 | (q-1)/2  (2-q)/2    0      0
-            1  |    0       -q/2  (2+q)/2   0
-               |-------------------------------
-               |   1/6    (2-q)/6 (2+q)/6  1/6
+            0  |    0        0       0      0
+           1/2 |   1/2       0       0      0
+           1/2 | (q-1)/2  (2-q)/2    0      0
+            1  |    0       -q/2  (2+q)/2   0
+               |-------------------------------
+               |   1/6    (2-q)/6 (2+q)/6  1/6
          
     
         where q = sqrt(2)
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, field: org.hipparchus.Field[_GillFieldIntegrator__T], t: _GillFieldIntegrator__T): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_GillFieldIntegrator__T]]:
@@ -2183,7 +2701,7 @@ class GillFieldIntegrator(RungeKuttaFieldIntegrator[_GillFieldIntegrator__T], ty
 
 class GillIntegrator(RungeKuttaIntegrator):
     """
-    public class GillIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+    public classGillIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
     
         This class implements the Gill fourth order Runge-Kutta integrator for Ordinary Differential Equations .
     
@@ -2191,22 +2709,36 @@ class GillIntegrator(RungeKuttaIntegrator):
     
         .. code-block: java
         
-        
-            0  |    0        0       0      0
-           1/2 |   1/2       0       0      0
-           1/2 | (q-1)/2  (2-q)/2    0      0
-            1  |    0       -q/2  (2+q)/2   0
-               |-------------------------------
-               |   1/6    (2-q)/6 (2+q)/6  1/6
+            0  |    0        0       0      0
+           1/2 |   1/2       0       0      0
+           1/2 | (q-1)/2  (2-q)/2    0      0
+            1  |    0       -q/2  (2+q)/2   0
+               |-------------------------------
+               |   1/6    (2-q)/6 (2+q)/6  1/6
          
     
         where q = sqrt(2)
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`, :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, double: float): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
@@ -2243,13 +2775,26 @@ class GillIntegrator(RungeKuttaIntegrator):
 _HighamHall54FieldIntegrator__T = typing.TypeVar('_HighamHall54FieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class HighamHall54FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_HighamHall54FieldIntegrator__T], typing.Generic[_HighamHall54FieldIntegrator__T]):
     """
-    public class HighamHall54FieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`<T>
+    public classHighamHall54FieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaFieldIntegrator`<T>
     
         This class implements the 5(4) Higham and Hall integrator for Ordinary Differential Equations.
     
         This integrator is an embedded Runge-Kutta integrator of order 5(4) used in local extrapolation mode (i.e. the solution
         is computed using the high order formula) with stepsize control (and automatic step initialization) and continuous
         output. This method uses 7 functions evaluations per step.
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_HighamHall54FieldIntegrator__T], double: float, double2: float, double3: float, double4: float): ...
@@ -2302,13 +2847,26 @@ class HighamHall54FieldIntegrator(EmbeddedRungeKuttaFieldIntegrator[_HighamHall5
 
 class HighamHall54Integrator(EmbeddedRungeKuttaIntegrator):
     """
-    public class HighamHall54Integrator extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
+    public classHighamHall54Integrator extends :class:`~org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator`
     
         This class implements the 5(4) Higham and Hall integrator for Ordinary Differential Equations.
     
         This integrator is an embedded Runge-Kutta integrator of order 5(4) used in local extrapolation mode (i.e. the solution
         is computed using the high order formula) with stepsize control (and automatic step initialization) and continuous
         output. This method uses 7 functions evaluations per step.
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float): ...
@@ -2362,7 +2920,7 @@ class HighamHall54Integrator(EmbeddedRungeKuttaIntegrator):
 _LutherFieldIntegrator__T = typing.TypeVar('_LutherFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class LutherFieldIntegrator(RungeKuttaFieldIntegrator[_LutherFieldIntegrator__T], typing.Generic[_LutherFieldIntegrator__T]):
     """
-    public class LutherFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
+    public classLutherFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
     
         This class implements the Luther sixth order Runge-Kutta integrator for Ordinary Differential Equations.
     
@@ -2373,26 +2931,39 @@ class LutherFieldIntegrator(RungeKuttaFieldIntegrator[_LutherFieldIntegrator__T]
     
         .. code-block: java
         
-        
-                0   |               0                     0                     0                     0                     0                     0
-                1   |               1                     0                     0                     0                     0                     0
-               1/2  |              3/8                   1/8                    0                     0                     0                     0
-               2/3  |              8/27                  2/27                  8/27                   0                     0                     0
-           (7-q)/14 | (  -21 +   9q)/392    (  -56 +   8q)/392    (  336 -  48q)/392    (  -63 +   3q)/392                  0                     0
-           (7+q)/14 | (-1155 - 255q)/1960   ( -280 -  40q)/1960   (    0 - 320q)/1960   (   63 + 363q)/1960   ( 2352 + 392q)/1960                 0
-                1   | (  330 + 105q)/180    (  120 +   0q)/180    ( -200 + 280q)/180    (  126 - 189q)/180    ( -686 - 126q)/180     ( 490 -  70q)/180
-                    |--------------------------------------------------------------------------------------------------------------------------------------------------
-                    |              1/20                   0                   16/45                  0                   49/180                 49/180         1/20
+                0   |               0                     0                     0                     0                     0                     0
+                1   |               1                     0                     0                     0                     0                     0
+               1/2  |              3/8                   1/8                    0                     0                     0                     0
+               2/3  |              8/27                  2/27                  8/27                   0                     0                     0
+           (7-q)/14 | (  -21 +   9q)/392    (  -56 +   8q)/392    (  336 -  48q)/392    (  -63 +   3q)/392                  0                     0
+           (7+q)/14 | (-1155 - 255q)/1960   ( -280 -  40q)/1960   (    0 - 320q)/1960   (   63 + 363q)/1960   ( 2352 + 392q)/1960                 0
+                1   | (  330 + 105q)/180    (  120 +   0q)/180    ( -200 + 280q)/180    (  126 - 189q)/180    ( -686 - 126q)/180     ( 490 -  70q)/180
+                    |--------------------------------------------------------------------------------------------------------------------------------------------------
+                    |              1/20                   0                   16/45                  0                   49/180                 49/180         1/20
          
     
         where q = √21
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, field: org.hipparchus.Field[_LutherFieldIntegrator__T], t: _LutherFieldIntegrator__T): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_LutherFieldIntegrator__T]]:
@@ -2428,7 +2999,7 @@ class LutherFieldIntegrator(RungeKuttaFieldIntegrator[_LutherFieldIntegrator__T]
 
 class LutherIntegrator(RungeKuttaIntegrator):
     """
-    public class LutherIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+    public classLutherIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
     
         This class implements the Luther sixth order Runge-Kutta integrator for Ordinary Differential Equations.
     
@@ -2439,25 +3010,39 @@ class LutherIntegrator(RungeKuttaIntegrator):
     
         .. code-block: java
         
-        
-                0   |               0                     0                     0                     0                     0                     0
-                1   |               1                     0                     0                     0                     0                     0
-               1/2  |              3/8                   1/8                    0                     0                     0                     0
-               2/3  |              8/27                  2/27                  8/27                   0                     0                     0
-           (7-q)/14 | (  -21 +   9q)/392    (  -56 +   8q)/392    (  336 -  48q)/392    (  -63 +   3q)/392                  0                     0
-           (7+q)/14 | (-1155 - 255q)/1960   ( -280 -  40q)/1960   (    0 - 320q)/1960   (   63 + 363q)/1960   ( 2352 + 392q)/1960                 0
-                1   | (  330 + 105q)/180    (  120 +   0q)/180    ( -200 + 280q)/180    (  126 - 189q)/180    ( -686 - 126q)/180     ( 490 -  70q)/180
-                    |--------------------------------------------------------------------------------------------------------------------------------------------------
-                    |              1/20                   0                   16/45                  0                   49/180                 49/180         1/20
+                0   |               0                     0                     0                     0                     0                     0
+                1   |               1                     0                     0                     0                     0                     0
+               1/2  |              3/8                   1/8                    0                     0                     0                     0
+               2/3  |              8/27                  2/27                  8/27                   0                     0                     0
+           (7-q)/14 | (  -21 +   9q)/392    (  -56 +   8q)/392    (  336 -  48q)/392    (  -63 +   3q)/392                  0                     0
+           (7+q)/14 | (-1155 - 255q)/1960   ( -280 -  40q)/1960   (    0 - 320q)/1960   (   63 + 363q)/1960   ( 2352 + 392q)/1960                 0
+                1   | (  330 + 105q)/180    (  120 +   0q)/180    ( -200 + 280q)/180    (  126 - 189q)/180    ( -686 - 126q)/180     ( 490 -  70q)/180
+                    |--------------------------------------------------------------------------------------------------------------------------------------------------
+                    |              1/20                   0                   16/45                  0                   49/180                 49/180         1/20
          
     
         where q = √21
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`, :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, double: float): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
@@ -2494,7 +3079,7 @@ class LutherIntegrator(RungeKuttaIntegrator):
 _MidpointFieldIntegrator__T = typing.TypeVar('_MidpointFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class MidpointFieldIntegrator(RungeKuttaFieldIntegrator[_MidpointFieldIntegrator__T], typing.Generic[_MidpointFieldIntegrator__T]):
     """
-    public class MidpointFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
+    public classMidpointFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
     
         This class implements a second order Runge-Kutta integrator for Ordinary Differential Equations.
     
@@ -2502,19 +3087,32 @@ class MidpointFieldIntegrator(RungeKuttaFieldIntegrator[_MidpointFieldIntegrator
     
         .. code-block: java
         
-        
-            0  |  0    0
-           1/2 | 1/2   0
-               |----------
-               |  0    1
+            0  |  0    0
+           1/2 | 1/2   0
+               |----------
+               |  0    1
          
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, field: org.hipparchus.Field[_MidpointFieldIntegrator__T], t: _MidpointFieldIntegrator__T): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_MidpointFieldIntegrator__T]]:
@@ -2550,7 +3148,7 @@ class MidpointFieldIntegrator(RungeKuttaFieldIntegrator[_MidpointFieldIntegrator
 
 class MidpointIntegrator(RungeKuttaIntegrator):
     """
-    public class MidpointIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+    public classMidpointIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
     
         This class implements a second order Runge-Kutta integrator for Ordinary Differential Equations.
     
@@ -2558,18 +3156,32 @@ class MidpointIntegrator(RungeKuttaIntegrator):
     
         .. code-block: java
         
-        
-            0  |  0    0
-           1/2 | 1/2   0
-               |----------
-               |  0    1
+            0  |  0    0
+           1/2 | 1/2   0
+               |----------
+               |  0    1
          
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`, :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ThreeEighthesIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, double: float): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
@@ -2606,7 +3218,7 @@ class MidpointIntegrator(RungeKuttaIntegrator):
 _ThreeEighthesFieldIntegrator__T = typing.TypeVar('_ThreeEighthesFieldIntegrator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class ThreeEighthesFieldIntegrator(RungeKuttaFieldIntegrator[_ThreeEighthesFieldIntegrator__T], typing.Generic[_ThreeEighthesFieldIntegrator__T]):
     """
-    public class ThreeEighthesFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
+    public classThreeEighthesFieldIntegrator<T extends :class:`~org.hipparchus.ode.nonstiff.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator`<T>
     
         This class implements the 3/8 fourth order Runge-Kutta integrator for Ordinary Differential Equations.
     
@@ -2614,21 +3226,34 @@ class ThreeEighthesFieldIntegrator(RungeKuttaFieldIntegrator[_ThreeEighthesField
     
         .. code-block: java
         
-        
-            0  |  0    0    0    0
-           1/3 | 1/3   0    0    0
-           2/3 |-1/3   1    0    0
-            1  |  1   -1    1    0
-               |--------------------
-               | 1/8  3/8  3/8  1/8
+            0  |  0    0    0    0
+           1/3 | 1/3   0    0    0
+           2/3 |-1/3   1    0    0
+            1  |  1   -1    1    0
+               |--------------------
+               | 1/8  3/8  3/8  1/8
          
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointFieldIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherFieldIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, field: org.hipparchus.Field[_ThreeEighthesFieldIntegrator__T], t: _ThreeEighthesFieldIntegrator__T): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[_ThreeEighthesFieldIntegrator__T]]:
@@ -2664,7 +3289,7 @@ class ThreeEighthesFieldIntegrator(RungeKuttaFieldIntegrator[_ThreeEighthesField
 
 class ThreeEighthesIntegrator(RungeKuttaIntegrator):
     """
-    public class ThreeEighthesIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
+    public classThreeEighthesIntegrator extends :class:`~org.hipparchus.ode.nonstiff.RungeKuttaIntegrator`
     
         This class implements the 3/8 fourth order Runge-Kutta integrator for Ordinary Differential Equations.
     
@@ -2672,20 +3297,34 @@ class ThreeEighthesIntegrator(RungeKuttaIntegrator):
     
         .. code-block: java
         
-        
-            0  |  0    0    0    0
-           1/3 | 1/3   0    0    0
-           2/3 |-1/3   1    0    0
-            1  |  1   -1    1    0
-               |--------------------
-               | 1/8  3/8  3/8  1/8
+            0  |  0    0    0    0
+           1/3 | 1/3   0    0    0
+           2/3 |-1/3   1    0    0
+            1  |  1   -1    1    0
+               |--------------------
+               | 1/8  3/8  3/8  1/8
          
     
         Also see:
-            :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`, :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`,
-            :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    
+              - :class:`~org.hipparchus.ode.nonstiff.EulerIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.GillIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.MidpointIntegrator`
+              - :class:`~org.hipparchus.ode.nonstiff.LutherIntegrator`
+    """
+    METHOD_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.hipparchus.ode.nonstiff.https:.docs.oracle.com.javase.8.docs.api.java.lang.String` METHOD_NAME
+    
+        Name of integration scheme.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
     """
     def __init__(self, double: float): ...
     def getA(self) -> typing.MutableSequence[typing.MutableSequence[float]]:
@@ -2744,7 +3383,9 @@ class __module_protocol__(Protocol):
     EmbeddedRungeKuttaIntegrator: typing.Type[EmbeddedRungeKuttaIntegrator]
     EulerFieldIntegrator: typing.Type[EulerFieldIntegrator]
     EulerIntegrator: typing.Type[EulerIntegrator]
+    ExplicitRungeKuttaIntegrator: typing.Type[ExplicitRungeKuttaIntegrator]
     FieldButcherArrayProvider: typing.Type[FieldButcherArrayProvider]
+    FieldExplicitRungeKuttaIntegrator: typing.Type[FieldExplicitRungeKuttaIntegrator]
     GillFieldIntegrator: typing.Type[GillFieldIntegrator]
     GillIntegrator: typing.Type[GillIntegrator]
     GraggBulirschStoerIntegrator: typing.Type[GraggBulirschStoerIntegrator]
diff --git a/org-stubs/hipparchus/ode/sampling/__init__.pyi b/org-stubs/hipparchus/ode/sampling/__init__.pyi
index 222b81b5dbc752b27091dd8907806092fb11a12c..1e448ce233c2b25c48d8e4027b1ccefac8a5e483 100644
--- a/org-stubs/hipparchus/ode/sampling/__init__.pyi
+++ b/org-stubs/hipparchus/ode/sampling/__init__.pyi
@@ -16,7 +16,7 @@ import typing
 _FieldODEFixedStepHandler__T = typing.TypeVar('_FieldODEFixedStepHandler__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEFixedStepHandler(typing.Generic[_FieldODEFixedStepHandler__T]):
     """
-    public interface FieldODEFixedStepHandler<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEFixedStepHandler<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a handler that should be called after each successful fixed step.
     
@@ -28,8 +28,10 @@ class FieldODEFixedStepHandler(typing.Generic[_FieldODEFixedStepHandler__T]):
         algorithms and it calls objects implementing this interface as necessary at fixed time steps.
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`, :class:`~org.hipparchus.ode.sampling.FieldStepNormalizer`,
-            :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`
+    
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.FieldStepNormalizer`
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`
     """
     def handleStep(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEFixedStepHandler__T], boolean: bool) -> None: ...
     def init(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEFixedStepHandler__T], t: _FieldODEFixedStepHandler__T) -> None: ...
@@ -37,7 +39,7 @@ class FieldODEFixedStepHandler(typing.Generic[_FieldODEFixedStepHandler__T]):
 _FieldODEStateInterpolator__T = typing.TypeVar('_FieldODEStateInterpolator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEStateInterpolator(typing.Generic[_FieldODEStateInterpolator__T]):
     """
-    public interface FieldODEStateInterpolator<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEStateInterpolator<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents an interpolator over the last step during an ODE integration.
     
@@ -47,7 +49,9 @@ class FieldODEStateInterpolator(typing.Generic[_FieldODEStateInterpolator__T]):
         output).
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldODEIntegrator`, :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
+    
+              - :class:`~org.hipparchus.ode.FieldODEIntegrator`
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
     """
     def getCurrentState(self) -> org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEStateInterpolator__T]: ...
     def getInterpolatedState(self, t: _FieldODEStateInterpolator__T) -> org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEStateInterpolator__T]: ...
@@ -102,7 +106,7 @@ class FieldODEStateInterpolator(typing.Generic[_FieldODEStateInterpolator__T]):
 _FieldODEStepHandler__T = typing.TypeVar('_FieldODEStepHandler__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldODEStepHandler(typing.Generic[_FieldODEStepHandler__T]):
     """
-    public interface FieldODEStepHandler<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>>
+    public interfaceFieldODEStepHandler<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>>
     
         This interface represents a handler that should be called after each successful step.
     
@@ -113,7 +117,9 @@ class FieldODEStepHandler(typing.Generic[_FieldODEStepHandler__T]):
         processing or output methods.
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldODEIntegrator`, :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`
+    
+              - :class:`~org.hipparchus.ode.FieldODEIntegrator`
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`
     """
     def finish(self, fieldODEStateAndDerivative: org.hipparchus.ode.FieldODEStateAndDerivative[_FieldODEStepHandler__T]) -> None: ...
     def handleStep(self, fieldODEStateInterpolator: FieldODEStateInterpolator[_FieldODEStepHandler__T]) -> None: ...
@@ -121,7 +127,7 @@ class FieldODEStepHandler(typing.Generic[_FieldODEStepHandler__T]):
 
 class ODEFixedStepHandler:
     """
-    public interface ODEFixedStepHandler
+    public interfaceODEFixedStepHandler
     
         This interface represents a handler that should be called after each successful fixed step.
     
@@ -133,7 +139,9 @@ class ODEFixedStepHandler:
         and it calls objects implementing this interface as necessary at fixed time steps.
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.ODEStepHandler`, :class:`~org.hipparchus.ode.sampling.StepNormalizer`
+    
+              - :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizer`
     """
     def handleStep(self, oDEStateAndDerivative: org.hipparchus.ode.ODEStateAndDerivative, boolean: bool) -> None:
         """
@@ -165,7 +173,7 @@ class ODEFixedStepHandler:
 
 class ODEStateInterpolator(java.io.Serializable):
     """
-    public interface ODEStateInterpolator extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public interfaceODEStateInterpolatorextends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This interface represents an interpolator over the last step during an ODE integration.
     
@@ -175,7 +183,9 @@ class ODEStateInterpolator(java.io.Serializable):
         output).
     
         Also see:
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+    
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
     """
     def getCurrentState(self) -> org.hipparchus.ode.ODEStateAndDerivative:
         """
@@ -261,7 +271,7 @@ class ODEStateInterpolator(java.io.Serializable):
 
 class ODEStepHandler:
     """
-    public interface ODEStepHandler
+    public interfaceODEStepHandler
     
         This interface represents a handler that should be called after each successful step.
     
@@ -272,7 +282,9 @@ class ODEStepHandler:
         processing or output methods.
     
         Also see:
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.sampling.ODEStateInterpolator`
+    
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.sampling.ODEStateInterpolator`
     """
     def finish(self, oDEStateAndDerivative: org.hipparchus.ode.ODEStateAndDerivative) -> None:
         """
@@ -316,15 +328,17 @@ class ODEStepHandler:
 
 class StepNormalizerBounds(java.lang.Enum['StepNormalizerBounds']):
     """
-    public enum StepNormalizerBounds extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`>
+    public enumStepNormalizerBounds extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`>
     
         :class:`~org.hipparchus.ode.sampling.StepNormalizer` bounds settings. They influence whether the underlying fixed step
         size step handler is called for the first and last points. Note that if the last point coincides with a normalized
         point, then the underlying fixed step size step handler is always called, regardless of these settings.
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.FieldStepNormalizer`, :class:`~org.hipparchus.ode.sampling.StepNormalizer`,
-            :class:`~org.hipparchus.ode.sampling.StepNormalizerMode`
+    
+              - :class:`~org.hipparchus.ode.sampling.FieldStepNormalizer`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizer`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizerMode`
     """
     NEITHER: typing.ClassVar['StepNormalizerBounds'] = ...
     FIRST: typing.ClassVar['StepNormalizerBounds'] = ...
@@ -362,14 +376,14 @@ class StepNormalizerBounds(java.lang.Enum['StepNormalizerBounds']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -377,15 +391,7 @@ class StepNormalizerBounds(java.lang.Enum['StepNormalizerBounds']):
     @staticmethod
     def values() -> typing.MutableSequence['StepNormalizerBounds']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (StepNormalizerBounds c : StepNormalizerBounds.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -396,13 +402,15 @@ class StepNormalizerBounds(java.lang.Enum['StepNormalizerBounds']):
 
 class StepNormalizerMode(java.lang.Enum['StepNormalizerMode']):
     """
-    public enum StepNormalizerMode extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.ode.sampling.StepNormalizerMode`>
+    public enumStepNormalizerMode extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.ode.sampling.StepNormalizerMode`>
     
         :class:`~org.hipparchus.ode.sampling.StepNormalizer` modes. Determines how the step size is interpreted.
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.FieldStepNormalizer`, :class:`~org.hipparchus.ode.sampling.StepNormalizer`,
-            :class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`
+    
+              - :class:`~org.hipparchus.ode.sampling.FieldStepNormalizer`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizer`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`
     """
     INCREMENT: typing.ClassVar['StepNormalizerMode'] = ...
     MULTIPLES: typing.ClassVar['StepNormalizerMode'] = ...
@@ -418,14 +426,14 @@ class StepNormalizerMode(java.lang.Enum['StepNormalizerMode']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -433,15 +441,7 @@ class StepNormalizerMode(java.lang.Enum['StepNormalizerMode']):
     @staticmethod
     def values() -> typing.MutableSequence['StepNormalizerMode']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (StepNormalizerMode c : StepNormalizerMode.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -453,7 +453,8 @@ class StepNormalizerMode(java.lang.Enum['StepNormalizerMode']):
 _AbstractFieldODEStateInterpolator__T = typing.TypeVar('_AbstractFieldODEStateInterpolator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class AbstractFieldODEStateInterpolator(FieldODEStateInterpolator[_AbstractFieldODEStateInterpolator__T], typing.Generic[_AbstractFieldODEStateInterpolator__T]):
     """
-    public abstract class AbstractFieldODEStateInterpolator<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`<T>
+    public abstract classAbstractFieldODEStateInterpolator<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.sampling.FieldODEStateInterpolator`<T>
     
         This abstract class represents an interpolator over the last step during an ODE integration.
     
@@ -462,7 +463,9 @@ class AbstractFieldODEStateInterpolator(FieldODEStateInterpolator[_AbstractField
         output).
     
         Also see:
-            :class:`~org.hipparchus.ode.FieldODEIntegrator`, :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
+    
+              - :class:`~org.hipparchus.ode.FieldODEIntegrator`
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
     """
     def getCurrentState(self) -> org.hipparchus.ode.FieldODEStateAndDerivative[_AbstractFieldODEStateInterpolator__T]: ...
     def getGlobalCurrentState(self) -> org.hipparchus.ode.FieldODEStateAndDerivative[_AbstractFieldODEStateInterpolator__T]: ...
@@ -531,7 +534,8 @@ class AbstractFieldODEStateInterpolator(FieldODEStateInterpolator[_AbstractField
 
 class AbstractODEStateInterpolator(ODEStateInterpolator):
     """
-    public abstract class AbstractODEStateInterpolator extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.sampling.ODEStateInterpolator`
+    public abstract classAbstractODEStateInterpolator extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.sampling.ODEStateInterpolator`
     
         This abstract class represents an interpolator over the last step during an ODE integration.
     
@@ -540,7 +544,10 @@ class AbstractODEStateInterpolator(ODEStateInterpolator):
         output).
     
         Also see:
-            :class:`~org.hipparchus.ode.ODEIntegrator`, :class:`~org.hipparchus.ode.sampling.ODEStepHandler`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.ode.ODEIntegrator`
+              - :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+              - :meth:`~serialized`
     """
     def getCurrentState(self) -> org.hipparchus.ode.ODEStateAndDerivative:
         """
@@ -681,8 +688,10 @@ class AbstractODEStateInterpolator(ODEStateInterpolator):
                 restricted version of the instance
         
             Also see:
-                :meth:`~org.hipparchus.ode.sampling.AbstractODEStateInterpolator.getPreviousState`,
-                :meth:`~org.hipparchus.ode.sampling.AbstractODEStateInterpolator.getCurrentState`
+        
+                  - :meth:`~org.hipparchus.ode.sampling.AbstractODEStateInterpolator.getPreviousState`
+                  - :meth:`~org.hipparchus.ode.sampling.AbstractODEStateInterpolator.getCurrentState`
+        
         
         
         """
@@ -691,7 +700,8 @@ class AbstractODEStateInterpolator(ODEStateInterpolator):
 _FieldStepNormalizer__T = typing.TypeVar('_FieldStepNormalizer__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldStepNormalizer(FieldODEStepHandler[_FieldStepNormalizer__T], typing.Generic[_FieldStepNormalizer__T]):
     """
-    public class FieldStepNormalizer<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`<T>
+    public classFieldStepNormalizer<T extends :class:`~org.hipparchus.ode.sampling.https:.www.hipparchus.org.hipparchus`<T>> extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`<T>
     
         This class wraps an object implementing :class:`~org.hipparchus.ode.sampling.FieldODEFixedStepHandler` into a
         :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`.
@@ -709,9 +719,11 @@ class FieldStepNormalizer(FieldODEStepHandler[_FieldStepNormalizer__T], typing.G
         time step and non-integer ratios are all allowed).
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`,
-            :class:`~org.hipparchus.ode.sampling.FieldODEFixedStepHandler`,
-            :class:`~org.hipparchus.ode.sampling.StepNormalizerMode`, :class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`
+    
+              - :class:`~org.hipparchus.ode.sampling.FieldODEStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.FieldODEFixedStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizerMode`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`
     """
     @typing.overload
     def __init__(self, double: float, fieldODEFixedStepHandler: typing.Union[FieldODEFixedStepHandler[_FieldStepNormalizer__T], typing.Callable[[org.hipparchus.ode.FieldODEStateAndDerivative[org.hipparchus.CalculusFieldElement], bool], None]]): ...
@@ -727,7 +739,8 @@ class FieldStepNormalizer(FieldODEStepHandler[_FieldStepNormalizer__T], typing.G
 
 class StepNormalizer(ODEStepHandler):
     """
-    public class StepNormalizer extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+    public classStepNormalizer extends :class:`~org.hipparchus.ode.sampling.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
     
         This class wraps an object implementing :class:`~org.hipparchus.ode.sampling.ODEFixedStepHandler` into a
         :class:`~org.hipparchus.ode.sampling.ODEStepHandler`.
@@ -745,8 +758,11 @@ class StepNormalizer(ODEStepHandler):
         time step and non-integer ratios are all allowed).
     
         Also see:
-            :class:`~org.hipparchus.ode.sampling.ODEStepHandler`, :class:`~org.hipparchus.ode.sampling.ODEFixedStepHandler`,
-            :class:`~org.hipparchus.ode.sampling.StepNormalizerMode`, :class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`
+    
+              - :class:`~org.hipparchus.ode.sampling.ODEStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.ODEFixedStepHandler`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizerMode`
+              - :class:`~org.hipparchus.ode.sampling.StepNormalizerBounds`
     """
     @typing.overload
     def __init__(self, double: float, oDEFixedStepHandler: typing.Union[ODEFixedStepHandler, typing.Callable]): ...
diff --git a/org-stubs/hipparchus/optim/__init__.pyi b/org-stubs/hipparchus/optim/__init__.pyi
index 9c8eb3487a3e07fb66e4d21b9b342c414a574461..738a9bb782b238db2c6b84804083c5602d4957a4 100644
--- a/org-stubs/hipparchus/optim/__init__.pyi
+++ b/org-stubs/hipparchus/optim/__init__.pyi
@@ -22,7 +22,7 @@ import typing
 _BaseOptimizer__P = typing.TypeVar('_BaseOptimizer__P')  # <P>
 class BaseOptimizer(typing.Generic[_BaseOptimizer__P]):
     """
-    public abstract class BaseOptimizer<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classBaseOptimizer<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Base class for implementing optimizers. It contains the boiler-plate code for counting the number of evaluations of the
         objective function and the number of iterations of the algorithm, and storing the convergence checker. *It is not a
@@ -79,7 +79,7 @@ class BaseOptimizer(typing.Generic[_BaseOptimizer__P]):
 _ConvergenceChecker__P = typing.TypeVar('_ConvergenceChecker__P')  # <P>
 class ConvergenceChecker(typing.Generic[_ConvergenceChecker__P]):
     """
-    public interface ConvergenceChecker<P>
+    public interfaceConvergenceChecker<P>
     
         This interface specifies how to check if an optimization algorithm has converged.
     
@@ -96,8 +96,10 @@ class ConvergenceChecker(typing.Generic[_ConvergenceChecker__P]):
         at all.
     
         Also see:
-            :class:`~org.hipparchus.optim.SimplePointChecker`, :class:`~org.hipparchus.optim.SimpleValueChecker`,
-            :class:`~org.hipparchus.optim.SimpleVectorValueChecker`
+    
+              - :class:`~org.hipparchus.optim.SimplePointChecker`
+              - :class:`~org.hipparchus.optim.SimpleValueChecker`
+              - :class:`~org.hipparchus.optim.SimpleVectorValueChecker`
     """
     def converged(self, int: int, p: _ConvergenceChecker__P, p2: _ConvergenceChecker__P) -> bool:
         """
@@ -117,7 +119,8 @@ class ConvergenceChecker(typing.Generic[_ConvergenceChecker__P]):
 
 class LocalizedOptimFormats(java.lang.Enum['LocalizedOptimFormats'], org.hipparchus.exception.Localizable):
     """
-    public enum LocalizedOptimFormats extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.optim.LocalizedOptimFormats`> implements :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`
+    public enumLocalizedOptimFormats extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.optim.LocalizedOptimFormats`>
+    implements :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`
     
         Enumeration for localized messages formats used in exceptions messages.
     
@@ -138,6 +141,7 @@ class LocalizedOptimFormats(java.lang.Enum['LocalizedOptimFormats'], org.hipparc
     UNABLE_TO_PERFORM_QR_DECOMPOSITION_ON_JACOBIAN: typing.ClassVar['LocalizedOptimFormats'] = ...
     UNABLE_TO_SOLVE_SINGULAR_PROBLEM: typing.ClassVar['LocalizedOptimFormats'] = ...
     UNBOUNDED_SOLUTION: typing.ClassVar['LocalizedOptimFormats'] = ...
+    CONSTRAINTS_RANK: typing.ClassVar['LocalizedOptimFormats'] = ...
     def getLocalizedString(self, locale: java.util.Locale) -> str:
         """
         
@@ -170,14 +174,14 @@ class LocalizedOptimFormats(java.lang.Enum['LocalizedOptimFormats'], org.hipparc
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -185,15 +189,7 @@ class LocalizedOptimFormats(java.lang.Enum['LocalizedOptimFormats'], org.hipparc
     @staticmethod
     def values() -> typing.MutableSequence['LocalizedOptimFormats']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (LocalizedOptimFormats c : LocalizedOptimFormats.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -204,7 +200,7 @@ class LocalizedOptimFormats(java.lang.Enum['LocalizedOptimFormats'], org.hipparc
 
 class OptimizationData:
     """
-    public interface OptimizationData
+    public interfaceOptimizationData
     
         Marker interface. Implementations will provide functionality (optional or required) needed by the optimizers, and those
         will need to check the actual type of the arguments and perform the appropriate cast in order to access the data they
@@ -215,7 +211,7 @@ class OptimizationData:
 _OptimizationProblem__P = typing.TypeVar('_OptimizationProblem__P')  # <P>
 class OptimizationProblem(typing.Generic[_OptimizationProblem__P]):
     """
-    public interface OptimizationProblem<P>
+    public interfaceOptimizationProblem<P>
     
         Common settings for all optimization problems. Includes divergence and convergence criteria.
     """
@@ -243,13 +239,16 @@ class OptimizationProblem(typing.Generic[_OptimizationProblem__P]):
 
 class PointValuePair(org.hipparchus.util.Pair[typing.MutableSequence[float], float], java.io.Serializable):
     """
-    public class PointValuePair extends :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`<double[], :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double?is`> implements :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classPointValuePair extends :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`<double[],:class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double`>
+    implements :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class holds a point and the value of an objective function at that point.
     
         Also see:
-            :class:`~org.hipparchus.optim.PointVectorValuePair`,
-            :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.optim.PointVectorValuePair`
+              - :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], double2: float): ...
@@ -278,13 +277,16 @@ class PointValuePair(org.hipparchus.util.Pair[typing.MutableSequence[float], flo
 
 class PointVectorValuePair(org.hipparchus.util.Pair[typing.MutableSequence[float], typing.MutableSequence[float]], java.io.Serializable):
     """
-    public class PointVectorValuePair extends :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`<double[], double[]> implements :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classPointVectorValuePair extends :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`<double[],double[]>
+    implements :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class holds a point and the vectorial value of an objective function at that point.
     
         Also see:
-            :class:`~org.hipparchus.optim.PointValuePair`, :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`,
-            :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.optim.PointValuePair`
+              - :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
@@ -338,7 +340,8 @@ class PointVectorValuePair(org.hipparchus.util.Pair[typing.MutableSequence[float
 _AbstractConvergenceChecker__P = typing.TypeVar('_AbstractConvergenceChecker__P')  # <P>
 class AbstractConvergenceChecker(ConvergenceChecker[_AbstractConvergenceChecker__P], typing.Generic[_AbstractConvergenceChecker__P]):
     """
-    public abstract class AbstractConvergenceChecker<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.ConvergenceChecker`<P>
+    public abstract classAbstractConvergenceChecker<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.ConvergenceChecker`<P>
     
         Base class for all convergence checker implementations.
     """
@@ -386,7 +389,8 @@ class AbstractConvergenceChecker(ConvergenceChecker[_AbstractConvergenceChecker_
 _AbstractOptimizationProblem__P = typing.TypeVar('_AbstractOptimizationProblem__P')  # <P>
 class AbstractOptimizationProblem(OptimizationProblem[_AbstractOptimizationProblem__P], typing.Generic[_AbstractOptimizationProblem__P]):
     """
-    public abstract class AbstractOptimizationProblem<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationProblem`<P>
+    public abstract classAbstractOptimizationProblem<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationProblem`<P>
     
         Base class for implementing optimization problems. It contains the boiler-plate code for counting the number of
         evaluations of the objective function and the number of iterations of the algorithm, and storing the convergence
@@ -425,7 +429,7 @@ class AbstractOptimizationProblem(OptimizationProblem[_AbstractOptimizationProbl
 _BaseMultivariateOptimizer__P = typing.TypeVar('_BaseMultivariateOptimizer__P')  # <P>
 class BaseMultivariateOptimizer(BaseOptimizer[_BaseMultivariateOptimizer__P], typing.Generic[_BaseMultivariateOptimizer__P]):
     """
-    public abstract class BaseMultivariateOptimizer<P> extends :class:`~org.hipparchus.optim.BaseOptimizer`<P>
+    public abstract classBaseMultivariateOptimizer<P> extends :class:`~org.hipparchus.optim.BaseOptimizer`<P>
     
         Base class for implementing optimizers for multivariate functions. It contains the boiler-plate code for initial guess
         and bounds specifications. *It is not a "user" class.*
@@ -498,7 +502,8 @@ class BaseMultivariateOptimizer(BaseOptimizer[_BaseMultivariateOptimizer__P], ty
 _ConvergenceCheckerAndMultiplexer__P = typing.TypeVar('_ConvergenceCheckerAndMultiplexer__P')  # <P>
 class ConvergenceCheckerAndMultiplexer(ConvergenceChecker[_ConvergenceCheckerAndMultiplexer__P], typing.Generic[_ConvergenceCheckerAndMultiplexer__P]):
     """
-    public class ConvergenceCheckerAndMultiplexer<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.ConvergenceChecker`<P>
+    public classConvergenceCheckerAndMultiplexer<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.ConvergenceChecker`<P>
     
         Multiplexer for :class:`~org.hipparchus.optim.ConvergenceChecker`, checking *all* the checkers converged.
     
@@ -532,7 +537,8 @@ class ConvergenceCheckerAndMultiplexer(ConvergenceChecker[_ConvergenceCheckerAnd
 _ConvergenceCheckerOrMultiplexer__P = typing.TypeVar('_ConvergenceCheckerOrMultiplexer__P')  # <P>
 class ConvergenceCheckerOrMultiplexer(ConvergenceChecker[_ConvergenceCheckerOrMultiplexer__P], typing.Generic[_ConvergenceCheckerOrMultiplexer__P]):
     """
-    public class ConvergenceCheckerOrMultiplexer<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.ConvergenceChecker`<P>
+    public classConvergenceCheckerOrMultiplexer<P> extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.ConvergenceChecker`<P>
     
         Multiplexer for :class:`~org.hipparchus.optim.ConvergenceChecker`, checking *one* of the checkers converged.
     
@@ -565,7 +571,8 @@ class ConvergenceCheckerOrMultiplexer(ConvergenceChecker[_ConvergenceCheckerOrMu
 
 class InitialGuess(OptimizationData):
     """
-    public class InitialGuess extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classInitialGuess extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Starting point (first guess) of the optimization procedure.
     
@@ -586,7 +593,8 @@ class InitialGuess(OptimizationData):
 
 class MaxEval(OptimizationData):
     """
-    public class MaxEval extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classMaxEval extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Maximum number of evaluations of the function to be optimized.
     """
@@ -608,7 +616,7 @@ class MaxEval(OptimizationData):
         
             Returns:
                 a new instance suitable for allowing
-                :meth:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is` evaluations.
+                :meth:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE` evaluations.
         
         
         """
@@ -616,7 +624,8 @@ class MaxEval(OptimizationData):
 
 class MaxIter(OptimizationData):
     """
-    public class MaxIter extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classMaxIter extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Maximum number of iterations performed by an (iterative) algorithm.
     """
@@ -638,7 +647,7 @@ class MaxIter(OptimizationData):
         
             Returns:
                 a new instance suitable for allowing
-                :meth:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is` evaluations.
+                :meth:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE` evaluations.
         
         
         """
@@ -646,7 +655,8 @@ class MaxIter(OptimizationData):
 
 class SimpleBounds(OptimizationData):
     """
-    public class SimpleBounds extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classSimpleBounds extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Simple optimization constraints: lower and upper bounds. The valid range of the parameters is an interval that can be
         infinite (in one or both directions).
@@ -693,7 +703,7 @@ class SimpleBounds(OptimizationData):
 _BaseMultiStartMultivariateOptimizer__P = typing.TypeVar('_BaseMultiStartMultivariateOptimizer__P')  # <P>
 class BaseMultiStartMultivariateOptimizer(BaseMultivariateOptimizer[_BaseMultiStartMultivariateOptimizer__P], typing.Generic[_BaseMultiStartMultivariateOptimizer__P]):
     """
-    public abstract class BaseMultiStartMultivariateOptimizer<P> extends :class:`~org.hipparchus.optim.BaseMultivariateOptimizer`<P>
+    public abstract classBaseMultiStartMultivariateOptimizer<P> extends :class:`~org.hipparchus.optim.BaseMultivariateOptimizer`<P>
     
         Base class multi-start optimizer for a multivariate function.
     
@@ -782,7 +792,7 @@ class BaseMultiStartMultivariateOptimizer(BaseMultivariateOptimizer[_BaseMultiSt
 _SimplePointChecker__P = typing.TypeVar('_SimplePointChecker__P', bound=org.hipparchus.util.Pair)  # <P>
 class SimplePointChecker(AbstractConvergenceChecker[_SimplePointChecker__P], typing.Generic[_SimplePointChecker__P]):
     """
-    public class SimplePointChecker<P extends :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`<double[], ? extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`>> extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<P>
+    public classSimplePointChecker<P extends :class:`~org.hipparchus.optim.https:.www.hipparchus.org.hipparchus`<double[],? extends :class:`~org.hipparchus.optim.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`>> extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<P>
     
         Simple implementation of the :class:`~org.hipparchus.optim.ConvergenceChecker` interface using only point coordinates.
         Convergence is considered to have been reached if either the relative difference between each point coordinate are
@@ -827,7 +837,7 @@ class SimplePointChecker(AbstractConvergenceChecker[_SimplePointChecker__P], typ
 
 class SimpleValueChecker(AbstractConvergenceChecker[PointValuePair]):
     """
-    public class SimpleValueChecker extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<:class:`~org.hipparchus.optim.PointValuePair`>
+    public classSimpleValueChecker extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<:class:`~org.hipparchus.optim.PointValuePair`>
     
         Simple implementation of the :class:`~org.hipparchus.optim.ConvergenceChecker` interface using only objective function
         values. Convergence is considered to have been reached if either the relative difference between the objective function
@@ -872,7 +882,7 @@ class SimpleValueChecker(AbstractConvergenceChecker[PointValuePair]):
 
 class SimpleVectorValueChecker(AbstractConvergenceChecker[PointVectorValuePair]):
     """
-    public class SimpleVectorValueChecker extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<:class:`~org.hipparchus.optim.PointVectorValuePair`>
+    public classSimpleVectorValueChecker extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<:class:`~org.hipparchus.optim.PointVectorValuePair`>
     
         Simple implementation of the :class:`~org.hipparchus.optim.ConvergenceChecker` interface using only objective function
         values. Convergence is considered to have been reached if either the relative difference between the objective function
diff --git a/org-stubs/hipparchus/optim/linear/__init__.pyi b/org-stubs/hipparchus/optim/linear/__init__.pyi
index 546bab22f491d1c185d66b3145038d770bc79dca..154ddd015b5a883c5a9f422e40b7e04dbb0ae1ea 100644
--- a/org-stubs/hipparchus/optim/linear/__init__.pyi
+++ b/org-stubs/hipparchus/optim/linear/__init__.pyi
@@ -19,7 +19,8 @@ import typing
 
 class LinearConstraint(java.io.Serializable):
     """
-    public class LinearConstraint extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classLinearConstraint extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A linear constraint for a linear optimization problem.
     
@@ -40,7 +41,8 @@ class LinearConstraint(java.io.Serializable):
         the current point and v is the value of the constraint.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], double2: float, relationship: 'Relationship', doubleArray2: typing.Union[typing.List[float], jpype.JArray], double4: float): ...
@@ -54,8 +56,8 @@ class LinearConstraint(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -94,8 +96,8 @@ class LinearConstraint(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -103,7 +105,8 @@ class LinearConstraint(java.io.Serializable):
 
 class LinearConstraintSet(org.hipparchus.optim.OptimizationData):
     """
-    public class LinearConstraintSet extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classLinearConstraintSet extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Class that represents a set of :class:`~org.hipparchus.optim.linear.LinearConstraint`.
     """
@@ -115,7 +118,8 @@ class LinearConstraintSet(org.hipparchus.optim.OptimizationData):
 
 class LinearObjectiveFunction(org.hipparchus.analysis.MultivariateFunction, org.hipparchus.optim.OptimizationData, java.io.Serializable):
     """
-    public class LinearObjectiveFunction extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.linear.https:.www.hipparchus.org.hipparchus`, :class:`~org.hipparchus.optim.OptimizationData`, :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classLinearObjectiveFunction extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.linear.https:.www.hipparchus.org.hipparchus`, :class:`~org.hipparchus.optim.OptimizationData`, :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         An objective function for a linear optimization problem.
     
@@ -123,7 +127,8 @@ class LinearObjectiveFunction(org.hipparchus.analysis.MultivariateFunction, org.
         coefficients of the equation, the x :sub:`i` are the coordinates of the current point.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], double2: float): ...
@@ -133,8 +138,8 @@ class LinearObjectiveFunction(org.hipparchus.analysis.MultivariateFunction, org.
         """
         
             Overrides:
-                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -163,8 +168,8 @@ class LinearObjectiveFunction(org.hipparchus.analysis.MultivariateFunction, org.
         """
         
             Overrides:
-                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -200,7 +205,7 @@ class LinearObjectiveFunction(org.hipparchus.analysis.MultivariateFunction, org.
 
 class LinearOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer):
     """
-    public abstract class LinearOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
+    public abstract classLinearOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
     
         Base class for implementing linear optimizers.
     """
@@ -211,7 +216,8 @@ class LinearOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
 
 class NonNegativeConstraint(org.hipparchus.optim.OptimizationData):
     """
-    public class NonNegativeConstraint extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classNonNegativeConstraint extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         A constraint for a linear optimization problem indicating whether all variables must be restricted to non-negative
         values.
@@ -230,7 +236,8 @@ class NonNegativeConstraint(org.hipparchus.optim.OptimizationData):
 
 class PivotSelectionRule(java.lang.Enum['PivotSelectionRule'], org.hipparchus.optim.OptimizationData):
     """
-    public enum PivotSelectionRule extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.optim.linear.PivotSelectionRule`> implements :class:`~org.hipparchus.optim.OptimizationData`
+    public enumPivotSelectionRule extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.optim.linear.PivotSelectionRule`>
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Pivot selection rule to the use for a Simplex solver.
     """
@@ -248,14 +255,14 @@ class PivotSelectionRule(java.lang.Enum['PivotSelectionRule'], org.hipparchus.op
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -263,15 +270,7 @@ class PivotSelectionRule(java.lang.Enum['PivotSelectionRule'], org.hipparchus.op
     @staticmethod
     def values() -> typing.MutableSequence['PivotSelectionRule']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (PivotSelectionRule c : PivotSelectionRule.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -282,7 +281,7 @@ class PivotSelectionRule(java.lang.Enum['PivotSelectionRule'], org.hipparchus.op
 
 class Relationship(java.lang.Enum['Relationship']):
     """
-    public enum Relationship extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.optim.linear.Relationship`>
+    public enumRelationship extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.optim.linear.Relationship`>
     
         Types of relationships between two cells in a Solver :class:`~org.hipparchus.optim.linear.LinearConstraint`.
     """
@@ -303,8 +302,8 @@ class Relationship(java.lang.Enum['Relationship']):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum.html?is` in
-                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`
+                :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum.toString` in
+                class :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`
         
         
         """
@@ -321,14 +320,14 @@ class Relationship(java.lang.Enum['Relationship']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -336,15 +335,7 @@ class Relationship(java.lang.Enum['Relationship']):
     @staticmethod
     def values() -> typing.MutableSequence['Relationship']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (Relationship c : Relationship.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -355,7 +346,8 @@ class Relationship(java.lang.Enum['Relationship']):
 
 class SolutionCallback(org.hipparchus.optim.OptimizationData):
     """
-    public class SolutionCallback extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classSolutionCallback extends :class:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         A callback object that can be provided to a linear optimizer to keep track of the best solution found.
     """
@@ -385,7 +377,7 @@ class SolutionCallback(org.hipparchus.optim.OptimizationData):
 
 class SimplexSolver(LinearOptimizer):
     """
-    public class SimplexSolver extends :class:`~org.hipparchus.optim.linear.LinearOptimizer`
+    public classSimplexSolver extends :class:`~org.hipparchus.optim.linear.LinearOptimizer`
     
         Solves a linear problem using the "Two-Phase Simplex" method.
     
@@ -403,7 +395,7 @@ class SimplexSolver(LinearOptimizer):
             :meth:`~org.hipparchus.optim.linear.PivotSelectionRule.DANTZIG`
           - callback for the best solution: :class:`~org.hipparchus.optim.linear.SolutionCallback` - optional
           - maximum number of iterations: :class:`~org.hipparchus.optim.MaxIter` - optional, default:
-            :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.html?is`
+            :meth:`~org.hipparchus.optim.linear.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer.MAX_VALUE`
     
     
         **Note:** Depending on the problem definition, the default convergence criteria may be too strict, resulting in
diff --git a/org-stubs/hipparchus/optim/nonlinear/scalar/__init__.pyi b/org-stubs/hipparchus/optim/nonlinear/scalar/__init__.pyi
index c806a11774c6a58b15dd868e3f1ff4172b4295b8..9c1962b9628fd81518556b54f224cb298842c9ef 100644
--- a/org-stubs/hipparchus/optim/nonlinear/scalar/__init__.pyi
+++ b/org-stubs/hipparchus/optim/nonlinear/scalar/__init__.pyi
@@ -20,7 +20,8 @@ import typing
 
 class GoalType(java.lang.Enum['GoalType'], org.hipparchus.optim.OptimizationData):
     """
-    public enum GoalType extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.optim.nonlinear.scalar.GoalType`> implements :class:`~org.hipparchus.optim.OptimizationData`
+    public enumGoalType extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.optim.nonlinear.scalar.GoalType`>
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Goal type for an optimization problem (minimization or maximization of a scalar function.
     """
@@ -38,14 +39,14 @@ class GoalType(java.lang.Enum['GoalType'], org.hipparchus.optim.OptimizationData
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -53,15 +54,7 @@ class GoalType(java.lang.Enum['GoalType'], org.hipparchus.optim.OptimizationData
     @staticmethod
     def values() -> typing.MutableSequence['GoalType']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (GoalType c : GoalType.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -72,7 +65,8 @@ class GoalType(java.lang.Enum['GoalType'], org.hipparchus.optim.OptimizationData
 
 class LeastSquaresConverter(org.hipparchus.analysis.MultivariateFunction):
     """
-    public class LeastSquaresConverter extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
+    public classLeastSquaresConverter extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
     
         This class converts :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus` to
         :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus` when the goal is to minimize them.
@@ -95,8 +89,9 @@ class LeastSquaresConverter(org.hipparchus.analysis.MultivariateFunction):
         This class support combination of residuals with or without weights and correlations.
     
         Also see:
-            :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`,
-            :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
+    
+              - :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
+              - :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
     """
     @typing.overload
     def __init__(self, multivariateVectorFunction: typing.Union[org.hipparchus.analysis.MultivariateVectorFunction, typing.Callable], doubleArray: typing.Union[typing.List[float], jpype.JArray]): ...
@@ -117,7 +112,7 @@ class LeastSquaresConverter(org.hipparchus.analysis.MultivariateFunction):
 
 class LineSearch:
     """
-    public class LineSearch extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classLineSearch extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Class for finding the minimum of the objective function along a given direction.
     """
@@ -142,7 +137,7 @@ class LineSearch:
 
 class MultiStartMultivariateOptimizer(org.hipparchus.optim.BaseMultiStartMultivariateOptimizer[org.hipparchus.optim.PointValuePair]):
     """
-    public class MultiStartMultivariateOptimizer extends :class:`~org.hipparchus.optim.BaseMultiStartMultivariateOptimizer`<:class:`~org.hipparchus.optim.PointValuePair`>
+    public classMultiStartMultivariateOptimizer extends :class:`~org.hipparchus.optim.BaseMultiStartMultivariateOptimizer`<:class:`~org.hipparchus.optim.PointValuePair`>
     
         Multi-start optimizer. This class wraps an optimizer in order to use it several times in turn with different starting
         points (trying to avoid being trapped in a local extremum when looking for a global one).
@@ -178,7 +173,8 @@ class MultiStartMultivariateOptimizer(org.hipparchus.optim.BaseMultiStartMultiva
 
 class MultivariateFunctionMappingAdapter(org.hipparchus.analysis.MultivariateFunction):
     """
-    public class MultivariateFunctionMappingAdapter extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
+    public classMultivariateFunctionMappingAdapter extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
     
     
         Adapter for mapping bounded :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus` to
@@ -215,7 +211,8 @@ class MultivariateFunctionMappingAdapter(org.hipparchus.analysis.MultivariateFun
         differences when converted to bounded variables.
     
         Also see:
-            :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionPenaltyAdapter`
+    
+              - :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionPenaltyAdapter`
     """
     def __init__(self, multivariateFunction: typing.Union[org.hipparchus.analysis.MultivariateFunction, typing.Callable], doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
     def boundedToUnbounded(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
@@ -262,7 +259,9 @@ class MultivariateFunctionMappingAdapter(org.hipparchus.analysis.MultivariateFun
                 underlying function value
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionMappingAdapter.unboundedToBounded`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionMappingAdapter.unboundedToBounded`
+        
         
         
         """
@@ -270,7 +269,8 @@ class MultivariateFunctionMappingAdapter(org.hipparchus.analysis.MultivariateFun
 
 class MultivariateFunctionPenaltyAdapter(org.hipparchus.analysis.MultivariateFunction):
     """
-    public class MultivariateFunctionPenaltyAdapter extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
+    public classMultivariateFunctionPenaltyAdapter extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus`
     
     
         Adapter extending bounded :class:`~org.hipparchus.optim.nonlinear.scalar.https:.www.hipparchus.org.hipparchus` to an
@@ -298,7 +298,8 @@ class MultivariateFunctionPenaltyAdapter(org.hipparchus.analysis.MultivariateFun
         optimizer may converge without ever entering the range.
     
         Also see:
-            :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionMappingAdapter`
+    
+              - :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionMappingAdapter`
     """
     def __init__(self, multivariateFunction: typing.Union[org.hipparchus.analysis.MultivariateFunction, typing.Callable], doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], double3: float, doubleArray3: typing.Union[typing.List[float], jpype.JArray]): ...
     def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> float:
@@ -324,7 +325,7 @@ class MultivariateFunctionPenaltyAdapter(org.hipparchus.analysis.MultivariateFun
 
 class MultivariateOptimizer(org.hipparchus.optim.BaseMultivariateOptimizer[org.hipparchus.optim.PointValuePair]):
     """
-    public abstract class MultivariateOptimizer extends :class:`~org.hipparchus.optim.BaseMultivariateOptimizer`<:class:`~org.hipparchus.optim.PointValuePair`>
+    public abstract classMultivariateOptimizer extends :class:`~org.hipparchus.optim.BaseMultivariateOptimizer`<:class:`~org.hipparchus.optim.PointValuePair`>
     
         Base class for a multivariate scalar function optimizer.
     """
@@ -362,7 +363,8 @@ class MultivariateOptimizer(org.hipparchus.optim.BaseMultivariateOptimizer[org.h
 
 class ObjectiveFunction(org.hipparchus.optim.OptimizationData):
     """
-    public class ObjectiveFunction extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classObjectiveFunction extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Scalar function to be optimized.
     """
@@ -380,7 +382,8 @@ class ObjectiveFunction(org.hipparchus.optim.OptimizationData):
 
 class ObjectiveFunctionGradient(org.hipparchus.optim.OptimizationData):
     """
-    public class ObjectiveFunctionGradient extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classObjectiveFunctionGradient extends :class:`~org.hipparchus.optim.nonlinear.scalar.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Gradient of the scalar function to be optimized.
     """
@@ -398,7 +401,7 @@ class ObjectiveFunctionGradient(org.hipparchus.optim.OptimizationData):
 
 class GradientMultivariateOptimizer(MultivariateOptimizer):
     """
-    public abstract class GradientMultivariateOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
+    public abstract classGradientMultivariateOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
     
         Base class for implementing optimizers for multivariate scalar differentiable functions. It contains boiler-plate code
         for dealing with gradient evaluation.
diff --git a/org-stubs/hipparchus/optim/nonlinear/scalar/gradient/__init__.pyi b/org-stubs/hipparchus/optim/nonlinear/scalar/gradient/__init__.pyi
index b1cb1e650995a1196d58dca79348dd64e0ecf78c..aa80214d86f929ee89796dc11d66a306eccfb4b5 100644
--- a/org-stubs/hipparchus/optim/nonlinear/scalar/gradient/__init__.pyi
+++ b/org-stubs/hipparchus/optim/nonlinear/scalar/gradient/__init__.pyi
@@ -15,7 +15,7 @@ import typing
 
 class Preconditioner:
     """
-    public interface Preconditioner
+    public interfacePreconditioner
     
         This interface represents a preconditioner for differentiable scalar objective function optimizers.
     """
@@ -43,7 +43,7 @@ class Preconditioner:
 
 class NonLinearConjugateGradientOptimizer(org.hipparchus.optim.nonlinear.scalar.GradientMultivariateOptimizer):
     """
-    public class NonLinearConjugateGradientOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.GradientMultivariateOptimizer`
+    public classNonLinearConjugateGradientOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.GradientMultivariateOptimizer`
     
         Non-linear conjugate gradient optimizer.
     
diff --git a/org-stubs/hipparchus/optim/nonlinear/scalar/noderiv/__init__.pyi b/org-stubs/hipparchus/optim/nonlinear/scalar/noderiv/__init__.pyi
index 3c4ff7b962709d2be3310d0af74cb57f6cbf35ec..b2208688d39c26f6fa568cfb8f5f21f4dc480077 100644
--- a/org-stubs/hipparchus/optim/nonlinear/scalar/noderiv/__init__.pyi
+++ b/org-stubs/hipparchus/optim/nonlinear/scalar/noderiv/__init__.pyi
@@ -18,7 +18,8 @@ import typing
 
 class AbstractSimplex(org.hipparchus.optim.OptimizationData):
     """
-    public abstract class AbstractSimplex extends :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public abstract classAbstractSimplex extends :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         This class implements the simplex concept. It is intended to be used in conjunction with
         :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.SimplexOptimizer`.
@@ -35,7 +36,8 @@ class AbstractSimplex(org.hipparchus.optim.OptimizationData):
         create the data structure that will be acted on by the other methods of this class.
     
         Also see:
-            :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.SimplexOptimizer`
+    
+              - :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.SimplexOptimizer`
     """
     def build(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> None:
         """
@@ -99,7 +101,7 @@ class AbstractSimplex(org.hipparchus.optim.OptimizationData):
 
 class BOBYQAOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer):
     """
-    public class BOBYQAOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
+    public classBOBYQAOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
     
         Powell's BOBYQA algorithm. This implementation is translated and adapted from the Fortran version available `here
         <http://plato.asu.edu/ftp/other_software/bobyqa.zip>`. See ` this paper
@@ -119,7 +121,9 @@ class BOBYQAOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
         Minimum dimension of the problem: 2
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -127,11 +131,12 @@ class BOBYQAOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
     """
     public static final double DEFAULT_INITIAL_RADIUS
     
-        Default value for :meth:`~org.hipparchus.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer.initialTrustRegionRadius`: 10.0
-        .
+        Default value for :code:`initialTrustRegionRadius`: 10.0 .
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -139,11 +144,12 @@ class BOBYQAOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
     """
     public static final double DEFAULT_STOPPING_RADIUS
     
-        Default value for :meth:`~org.hipparchus.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer.stoppingTrustRegionRadius`:
-        1.0E-8 .
+        Default value for :code:`stoppingTrustRegionRadius`: 1.0E-8 .
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -154,7 +160,7 @@ class BOBYQAOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
 
 class CMAESOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer):
     """
-    public class CMAESOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
+    public classCMAESOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
     
         An implementation of the active Covariance Matrix Adaptation Evolution Strategy (CMA-ES) for non-linear, non-convex,
         non-smooth, global function minimization.
@@ -201,7 +207,7 @@ class CMAESOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer
 
 class PowellOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer):
     """
-    public class PowellOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
+    public classPowellOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
     
         Powell's algorithm. This code is translated and adapted from the Python version of this algorithm (as implemented in
         module :code:`optimize.py` v0.5 of *SciPy*).
@@ -215,9 +221,9 @@ class PowellOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
     
     
         Constraints are not supported: the call to :meth:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer.optimize`
-        will throw :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.https:.www.hipparchus.org.hipparchus` if bounds are
-        passed to it. In order to impose simple constraints, the objective function must be wrapped in an adapter like
-        :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionMappingAdapter` or
+        optimize} will throw :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.https:.www.hipparchus.org.hipparchus` if
+        bounds are passed to it. In order to impose simple constraints, the objective function must be wrapped in an adapter
+        like :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionMappingAdapter` or
         :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateFunctionPenaltyAdapter`.
     """
     @typing.overload
@@ -231,7 +237,7 @@ class PowellOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimize
 
 class SimplexOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer):
     """
-    public class SimplexOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
+    public classSimplexOptimizer extends :class:`~org.hipparchus.optim.nonlinear.scalar.MultivariateOptimizer`
     
         This class implements simplex-based direct search optimization.
     
@@ -309,7 +315,7 @@ class SimplexOptimizer(org.hipparchus.optim.nonlinear.scalar.MultivariateOptimiz
 
 class MultiDirectionalSimplex(AbstractSimplex):
     """
-    public class MultiDirectionalSimplex extends :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.AbstractSimplex`
+    public classMultiDirectionalSimplex extends :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.AbstractSimplex`
     
         This class implements the multi-directional direct search method.
     """
@@ -333,7 +339,7 @@ class MultiDirectionalSimplex(AbstractSimplex):
 
 class NelderMeadSimplex(AbstractSimplex):
     """
-    public class NelderMeadSimplex extends :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.AbstractSimplex`
+    public classNelderMeadSimplex extends :class:`~org.hipparchus.optim.nonlinear.scalar.noderiv.AbstractSimplex`
     
         This class implements the Nelder-Mead simplex algorithm.
     """
diff --git a/org-stubs/hipparchus/optim/nonlinear/vector/__init__.pyi b/org-stubs/hipparchus/optim/nonlinear/vector/__init__.pyi
index ccb0016c6847a2943ebca2963ca2e1a126b19772..abff5ac62d7617bd60075e3ad472b1f4a2507cb9 100644
--- a/org-stubs/hipparchus/optim/nonlinear/vector/__init__.pyi
+++ b/org-stubs/hipparchus/optim/nonlinear/vector/__init__.pyi
@@ -5,6 +5,7 @@ if sys.version_info >= (3, 8):
 else:
     from typing_extensions import Protocol
 
+import org.hipparchus.optim.nonlinear.vector.constrained
 import org.hipparchus.optim.nonlinear.vector.leastsquares
 import typing
 
@@ -12,4 +13,5 @@ import typing
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.hipparchus.optim.nonlinear.vector")``.
 
+    constrained: org.hipparchus.optim.nonlinear.vector.constrained.__module_protocol__
     leastsquares: org.hipparchus.optim.nonlinear.vector.leastsquares.__module_protocol__
diff --git a/org-stubs/hipparchus/optim/nonlinear/vector/constrained/__init__.pyi b/org-stubs/hipparchus/optim/nonlinear/vector/constrained/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..173a12ddac00e86e83a7e24144fc96cab5b3582a
--- /dev/null
+++ b/org-stubs/hipparchus/optim/nonlinear/vector/constrained/__init__.pyi
@@ -0,0 +1,2044 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import jpype
+import org.hipparchus.analysis
+import org.hipparchus.linear
+import org.hipparchus.optim
+import typing
+
+
+
+class ADMMQPConvergenceChecker(org.hipparchus.optim.ConvergenceChecker['LagrangeSolution'], org.hipparchus.optim.OptimizationData):
+    """
+    public classADMMQPConvergenceChecker extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.ConvergenceChecker`<:class:`~org.hipparchus.optim.nonlinear.vector.constrained.LagrangeSolution`>, :class:`~org.hipparchus.optim.OptimizationData`
+    
+        Convergence Checker for ADMM QP Optimizer.
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def converged(self, double: float, double2: float, double3: float, double4: float) -> bool:
+        """
+            Evaluate convergence.
+        
+            Parameters:
+                rp (double): primal residual
+                rd (double): dual residual
+                maxPrimal (double): primal vectors max
+                maxDual (double): dual vectors max
+        
+            Returns:
+                true of convergence has been reached
+        
+        
+        """
+        ...
+    @typing.overload
+    def converged(self, int: int, lagrangeSolution: 'LagrangeSolution', lagrangeSolution2: 'LagrangeSolution') -> bool:
+        """
+            Check if the optimization algorithm has converged.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.ConvergenceChecker.converged` in
+                interface :class:`~org.hipparchus.optim.ConvergenceChecker`
+        
+            Parameters:
+                i (int): Current iteration.
+                previous (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.LagrangeSolution`): Best point in the previous iteration.
+                current (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.LagrangeSolution`): Best point in the current iteration.
+        
+            Returns:
+                :code:`true` if the algorithm is considered to have converged.
+        
+        """
+        ...
+    def maxDual(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector) -> float:
+        """
+            Compute dual vectors max.
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): primal problem solution
+                y (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): dual problem solution
+        
+            Returns:
+                dual vectors max
+        
+        
+        """
+        ...
+    def maxPrimal(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector) -> float:
+        """
+            Compute primal vectors max.
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): primal problem solution
+                z (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): auxiliary variable
+        
+            Returns:
+                primal vectors max
+        
+        
+        """
+        ...
+    def residualDual(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector) -> float:
+        """
+            Compute dual residual.
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): primal problem solution
+                y (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): dual problem solution
+        
+            Returns:
+                dual residual
+        
+        
+        """
+        ...
+    def residualPrime(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector) -> float:
+        """
+            Compute primal residual.
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): primal problem solution
+                z (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): auxiliary variable
+        
+            Returns:
+                primal residual
+        
+        
+        """
+        ...
+
+class ADMMQPModifiedRuizEquilibrium:
+    """
+    public classADMMQPModifiedRuizEquilibrium extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    
+        TBD.
+    
+        Since:
+            3.1
+    """
+    def __init__(self, realMatrix: org.hipparchus.linear.RealMatrix, realMatrix2: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector): ...
+    def getScaledA(self) -> org.hipparchus.linear.RealMatrix:
+        """
+            Get scaled constraints coefficients matrix.
+        
+            Returns:
+                scaled constraints coefficients matrix
+        
+        
+        """
+        ...
+    def getScaledH(self) -> org.hipparchus.linear.RealMatrix:
+        """
+            Get scaled square matrix of weights for quadratic terms.
+        
+            Returns:
+                scaled square matrix of weights for quadratic terms
+        
+        
+        """
+        ...
+    def getScaledLUb(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Get scaled upper bound
+        
+            Parameters:
+                lb1 (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): unscaled lower bound
+        
+            Returns:
+                scaled lower bound
+        
+        
+        """
+        ...
+    def getScaledQ(self) -> org.hipparchus.linear.RealVector:
+        """
+            Get scaled vector of weights for linear terms.
+        
+            Returns:
+                scaled vector of weights for linear terms
+        
+        
+        """
+        ...
+    def normalize(self, double: float, int: int) -> None:
+        """
+            Normalize matrices.
+        
+            Parameters:
+                epsilon (double): TBD
+                maxIteration (int): TBD
+        
+        
+        """
+        ...
+    def unscaleX(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Unscale solution vector.
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): scaled solution vector
+        
+            Returns:
+                unscaled solution vector
+        
+        
+        """
+        ...
+    def unscaleY(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Unscale Y vector.
+        
+            Parameters:
+                y (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): scaled Y vector
+        
+            Returns:
+                unscaled Y vector
+        
+        
+        """
+        ...
+    def unscaleZ(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Unscale Z vector.
+        
+            Parameters:
+                z (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): scaled Z vector
+        
+            Returns:
+                unscaled Z vector
+        
+        
+        """
+        ...
+
+class ADMMQPOption(org.hipparchus.optim.OptimizationData):
+    """
+    public classADMMQPOption extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
+    
+        Container for :class:`~org.hipparchus.optim.nonlinear.vector.constrained.ADMMQPOptimizer` settings.
+    
+        Since:
+            3.1
+    """
+    DEFAULT_EPS: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_EPS
+    
+        Default Absolute and Relative Tolerance for convergence.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_EPS_INFEASIBLE: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_EPS_INFEASIBLE
+    
+        Default Absolute and Relative Tolerance for Infeasible Criteria.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_SIGMA: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_SIGMA
+    
+        Default Value of regularization term sigma for Karush–Kuhn–Tucker solver.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_ALPHA: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_ALPHA
+    
+        Default Value of Alpha filter for ADMM iteration.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_SCALING: typing.ClassVar[bool] = ...
+    """
+    public static final boolean DEFAULT_SCALING
+    
+        Default Value for Enabling Problem Scaling.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_SCALING_MAX_ITERATION: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_SCALING_MAX_ITERATION
+    
+        Default Value for the Max Iteration for the scaling.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_RHO_UPDATE: typing.ClassVar[bool] = ...
+    """
+    public static final boolean DEFAULT_RHO_UPDATE
+    
+        Default Value for adapting the weight during iterations.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_RHO_MAX: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_RHO_MAX
+    
+        Default Max Value for the Weight for ADMM iteration.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_RHO_MIN: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_RHO_MIN
+    
+        Default Min Value for the Weight for ADMM iteration.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_MAX_RHO_ITERATION: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_MAX_RHO_ITERATION
+    
+        Default Max number of weight changes.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_POLISHING: typing.ClassVar[bool] = ...
+    """
+    public static final boolean DEFAULT_POLISHING
+    
+        Default Value for enabling polishing the solution.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_POLISHING_ITERATION: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_POLISHING_ITERATION
+    
+        Default Value for Iteration of polishing Algorithm.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    def __init__(self): ...
+    def getAlpha(self) -> float:
+        """
+            Get value of alpha filter for ADMM iteration.
+        
+            Returns:
+                value of alpha filter for ADMM iteration
+        
+        
+        """
+        ...
+    def getEps(self) -> float:
+        """
+            Get absolute and Relative Tolerance for convergence.
+        
+            Returns:
+                absolute and Relative Tolerance for convergence
+        
+        
+        """
+        ...
+    def getEpsInfeasible(self) -> float:
+        """
+            Get absolute and Relative Tolerance for infeasible criteria.
+        
+            Returns:
+                absolute and Relative Tolerance for infeasible criteria
+        
+        
+        """
+        ...
+    def getMaxRhoIteration(self) -> int:
+        """
+            Get max number of weight changes.
+        
+            Returns:
+                max number of weight changes
+        
+        
+        """
+        ...
+    def getPolishIteration(self) -> int:
+        """
+            Get number of iterations of polishing algorithm.
+        
+            Returns:
+                number of iterations of polishing algorithm
+        
+        
+        """
+        ...
+    def getRhoMax(self) -> float:
+        """
+            Get max Value for the Weight for ADMM iteration.
+        
+            Returns:
+                max Value for the Weight for ADMM iteration
+        
+        
+        """
+        ...
+    def getRhoMin(self) -> float:
+        """
+            Get min Value for the Weight for ADMM iteration.
+        
+            Returns:
+                min Value for the Weight for ADMM iteration
+        
+        
+        """
+        ...
+    def getScaleMaxIteration(self) -> int:
+        """
+            Get max iteration for the scaling.
+        
+            Returns:
+                max iteration for the scaling
+        
+        
+        """
+        ...
+    def getSigma(self) -> float:
+        """
+            Get value of regularization term sigma for Karush–Kuhn–Tucker solver.
+        
+            Returns:
+                value of regularization term sigma for Karush–Kuhn–Tucker solver
+        
+        
+        """
+        ...
+    def isPolishing(self) -> bool:
+        """
+            Check if polishing is enabled.
+        
+            Returns:
+                true if polishing is enabled
+        
+        
+        """
+        ...
+    def isScaling(self) -> bool:
+        """
+            Check if scaling is enabled.
+        
+            Returns:
+                true if scaling is enabled
+        
+        
+        """
+        ...
+    def setAlpha(self, double: float) -> None:
+        """
+            Set value of alpha filter for ADMM iteration.
+        
+            Parameters:
+                alpha (double): value of alpha filter for ADMM iteration
+        
+        
+        """
+        ...
+    def setEps(self, double: float) -> None:
+        """
+            Set absolute and Relative Tolerance for convergence.
+        
+            Parameters:
+                eps (double): absolute and Relative Tolerance for convergence
+        
+        
+        """
+        ...
+    def setEpsInfeasible(self, double: float) -> None:
+        """
+            Set absolute and Relative Tolerance for infeasible criteria.
+        
+            Parameters:
+                epsInfeasible (double): absolute and Relative Tolerance for infeasible criteria
+        
+        
+        """
+        ...
+    def setMaxRhoIteration(self, int: int) -> None:
+        """
+            Set max number of weight changes.
+        
+            Parameters:
+                maxRhoIteration (int): max number of weight changes
+        
+        
+        """
+        ...
+    def setPolishing(self, boolean: bool) -> None:
+        """
+            Set polishing enabling flag.
+        
+            Parameters:
+                polishing (boolean): if true, polishing is enabled
+        
+        
+        """
+        ...
+    def setPolishingIteration(self, int: int) -> None:
+        """
+            Set number of iterations of polishing algorithm.
+        
+            Parameters:
+                polishingIteration (int): number of iterations of polishing algorithm
+        
+        
+        """
+        ...
+    def setRhoMax(self, double: float) -> None:
+        """
+            Set max Value for the Weight for ADMM iteration.
+        
+            Parameters:
+                rhoMax (double): max Value for the Weight for ADMM iteration
+        
+        
+        """
+        ...
+    def setRhoMin(self, double: float) -> None:
+        """
+            Set min Value for the Weight for ADMM iteration.
+        
+            Parameters:
+                rhoMin (double): min Value for the Weight for ADMM iteration
+        
+        
+        """
+        ...
+    def setScaleMaxIteration(self, int: int) -> None:
+        """
+            Set max iteration for the scaling.
+        
+            Parameters:
+                scaleMaxIteration (int): max iteration for the scaling
+        
+        
+        """
+        ...
+    def setScaling(self, boolean: bool) -> None:
+        """
+            Set scaling enabling flag.
+        
+            Parameters:
+                scaling (boolean): if true, scaling is enabled
+        
+        
+        """
+        ...
+    def setSigma(self, double: float) -> None:
+        """
+            Set value of regularization term sigma for Karush–Kuhn–Tucker solver.
+        
+            Parameters:
+                sigma (double): value of regularization term sigma for Karush–Kuhn–Tucker solver
+        
+        
+        """
+        ...
+    def setUpdateRho(self, boolean: bool) -> None:
+        """
+            Set weight updating flag.
+        
+            Parameters:
+                updateRho (boolean): if true, weight is updated during iterations
+        
+        
+        """
+        ...
+    def updateRho(self) -> bool:
+        """
+            Check if weight updating is enabled.
+        
+            Returns:
+                true if weight is updated during iterations
+        
+        
+        """
+        ...
+
+class ConstraintOptimizer(org.hipparchus.optim.BaseMultivariateOptimizer['LagrangeSolution']):
+    """
+    public abstract classConstraintOptimizer extends :class:`~org.hipparchus.optim.BaseMultivariateOptimizer`<:class:`~org.hipparchus.optim.nonlinear.vector.constrained.LagrangeSolution`>
+    
+        Abstract Constraint Optimizer.
+    
+        Since:
+            3.1
+    """
+    def __init__(self): ...
+    @typing.overload
+    def optimize(self) -> typing.Any: ...
+    @typing.overload
+    def optimize(self, *optimizationData: org.hipparchus.optim.OptimizationData) -> 'LagrangeSolution': ...
+
+_KarushKuhnTuckerSolver__T = typing.TypeVar('_KarushKuhnTuckerSolver__T')  # <T>
+class KarushKuhnTuckerSolver(org.hipparchus.optim.OptimizationData, typing.Generic[_KarushKuhnTuckerSolver__T]):
+    """
+    public interfaceKarushKuhnTuckerSolver<T>extends :class:`~org.hipparchus.optim.OptimizationData`
+    
+        Karush–Kuhn–Tucker Solver.
+    
+        Solve Equation:
+        \[\begin{align} |H A^{T}| & = B_1\\ |A R| & = B_2 \end{align}\]
+    
+        Since:
+            3.1
+    """
+    def iterate(self, *realVector: org.hipparchus.linear.RealVector) -> _KarushKuhnTuckerSolver__T:
+        """
+            Iterate Karush–Kuhn–Tucker equation from given list of Vector
+        
+            Parameters:
+                b (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`...): list of vectors
+        
+            Returns:
+                Tuple with the solution x,Lambda,value
+        
+        
+        """
+        ...
+    def solve(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector) -> _KarushKuhnTuckerSolver__T:
+        """
+            Solve Karush–Kuhn–Tucker equation from given right hand value.
+        
+            Parameters:
+                b1 (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): first right hand vector
+                b2 (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): second right hand vector
+        
+            Returns:
+                Tuple with the solution x,Lambda,value
+        
+        
+        """
+        ...
+
+class LagrangeSolution:
+    """
+    public classLagrangeSolution extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    
+        Container for Lagrange t-uple.
+    
+        Since:
+            3.1
+    """
+    def __init__(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, double: float): ...
+    def getLambda(self) -> org.hipparchus.linear.RealVector:
+        """
+            Returns Lambda Multiplier
+        
+            Returns:
+                X Lambda Multiplier
+        
+        
+        """
+        ...
+    def getValue(self) -> float:
+        """
+            Returns min(max) evaluated function at x
+        
+            Returns:
+                min(max) evaluated function at x
+        
+        
+        """
+        ...
+    def getX(self) -> org.hipparchus.linear.RealVector:
+        """
+            Returns X solution
+        
+            Returns:
+                X solution
+        
+        
+        """
+        ...
+
+class SQPOption(org.hipparchus.optim.OptimizationData):
+    """
+    public classSQPOption extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
+    
+        Parameter for SQP Algorithm.
+    
+        Since:
+            3.1
+    """
+    DEFAULT_CONV_CRITERIA: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_CONV_CRITERIA
+    
+        Default convergence criteria.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_EPSILON: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_EPSILON
+    
+        Default tolerance for convergence and active constraint.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_RHO: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_RHO
+    
+        Default weight for augmented QP subproblem.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_SIGMA_MAX: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_SIGMA_MAX
+    
+        Default max value admitted for additional variable in QP subproblem.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_QP_MAX_LOOP: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_QP_MAX_LOOP
+    
+        Default max iteration admitted for QP subproblem.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_MU: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_MU
+    
+        Default parameter for evaluation of Armijo condition for descend direction.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_B: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_B
+    
+        Default parameter for quadratic line search.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_USE_FUNCTION_HESSIAN: typing.ClassVar[bool] = ...
+    """
+    public static final boolean DEFAULT_USE_FUNCTION_HESSIAN
+    
+        Default flag for using BFGS update formula.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    DEFAULT_MAX_LINE_SEARCH_ITERATION: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_MAX_LINE_SEARCH_ITERATION
+    
+        Default max iteration before reset hessian.
+    
+        Also see:
+    
+              - :meth:`~constant`
+    
+    
+    
+    """
+    def __init__(self): ...
+    def getB(self) -> float:
+        """
+            Get parameter for quadratic line search.
+        
+            Returns:
+                parameter for quadratic line search
+        
+        
+        """
+        ...
+    def getConvCriteria(self) -> int:
+        """
+            Get convergence criteria.
+        
+            Returns:
+                convergence criteria
+        
+        
+        """
+        ...
+    def getEps(self) -> float:
+        """
+            Get tolerance for convergence and active constraint evaluation.
+        
+            Returns:
+                tolerance for convergence and active constraint evaluation
+        
+        
+        """
+        ...
+    def getMaxLineSearchIteration(self) -> int:
+        """
+            Get max Iteration for the line search
+        
+            Returns:
+                max Iteration for the line search
+        
+        
+        """
+        ...
+    def getMu(self) -> float:
+        """
+            Get parameter for evaluation of Armijo condition for descend direction.
+        
+            Returns:
+                parameter for evaluation of Armijo condition for descend direction
+        
+        
+        """
+        ...
+    def getQpMaxLoop(self) -> int:
+        """
+            Get max iteration admitted for QP subproblem evaluation.
+        
+            Returns:
+                max iteration admitted for QP subproblem evaluation
+        
+        
+        """
+        ...
+    def getRhoCons(self) -> float:
+        """
+            Get weight for augmented QP subproblem.
+        
+            Returns:
+                weight for augmented QP subproblem
+        
+        
+        """
+        ...
+    def getSigmaMax(self) -> float:
+        """
+            Get max value admitted for the solution of the additional variable in QP subproblem.
+        
+            Returns:
+                max value admitted for the solution of the additional variable in QP subproblem
+        
+        
+        """
+        ...
+    def setB(self, double: float) -> None:
+        """
+            Set parameter for quadratic line search.
+        
+            Parameters:
+                b (double): parameter for quadratic line search
+        
+        
+        """
+        ...
+    def setConvCriteria(self, int: int) -> None:
+        """
+            Set convergence criteria.
+        
+            Parameters:
+                convCriteria (int): convergence criteria
+        
+        
+        """
+        ...
+    def setEps(self, double: float) -> None:
+        """
+            Set tolerance for convergence and active constraint evaluation.
+        
+            Parameters:
+                eps (double): tolerance for convergence and active constraint evaluation
+        
+        
+        """
+        ...
+    def setMaxLineSearchIteration(self, int: int) -> None:
+        """
+            Set max Iteration for the line search
+        
+            Parameters:
+                maxLineSearchIteration (int): max Iteration for the line search
+        
+        
+        """
+        ...
+    def setMu(self, double: float) -> None:
+        """
+            Set parameter for evaluation of Armijo condition for descend direction.
+        
+            Parameters:
+                mu (double): parameter for evaluation of Armijo condition for descend direction
+        
+        
+        """
+        ...
+    def setQpMaxLoop(self, int: int) -> None:
+        """
+            Set max iteration admitted for QP subproblem evaluation.
+        
+            Parameters:
+                qpMaxLoop (int): max iteration admitted for QP subproblem evaluation
+        
+        
+        """
+        ...
+    def setRhoCons(self, double: float) -> None:
+        """
+            Set weight for augmented QP subproblem.
+        
+            Parameters:
+                rhoCons (double): weight for augmented QP subproblem
+        
+        
+        """
+        ...
+    def setSigmaMax(self, double: float) -> None:
+        """
+            Set max value admitted for the solution of the additional variable in QP subproblem.
+        
+            Parameters:
+                sigmaMax (double): max value admitted for the solution of the additional variable in QP subproblem
+        
+        
+        """
+        ...
+    def setUseFunHessian(self, boolean: bool) -> None:
+        """
+            Enable or Disable using direct the function Hessian.
+        
+            Parameters:
+                useFunHessian (boolean): enable or Disable using direct the function Hessian
+        
+        
+        """
+        ...
+    def useFunHessian(self) -> bool:
+        """
+            Check if using direct the function Hessian is enabled or disabled.
+        
+            Returns:
+                true if using direct the function Hessian is enabled
+        
+        
+        """
+        ...
+
+class TwiceDifferentiableFunction(org.hipparchus.analysis.MultivariateFunction):
+    """
+    public abstract classTwiceDifferentiableFunction extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`
+    
+        A MultivariateFunction that also has a defined gradient and Hessian.
+    
+        Since:
+            3.1
+    """
+    def __init__(self): ...
+    def dim(self) -> int:
+        """
+            Returns the dimensionality of the function domain. If dim() returns (n) then this function expects an n-vector as its
+            input.
+        
+            Returns:
+                the expected dimension of the function's domain
+        
+        
+        """
+        ...
+    @typing.overload
+    def gradient(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Returns the gradient of this function at (x)
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+            Returns the gradient of this function at (x)
+        
+            Parameters:
+                x (double[]): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def gradient(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.linear.RealVector: ...
+    @typing.overload
+    def hessian(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            The Hessian of this function at (x)
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this Hessian at
+        
+            Returns:
+                the Hessian of this function at (x)
+        
+            The Hessian of this function at (x)
+        
+            Parameters:
+                x (double[]): a point to evaluate this Hessian at
+        
+            Returns:
+                the Hessian of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def hessian(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.linear.RealMatrix: ...
+    @typing.overload
+    def value(self, realVector: org.hipparchus.linear.RealVector) -> float:
+        """
+            Returns the value of this function at (x)
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`
+        
+            Parameters:
+                x (double[]): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> float: ...
+
+class VectorDifferentiableFunction(org.hipparchus.analysis.MultivariateVectorFunction):
+    """
+    public interfaceVectorDifferentiableFunctionextends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`
+    
+        A MultivariateFunction that also has a defined gradient and Hessian.
+    
+        Since:
+            3.1
+    """
+    def dim(self) -> int:
+        """
+            Returns the dimensionality of the function domain. If dim() returns (n) then this function expects an n-vector as its
+            input.
+        
+            Returns:
+                the expected dimension of the function's domain
+        
+        
+        """
+        ...
+    def dimY(self) -> int:
+        """
+            Returns the dimensionality of the function eval.
+        
+            Returns:
+                the expected dimension of the function's eval
+        
+        
+        """
+        ...
+    def gradient(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.linear.RealMatrix:
+        """
+            Returns the gradient of this function at (x)
+        
+            Parameters:
+                x (double[]): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    def jacobian(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            Returns the gradient of this function at (x)
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Returns the value of this function at (x)
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`
+        
+            Parameters:
+                x (double[]): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]: ...
+
+class ADMMQPKKT(KarushKuhnTuckerSolver['ADMMQPSolution']):
+    """
+    public classADMMQPKKT extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.constrained.KarushKuhnTuckerSolver`<:class:`~org.hipparchus.optim.nonlinear.vector.constrained.ADMMQPSolution`>
+    
+        Alternative Direction Method of Multipliers Solver.
+    
+        Since:
+            3.1
+    """
+    def initialize(self, realMatrix: org.hipparchus.linear.RealMatrix, realMatrix2: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector, int: int, realVector2: org.hipparchus.linear.RealVector, realVector3: org.hipparchus.linear.RealVector, double: float, double2: float, double3: float) -> None:
+        """
+            Initialize problem
+        
+            Parameters:
+                newH (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): square matrix of weights for quadratic term
+                newA (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): constraints coefficients matrix
+                newQ (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): TBD
+                me (int): number of equality constraints
+                newLb (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): lower bound
+                newUb (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): upper bound
+                rho (double): step size
+                newSigma (double): regularization term sigma for Karush–Kuhn–Tucker solver
+                newAlpha (double): alpha filter for ADMM iteration
+        
+        
+        """
+        ...
+    def iterate(self, *realVector: org.hipparchus.linear.RealVector) -> 'ADMMQPSolution':
+        """
+            Iterate Karush–Kuhn–Tucker equation from given list of Vector
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.KarushKuhnTuckerSolver.iterate` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.KarushKuhnTuckerSolver`
+        
+            Parameters:
+                previousSol (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`...): list of vectors
+        
+            Returns:
+                Tuple with the solution x,Lambda,value
+        
+        
+        """
+        ...
+    def solve(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector) -> 'ADMMQPSolution':
+        """
+            Solve Karush–Kuhn–Tucker equation from given right hand value.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.KarushKuhnTuckerSolver.solve` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.KarushKuhnTuckerSolver`
+        
+            Parameters:
+                b1 (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): first right hand vector
+                b2 (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): second right hand vector
+        
+            Returns:
+                Tuple with the solution x,Lambda,value
+        
+        
+        """
+        ...
+    def updateSigmaRho(self, double: float, int: int, double2: float) -> None:
+        """
+            Update steps
+        
+            Parameters:
+                newSigma (double): new regularization term sigma for Karush–Kuhn–Tucker solver
+                me (int): number of equality constraints
+                rho (double): new step size
+        
+        
+        """
+        ...
+
+class ADMMQPSolution(LagrangeSolution):
+    """
+    public classADMMQPSolution extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.LagrangeSolution`
+    
+        Internal Solution for ADMM QP Optimizer.
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def __init__(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector): ...
+    @typing.overload
+    def __init__(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, double: float): ...
+    @typing.overload
+    def __init__(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, realVector3: org.hipparchus.linear.RealVector, realVector4: org.hipparchus.linear.RealVector): ...
+    @typing.overload
+    def __init__(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, realVector3: org.hipparchus.linear.RealVector, realVector4: org.hipparchus.linear.RealVector, double: float): ...
+    def getV(self) -> org.hipparchus.linear.RealVector:
+        """
+            Returns V tilde auxiliary Variable
+        
+            Returns:
+                V tilde auxiliary Variable
+        
+        
+        """
+        ...
+    def getZ(self) -> org.hipparchus.linear.RealVector:
+        """
+            Returns Z auxiliary Variable
+        
+            Returns:
+                Z auxiliary Variable
+        
+        
+        """
+        ...
+
+class AbstractSQPOptimizer(ConstraintOptimizer):
+    """
+    public abstract classAbstractSQPOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer`
+    
+        Abstract class for Sequential Quadratic Programming solvers
+    
+        Since:
+            3.1
+    """
+    def getEqConstraint(self) -> 'EqualityConstraint':
+        """
+            Getter for equality constraint.
+        
+            Returns:
+                equality constraint
+        
+        
+        """
+        ...
+    def getIqConstraint(self) -> 'InequalityConstraint':
+        """
+            Getter for inequality constraint.
+        
+            Returns:
+                inequality constraint
+        
+        
+        """
+        ...
+    def getObj(self) -> TwiceDifferentiableFunction:
+        """
+            Getter for objective function.
+        
+            Returns:
+                objective function
+        
+        
+        """
+        ...
+    def getSettings(self) -> SQPOption:
+        """
+            Getter for settings.
+        
+            Returns:
+                settings
+        
+        
+        """
+        ...
+    @typing.overload
+    def optimize(self) -> typing.Any: ...
+    @typing.overload
+    def optimize(self, *optimizationData: org.hipparchus.optim.OptimizationData) -> LagrangeSolution:
+        """
+            Description copied from class: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer.optimize`
+            Stores data and performs the optimization.
+        
+            The list of parameters is open-ended so that sub-classes can extend it with arguments specific to their concrete
+            implementations.
+        
+            When the method is called multiple times, instance data is overwritten only when actually present in the list of
+            arguments: when not specified, data set in a previous call is retained (and thus is optional in subsequent calls).
+        
+            Important note: Subclasses *must* override :meth:`~org.hipparchus.optim.BaseOptimizer.parseOptimizationData` if they
+            need to register their own options; but then, they *must* also call :code:`super.parseOptimizationData(optData)` within
+            that method.
+        
+            Overrides:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer.optimize` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer`
+        
+            Parameters:
+                optData (:class:`~org.hipparchus.optim.OptimizationData`...): Optimization data. In addition to those documented in :meth:`~org.hipparchus.optim.BaseOptimizer.parseOptimizationData`,
+                    this method will register the following data:
+        
+                      - :class:`~org.hipparchus.optim.InitialGuess`
+                      - :class:`~org.hipparchus.optim.SimpleBounds`
+        
+        
+            Returns:
+                a point/value pair that satisfies the convergence criteria.
+        
+        
+        """
+        ...
+
+class Constraint(VectorDifferentiableFunction, org.hipparchus.optim.OptimizationData):
+    """
+    public interfaceConstraintextends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`, :class:`~org.hipparchus.optim.OptimizationData`
+    
+        Generic constraint.
+    
+        Since:
+            3.1
+    """
+    def getLowerBound(self) -> org.hipparchus.linear.RealVector:
+        """
+            Get Lower Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`.
+        
+            Returns:
+                Lower Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`
+        
+        
+        """
+        ...
+    def getUpperBound(self) -> org.hipparchus.linear.RealVector:
+        """
+            Get Upper Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`.
+        
+            Returns:
+                Upper Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`
+        
+        
+        """
+        ...
+    def overshoot(self, realVector: org.hipparchus.linear.RealVector) -> float:
+        """
+            Check how much a point overshoots the constraint.
+        
+            The overshoots is zero if the point fulfills the constraint, and positive if the
+            :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value` of the constraint is on
+            the wrong side of :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.getLowerBound` or
+            :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.getUpperBound` boundaries.
+        
+            Parameters:
+                y (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): constraint value (y = :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`(x))
+        
+            Returns:
+                L¹-norm of constraint overshoot
+        
+        
+        """
+        ...
+
+class QPOptimizer(ConstraintOptimizer):
+    """
+    public classQPOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer`
+    
+        Quadratic programming Optimizater.
+    
+        Since:
+            3.1
+    """
+    def __init__(self): ...
+
+class QuadraticFunction(TwiceDifferentiableFunction):
+    """
+    public classQuadraticFunction extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction`
+    
+        Given P, Q, d, implements \(\frac{1}{2}x^T P X + Q^T x + d\). The gradient is P x + Q^T, and the Hessian is P
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def __init__(self, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], double3: float): ...
+    @typing.overload
+    def __init__(self, realMatrix: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector, double: float): ...
+    def dim(self) -> int:
+        """
+            Returns the dimensionality of the function domain. If dim() returns (n) then this function expects an n-vector as its
+            input.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction.dim` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction`
+        
+            Returns:
+                the expected dimension of the function's domain
+        
+        
+        """
+        ...
+    def getD(self) -> float:
+        """
+            Get constant term.
+        
+            Returns:
+                constant term
+        
+        
+        """
+        ...
+    def getP(self) -> org.hipparchus.linear.RealMatrix:
+        """
+            Get square matrix of weights for quadratic terms.
+        
+            Returns:
+                square matrix of weights for quadratic terms
+        
+        
+        """
+        ...
+    def getQ(self) -> org.hipparchus.linear.RealVector:
+        """
+            Get vector of weights for linear terms.
+        
+            Returns:
+                vector of weights for linear terms
+        
+        
+        """
+        ...
+    @typing.overload
+    def gradient(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector:
+        """
+            Returns the gradient of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction.gradient` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def gradient(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.linear.RealVector: ...
+    @typing.overload
+    def hessian(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            The Hessian of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction.hessian` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this Hessian at
+        
+            Returns:
+                the Hessian of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def hessian(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.linear.RealMatrix: ...
+    @typing.overload
+    def value(self, realVector: org.hipparchus.linear.RealVector) -> float:
+        """
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction.value` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.TwiceDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> float: ...
+
+class ADMMQPOptimizer(QPOptimizer):
+    """
+    public classADMMQPOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.QPOptimizer`
+    
+        Alternating Direction Method of Multipliers Quadratic Programming Optimizer. \[ min \frac{1}{2} X^T Q X + G X a\\ A X =
+        B_1\\ B X \ge B_2\\ l_b \le C X \le u_b \] Algorithm based on paper:"An Operator Splitting Solver for Quadratic
+        Programs(Bartolomeo Stellato, Goran Banjac, Paul Goulart, Alberto Bemporad, Stephen Boyd,February 13 2020)"
+    
+        Since:
+            3.1
+    """
+    def __init__(self): ...
+    def doOptimize(self) -> LagrangeSolution:
+        """
+            Performs the bulk of the optimization algorithm.
+        
+            Overrides:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.QPOptimizer.doOptimize` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.QPOptimizer`
+        
+            Returns:
+                the point/value pair giving the optimal value of the objective function.
+        
+        
+        """
+        ...
+    def getConvergenceChecker(self) -> org.hipparchus.optim.ConvergenceChecker[LagrangeSolution]: ...
+    def isConverged(self) -> bool:
+        """
+            Check if convergence has been reached.
+        
+            Returns:
+                true if convergence has been reached
+        
+        
+        """
+        ...
+    @typing.overload
+    def optimize(self) -> typing.Any: ...
+    @typing.overload
+    def optimize(self, *optimizationData: org.hipparchus.optim.OptimizationData) -> LagrangeSolution:
+        """
+            Stores data and performs the optimization.
+        
+            The list of parameters is open-ended so that sub-classes can extend it with arguments specific to their concrete
+            implementations.
+        
+            When the method is called multiple times, instance data is overwritten only when actually present in the list of
+            arguments: when not specified, data set in a previous call is retained (and thus is optional in subsequent calls).
+        
+            Important note: Subclasses *must* override :meth:`~org.hipparchus.optim.BaseOptimizer.parseOptimizationData` if they
+            need to register their own options; but then, they *must* also call :code:`super.parseOptimizationData(optData)` within
+            that method.
+        
+            Overrides:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer.optimize` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.constrained.ConstraintOptimizer`
+        
+            Parameters:
+                optData (:class:`~org.hipparchus.optim.OptimizationData`...): Optimization data. In addition to those documented in :meth:`~org.hipparchus.optim.BaseOptimizer.parseOptimizationData`,
+                    this method will register the following data:
+        
+                      - :class:`~org.hipparchus.optim.InitialGuess`
+                      - :class:`~org.hipparchus.optim.SimpleBounds`
+        
+        
+            Returns:
+                a point/value pair that satisfies the convergence criteria.
+        
+        
+        """
+        ...
+
+class BoundedConstraint(Constraint):
+    """
+    public abstract classBoundedConstraint extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint`
+    
+        Constraint with lower and upper bounds: \(l \le f(x) \le u\).
+    
+        Since:
+            3.1
+    """
+    def __init__(self, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector): ...
+    def dimY(self) -> int:
+        """
+            Returns the dimensionality of the function eval.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.dimY` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Returns:
+                the expected dimension of the function's eval
+        
+        
+        """
+        ...
+    def getLowerBound(self) -> org.hipparchus.linear.RealVector:
+        """
+            Get Lower Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.getLowerBound` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint`
+        
+            Returns:
+                Lower Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`
+        
+        
+        """
+        ...
+    def getUpperBound(self) -> org.hipparchus.linear.RealVector:
+        """
+            Get Upper Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.getUpperBound` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint`
+        
+            Returns:
+                Upper Bound for :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`
+        
+        
+        """
+        ...
+    def overshoot(self, realVector: org.hipparchus.linear.RealVector) -> float:
+        """
+            Check how much a point overshoots the constraint.
+        
+            The overshoots is zero if the point fulfills the constraint, and positive if the
+            :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value` of the constraint is on
+            the wrong side of :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.getLowerBound` or
+            :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.getUpperBound` boundaries.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint.overshoot` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.Constraint`
+        
+            Parameters:
+                y (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): constraint value (y = :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`(x))
+        
+            Returns:
+                L¹-norm of constraint overshoot
+        
+        
+        """
+        ...
+
+class SQPOptimizerGM(AbstractSQPOptimizer):
+    def __init__(self): ...
+    def doOptimize(self) -> LagrangeSolution: ...
+
+class SQPOptimizerS(AbstractSQPOptimizer):
+    def __init__(self): ...
+    def doOptimize(self) -> LagrangeSolution: ...
+
+class EqualityConstraint(BoundedConstraint):
+    """
+    public abstract classEqualityConstraint extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.BoundedConstraint`
+    
+        Equality Constraint.
+    
+        Since:
+            3.1
+    """
+    def __init__(self, realVector: org.hipparchus.linear.RealVector): ...
+
+class InequalityConstraint(BoundedConstraint):
+    """
+    public abstract classInequalityConstraint extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.BoundedConstraint`
+    
+        Inequality Constraint with lower bound only: \(l \le f(x)\).
+    
+        Since:
+            3.1
+    """
+    def __init__(self, realVector: org.hipparchus.linear.RealVector): ...
+
+class LinearBoundedConstraint(BoundedConstraint, org.hipparchus.optim.OptimizationData):
+    """
+    public classLinearBoundedConstraint extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.BoundedConstraint`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
+    
+        A set of linear inequality constraints expressed as ub>Ax>lb.
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def __init__(self, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], doubleArray3: typing.Union[typing.List[float], jpype.JArray]): ...
+    @typing.overload
+    def __init__(self, realMatrix: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector): ...
+    def dim(self) -> int:
+        """
+            Returns the dimensionality of the function domain. If dim() returns (n) then this function expects an n-vector as its
+            input.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.dim` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Returns:
+                the expected dimension of the function's domain
+        
+        
+        """
+        ...
+    def jacobian(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            Returns the gradient of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.jacobian` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
+        """
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (double[]): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector: ...
+
+class LinearEqualityConstraint(EqualityConstraint, org.hipparchus.optim.OptimizationData):
+    """
+    public classLinearEqualityConstraint extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.EqualityConstraint`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
+    
+        A set of linear equality constraints given as Ax = b.
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def __init__(self, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
+    @typing.overload
+    def __init__(self, realMatrix: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector): ...
+    def dim(self) -> int:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.dim`
+            Returns the dimensionality of the function domain. If dim() returns (n) then this function expects an n-vector as its
+            input.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.dim` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Returns:
+                the expected dimension of the function's domain
+        
+        
+        """
+        ...
+    def getA(self) -> org.hipparchus.linear.RealMatrix:
+        """
+            Get the matrix of linear weights.
+        
+            Returns:
+                matrix of linear weights
+        
+        
+        """
+        ...
+    def jacobian(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.jacobian`
+            Returns the gradient of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.jacobian` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector: ...
+
+class LinearInequalityConstraint(InequalityConstraint, org.hipparchus.optim.OptimizationData):
+    """
+    public classLinearInequalityConstraint extends :class:`~org.hipparchus.optim.nonlinear.vector.constrained.InequalityConstraint`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
+    
+        Set of linear inequality constraints expressed as \( A x \gt B\).
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def __init__(self, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
+    @typing.overload
+    def __init__(self, realMatrix: org.hipparchus.linear.RealMatrix, realVector: org.hipparchus.linear.RealVector): ...
+    def dim(self) -> int:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.dim`
+            Returns the dimensionality of the function domain. If dim() returns (n) then this function expects an n-vector as its
+            input.
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.dim` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Returns:
+                the expected dimension of the function's domain
+        
+        
+        """
+        ...
+    def jacobian(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.jacobian`
+            Returns the gradient of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.jacobian` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this gradient at
+        
+            Returns:
+                the gradient of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
+        """
+            Description copied from
+            interface: :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value`
+            Returns the value of this function at (x)
+        
+            Specified by:
+                :meth:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction.value` in
+                interface :class:`~org.hipparchus.optim.nonlinear.vector.constrained.VectorDifferentiableFunction`
+        
+            Parameters:
+                x (:class:`~org.hipparchus.optim.nonlinear.vector.constrained.https:.www.hipparchus.org.hipparchus`): a point to evaluate this function at.
+        
+            Returns:
+                the value of this function at (x)
+        
+        
+        """
+        ...
+    @typing.overload
+    def value(self, realVector: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealVector: ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.hipparchus.optim.nonlinear.vector.constrained")``.
+
+    ADMMQPConvergenceChecker: typing.Type[ADMMQPConvergenceChecker]
+    ADMMQPKKT: typing.Type[ADMMQPKKT]
+    ADMMQPModifiedRuizEquilibrium: typing.Type[ADMMQPModifiedRuizEquilibrium]
+    ADMMQPOptimizer: typing.Type[ADMMQPOptimizer]
+    ADMMQPOption: typing.Type[ADMMQPOption]
+    ADMMQPSolution: typing.Type[ADMMQPSolution]
+    AbstractSQPOptimizer: typing.Type[AbstractSQPOptimizer]
+    BoundedConstraint: typing.Type[BoundedConstraint]
+    Constraint: typing.Type[Constraint]
+    ConstraintOptimizer: typing.Type[ConstraintOptimizer]
+    EqualityConstraint: typing.Type[EqualityConstraint]
+    InequalityConstraint: typing.Type[InequalityConstraint]
+    KarushKuhnTuckerSolver: typing.Type[KarushKuhnTuckerSolver]
+    LagrangeSolution: typing.Type[LagrangeSolution]
+    LinearBoundedConstraint: typing.Type[LinearBoundedConstraint]
+    LinearEqualityConstraint: typing.Type[LinearEqualityConstraint]
+    LinearInequalityConstraint: typing.Type[LinearInequalityConstraint]
+    QPOptimizer: typing.Type[QPOptimizer]
+    QuadraticFunction: typing.Type[QuadraticFunction]
+    SQPOptimizerGM: typing.Type[SQPOptimizerGM]
+    SQPOptimizerS: typing.Type[SQPOptimizerS]
+    SQPOption: typing.Type[SQPOption]
+    TwiceDifferentiableFunction: typing.Type[TwiceDifferentiableFunction]
+    VectorDifferentiableFunction: typing.Type[VectorDifferentiableFunction]
diff --git a/org-stubs/hipparchus/optim/nonlinear/vector/leastsquares/__init__.pyi b/org-stubs/hipparchus/optim/nonlinear/vector/leastsquares/__init__.pyi
index c61a948bb7e609be2015b783b5227d4a8811f4cd..e3a270c9505f24adccaba09060da4e3a4e08d8cb 100644
--- a/org-stubs/hipparchus/optim/nonlinear/vector/leastsquares/__init__.pyi
+++ b/org-stubs/hipparchus/optim/nonlinear/vector/leastsquares/__init__.pyi
@@ -16,7 +16,8 @@ import typing
 
 class EvaluationRmsChecker(org.hipparchus.optim.ConvergenceChecker['LeastSquaresProblem.Evaluation']):
     """
-    public class EvaluationRmsChecker extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.ConvergenceChecker`<:class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation`>
+    public classEvaluationRmsChecker extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.ConvergenceChecker`<:class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation`>
     
         Check if an optimization has converged based on the change in computed RMS.
     """
@@ -46,12 +47,13 @@ class EvaluationRmsChecker(org.hipparchus.optim.ConvergenceChecker['LeastSquares
 
 class LeastSquaresBuilder:
     """
-    public class LeastSquaresBuilder extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classLeastSquaresBuilder extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         A mutable builder for :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem`s.
     
         Also see:
-            :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory`
+    
+              - :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory`
     """
     def __init__(self): ...
     def build(self) -> 'LeastSquaresProblem':
@@ -211,7 +213,7 @@ class LeastSquaresBuilder:
 
 class LeastSquaresFactory:
     """
-    public class LeastSquaresFactory extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classLeastSquaresFactory extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         A Factory for creating :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem`s.
     """
@@ -298,7 +300,7 @@ class LeastSquaresFactory:
 
 class LeastSquaresProblem(org.hipparchus.optim.OptimizationProblem['LeastSquaresProblem.Evaluation']):
     """
-    public interface LeastSquaresProblem extends :class:`~org.hipparchus.optim.OptimizationProblem`<:class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation`>
+    public interfaceLeastSquaresProblemextends :class:`~org.hipparchus.optim.OptimizationProblem`<:class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation`>
     
         The data necessary to define a non-linear least squares problem.
     
@@ -311,9 +313,10 @@ class LeastSquaresProblem(org.hipparchus.optim.OptimizationProblem['LeastSquares
         :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory`.
     
         Also see:
-            :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresBuilder`,
-            :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory`,
-            :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresAdapter`
+    
+              - :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresBuilder`
+              - :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresFactory`
+              - :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresAdapter`
     """
     def evaluate(self, realVector: org.hipparchus.linear.RealVector) -> 'LeastSquaresProblem.Evaluation':
         """
@@ -374,7 +377,7 @@ class LeastSquaresProblem(org.hipparchus.optim.OptimizationProblem['LeastSquares
 
 class MultivariateJacobianFunction:
     """
-    public interface MultivariateJacobianFunction
+    public interfaceMultivariateJacobianFunction
     
         A interface for functions that compute a vector of values and can compute their derivatives (Jacobian).
     """
@@ -382,7 +385,7 @@ class MultivariateJacobianFunction:
 
 class ParameterValidator:
     """
-    public interface ParameterValidator
+    public interfaceParameterValidator
     
         Interface for validating a set of model parameters.
     """
@@ -402,7 +405,8 @@ class ParameterValidator:
 
 class AbstractEvaluation(LeastSquaresProblem.Evaluation):
     """
-    public abstract class AbstractEvaluation extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation`
+    public abstract classAbstractEvaluation extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation`
     
         An implementation of :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation` that is
         designed for extension. All of the methods implemented here use the methods that are left unimplemented.
@@ -420,8 +424,10 @@ class AbstractEvaluation(LeastSquaresProblem.Evaluation):
                 the cost.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getResiduals`,
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getCost`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getResiduals`
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getCost`
+        
         
         
         """
@@ -439,8 +445,10 @@ class AbstractEvaluation(LeastSquaresProblem.Evaluation):
                 the cost.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getResiduals`,
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getChiSquare`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getResiduals`
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem.Evaluation.getChiSquare`
+        
         
         
         """
@@ -522,7 +530,8 @@ class AbstractEvaluation(LeastSquaresProblem.Evaluation):
 
 class LeastSquaresAdapter(LeastSquaresProblem):
     """
-    public class LeastSquaresAdapter extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem`
+    public classLeastSquaresAdapter extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem`
     
         An adapter that delegates to another implementation of
         :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresProblem`.
@@ -619,7 +628,7 @@ class LeastSquaresAdapter(LeastSquaresProblem):
 
 class LeastSquaresOptimizer:
     """
-    public interface LeastSquaresOptimizer
+    public interfaceLeastSquaresOptimizer
     
         An algorithm that can be applied to a non-linear least squares problem.
     """
@@ -644,7 +653,7 @@ class LeastSquaresOptimizer:
 
 class ValueAndJacobianFunction(MultivariateJacobianFunction):
     """
-    public interface ValueAndJacobianFunction extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.MultivariateJacobianFunction`
+    public interfaceValueAndJacobianFunctionextends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.MultivariateJacobianFunction`
     
         A interface for functions that compute a vector of values and can compute their derivatives (Jacobian).
     """
@@ -677,7 +686,8 @@ class ValueAndJacobianFunction(MultivariateJacobianFunction):
 
 class GaussNewtonOptimizer(LeastSquaresOptimizer):
     """
-    public class GaussNewtonOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer`
+    public classGaussNewtonOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer`
     
         Gauss-Newton least-squares solver.
     
@@ -733,8 +743,8 @@ class GaussNewtonOptimizer(LeastSquaresOptimizer):
         
             Overrides:
                 
-                meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -770,7 +780,8 @@ class GaussNewtonOptimizer(LeastSquaresOptimizer):
 
 class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
     """
-    public class LevenbergMarquardtOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer`
+    public classLevenbergMarquardtOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer`
     
         This class solves a least-squares problem using the Levenberg-Marquardt algorithm.
     
@@ -831,7 +842,9 @@ class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
                 the parameter's value.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withCostRelativeTolerance`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withCostRelativeTolerance`
+        
         
         
         """
@@ -844,7 +857,9 @@ class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
                 the parameter's value.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withInitialStepBoundFactor`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withInitialStepBoundFactor`
+        
         
         
         """
@@ -857,7 +872,9 @@ class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
                 the parameter's value.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withOrthoTolerance`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withOrthoTolerance`
+        
         
         
         """
@@ -870,7 +887,9 @@ class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
                 the parameter's value.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withParameterRelativeTolerance`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withParameterRelativeTolerance`
+        
         
         
         """
@@ -883,7 +902,9 @@ class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
                 the parameter's value.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withRankingThreshold`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer.withRankingThreshold`
+        
         
         
         """
@@ -977,7 +998,8 @@ class LevenbergMarquardtOptimizer(LeastSquaresOptimizer):
 
 class SequentialGaussNewtonOptimizer(LeastSquaresOptimizer):
     """
-    public class SequentialGaussNewtonOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer`
+    public classSequentialGaussNewtonOptimizer extends :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer`
     
         Sequential Gauss-Newton least-squares solver.
     
@@ -1040,8 +1062,8 @@ class SequentialGaussNewtonOptimizer(LeastSquaresOptimizer):
         
             Overrides:
                 
-                meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.optim.nonlinear.vector.leastsquares.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1068,7 +1090,9 @@ class SequentialGaussNewtonOptimizer(LeastSquaresOptimizer):
                 a new instance.
         
             Also see:
-                :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.SequentialGaussNewtonOptimizer.withAPrioriData`
+        
+                  - :meth:`~org.hipparchus.optim.nonlinear.vector.leastsquares.SequentialGaussNewtonOptimizer.withAPrioriData`
+        
         
             Configure from a priori state and covariance.
         
diff --git a/org-stubs/hipparchus/optim/univariate/__init__.pyi b/org-stubs/hipparchus/optim/univariate/__init__.pyi
index 47a0a3861c1c83dcaf2560835f42bb5db75b8f46..67600fe88a31299dbdcaf661b7e418f7da806c76 100644
--- a/org-stubs/hipparchus/optim/univariate/__init__.pyi
+++ b/org-stubs/hipparchus/optim/univariate/__init__.pyi
@@ -16,7 +16,7 @@ import typing
 
 class BracketFinder:
     """
-    public class BracketFinder extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBracketFinder extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Provide an interval that brackets a local optimum of a function. This code is based on a Python implementation (from
         *SciPy*, module :code:`optimize.py` v0.5).
@@ -73,7 +73,9 @@ class BracketFinder:
                 the higher bound of the bracket
         
             Also see:
-                :meth:`~org.hipparchus.optim.univariate.BracketFinder.getFHi`
+        
+                  - :meth:`~org.hipparchus.optim.univariate.BracketFinder.getFHi`
+        
         
         
         """
@@ -86,7 +88,9 @@ class BracketFinder:
                 the lower bound of the bracket
         
             Also see:
-                :meth:`~org.hipparchus.optim.univariate.BracketFinder.getFLo`
+        
+                  - :meth:`~org.hipparchus.optim.univariate.BracketFinder.getFLo`
+        
         
         
         """
@@ -109,7 +113,9 @@ class BracketFinder:
                 a point in the middle of the bracket
         
             Also see:
-                :meth:`~org.hipparchus.optim.univariate.BracketFinder.getFMid`
+        
+                  - :meth:`~org.hipparchus.optim.univariate.BracketFinder.getFMid`
+        
         
         
         """
@@ -133,7 +139,8 @@ class BracketFinder:
 
 class SearchInterval(org.hipparchus.optim.OptimizationData):
     """
-    public class SearchInterval extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classSearchInterval extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Search interval and (optional) start value.
     
@@ -177,7 +184,7 @@ class SearchInterval(org.hipparchus.optim.OptimizationData):
 
 class SimpleUnivariateValueChecker(org.hipparchus.optim.AbstractConvergenceChecker['UnivariatePointValuePair']):
     """
-    public class SimpleUnivariateValueChecker extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<:class:`~org.hipparchus.optim.univariate.UnivariatePointValuePair`>
+    public classSimpleUnivariateValueChecker extends :class:`~org.hipparchus.optim.AbstractConvergenceChecker`<:class:`~org.hipparchus.optim.univariate.UnivariatePointValuePair`>
     
         Simple implementation of the :class:`~org.hipparchus.optim.ConvergenceChecker` interface that uses only objective
         function values. Convergence is considered to have been reached if either the relative difference between the objective
@@ -223,7 +230,8 @@ class SimpleUnivariateValueChecker(org.hipparchus.optim.AbstractConvergenceCheck
 
 class UnivariateObjectiveFunction(org.hipparchus.optim.OptimizationData):
     """
-    public class UnivariateObjectiveFunction extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.OptimizationData`
+    public classUnivariateObjectiveFunction extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.OptimizationData`
     
         Scalar function to be optimized.
     """
@@ -241,7 +249,7 @@ class UnivariateObjectiveFunction(org.hipparchus.optim.OptimizationData):
 
 class UnivariateOptimizer(org.hipparchus.optim.BaseOptimizer['UnivariatePointValuePair']):
     """
-    public abstract class UnivariateOptimizer extends :class:`~org.hipparchus.optim.BaseOptimizer`<:class:`~org.hipparchus.optim.univariate.UnivariatePointValuePair`>
+    public abstract classUnivariateOptimizer extends :class:`~org.hipparchus.optim.BaseOptimizer`<:class:`~org.hipparchus.optim.univariate.UnivariatePointValuePair`>
     
         Base class for a univariate scalar function optimizer.
     """
@@ -292,12 +300,14 @@ class UnivariateOptimizer(org.hipparchus.optim.BaseOptimizer['UnivariatePointVal
 
 class UnivariatePointValuePair(java.io.Serializable):
     """
-    public class UnivariatePointValuePair extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classUnivariatePointValuePair extends :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.optim.univariate.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class holds a point and the value of an objective function at this point. This is a simple immutable container.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float): ...
     def getPoint(self) -> float:
@@ -323,7 +333,7 @@ class UnivariatePointValuePair(java.io.Serializable):
 
 class BrentOptimizer(UnivariateOptimizer):
     """
-    public class BrentOptimizer extends :class:`~org.hipparchus.optim.univariate.UnivariateOptimizer`
+    public classBrentOptimizer extends :class:`~org.hipparchus.optim.univariate.UnivariateOptimizer`
     
         For a function defined on some interval :code:`(lo, hi)`, this class finds an approximation :code:`x` to the point at
         which the function attains its minimum. It implements Richard Brent's algorithm (from his book "Algorithms for
@@ -343,7 +353,7 @@ class BrentOptimizer(UnivariateOptimizer):
 
 class MultiStartUnivariateOptimizer(UnivariateOptimizer):
     """
-    public class MultiStartUnivariateOptimizer extends :class:`~org.hipparchus.optim.univariate.UnivariateOptimizer`
+    public classMultiStartUnivariateOptimizer extends :class:`~org.hipparchus.optim.univariate.UnivariateOptimizer`
     
         Special implementation of the :class:`~org.hipparchus.optim.univariate.UnivariateOptimizer` interface adding multi-start
         features to an existing optimizer.
diff --git a/org-stubs/hipparchus/random/__init__.pyi b/org-stubs/hipparchus/random/__init__.pyi
index a00d9184eb9b8afc0798d662b294f3d08f3705c2..50a9ba8db0d41ff0eab19ecad0d43446463c34ad 100644
--- a/org-stubs/hipparchus/random/__init__.pyi
+++ b/org-stubs/hipparchus/random/__init__.pyi
@@ -15,9 +15,53 @@ import typing
 
 
 
+class GaussMarkovGenerator:
+    """
+    public classGaussMarkovGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    
+        This class is a Gauss-Markov order 1 autoregressive process generator for scalars.
+    
+        Since:
+            3.1
+    """
+    def __init__(self, double: float, double2: float, randomGenerator: 'RandomGenerator'): ...
+    def getStationarySigma(self) -> float:
+        """
+            Get the standard deviation of the stationary process.
+        
+            Returns:
+                standard deviation of the stationary process
+        
+        
+        """
+        ...
+    def getTau(self) -> float:
+        """
+            Get the correlation time.
+        
+            Returns:
+                correlation time
+        
+        
+        """
+        ...
+    def next(self, double: float) -> float:
+        """
+            Generate next step in the autoregressive process.
+        
+            Parameters:
+                deltaT (double): time step since previous estimate (unused at first call)
+        
+            Returns:
+                a random scalar obeying autoregressive model
+        
+        
+        """
+        ...
+
 class NormalizedRandomGenerator:
     """
-    public interface NormalizedRandomGenerator
+    public interfaceNormalizedRandomGenerator
     
         This interface represent a normalized random generator for scalars. Normalized generator provide null mean and unit
         standard deviation scalars.
@@ -38,7 +82,7 @@ class NormalizedRandomGenerator:
 
 class RandomGenerator:
     """
-    public interface RandomGenerator
+    public interfaceRandomGenerator
     
         Interface for generators of random number sequences.
     """
@@ -140,7 +184,7 @@ class RandomGenerator:
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -169,7 +213,7 @@ class RandomGenerator:
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -208,7 +252,7 @@ class RandomGenerator:
 
 class RandomVectorGenerator:
     """
-    public interface RandomVectorGenerator
+    public interfaceRandomVectorGenerator
     
         This interface represents a random generator for whole vectors.
     """
@@ -225,7 +269,8 @@ class RandomVectorGenerator:
 
 class CorrelatedRandomVectorGenerator(RandomVectorGenerator):
     """
-    public class CorrelatedRandomVectorGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomVectorGenerator`
+    public classCorrelatedRandomVectorGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomVectorGenerator`
     
         A :class:`~org.hipparchus.random.RandomVectorGenerator` that generates vectors with with correlated components.
     
@@ -272,7 +317,9 @@ class CorrelatedRandomVectorGenerator(RandomVectorGenerator):
                 rank of the square matrix.
         
             Also see:
-                :meth:`~org.hipparchus.random.CorrelatedRandomVectorGenerator.getRootMatrix`
+        
+                  - :meth:`~org.hipparchus.random.CorrelatedRandomVectorGenerator.getRootMatrix`
+        
         
         
         """
@@ -286,7 +333,9 @@ class CorrelatedRandomVectorGenerator(RandomVectorGenerator):
                 root of the square matrix
         
             Also see:
-                :meth:`~org.hipparchus.random.CorrelatedRandomVectorGenerator.getRank`
+        
+                  - :meth:`~org.hipparchus.random.CorrelatedRandomVectorGenerator.getRank`
+        
         
         
         """
@@ -309,7 +358,8 @@ class CorrelatedRandomVectorGenerator(RandomVectorGenerator):
 
 class GaussianRandomGenerator(NormalizedRandomGenerator):
     """
-    public class GaussianRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.NormalizedRandomGenerator`
+    public classGaussianRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.NormalizedRandomGenerator`
     
         This class is a gaussian normalized random generator for scalars.
     
@@ -333,7 +383,8 @@ class GaussianRandomGenerator(NormalizedRandomGenerator):
 
 class HaltonSequenceGenerator(RandomVectorGenerator):
     """
-    public class HaltonSequenceGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomVectorGenerator`
+    public classHaltonSequenceGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomVectorGenerator`
     
         Implementation of a Halton sequence.
     
@@ -341,12 +392,11 @@ class HaltonSequenceGenerator(RandomVectorGenerator):
     
         .. code-block: java
         
-        
-           H(n) = d_0 / b + d_1 / b^2 .... d_j / b^j+1
-        
-           with
-        
-           n = d_j * b^j-1 + ... d_1 * b + d_0 * b^0
+           H(n) = d_0 / b + d_1 / b^2 .... d_j / b^j+1
+        
+           with
+        
+           n = d_j * b^j-1 + ... d_1 * b + d_0 * b^0
          
         For higher dimensions, subsequent prime numbers are used as base, e.g. { 2, 3, 5 } for a Halton sequence in R^3.
     
@@ -362,8 +412,9 @@ class HaltonSequenceGenerator(RandomVectorGenerator):
     
     
         Also see:
-            `Halton sequence (Wikipedia) <http://en.wikipedia.org/wiki/Halton_sequence>`,
-            :class:`~org.hipparchus.random.https:.lirias.kuleuven.be.bitstream.123456789.131168.1.mcm2005_bartv.pdf`
+    
+              - `Halton sequence (Wikipedia) <http://en.wikipedia.org/wiki/Halton_sequence>`
+              - :class:`~org.hipparchus.random.https:.lirias.kuleuven.be.bitstream.123456789.131168.1.mcm2005_bartv.pdf`
     """
     @typing.overload
     def __init__(self, int: int): ...
@@ -398,25 +449,30 @@ class HaltonSequenceGenerator(RandomVectorGenerator):
 
 class RandomAdaptor(java.util.Random, RandomGenerator):
     """
-    public class RandomAdaptor extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is` implements :class:`~org.hipparchus.random.RandomGenerator`
+    public classRandomAdaptor extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
+    implements :class:`~org.hipparchus.random.RandomGenerator`
     
-        Extension of :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is` wrapping a
+        Extension of :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random` wrapping a
         :class:`~org.hipparchus.random.RandomGenerator`.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, randomGenerator: RandomGenerator): ...
     def nextBoolean(self) -> bool:
         """
             Returns the next pseudorandom, uniformly distributed :code:`boolean` value from this random number generator's sequence.
         
+            Specified by:
+                :code:`nextBoolean` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextBoolean` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextBoolean` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Returns:
                 the next pseudorandom, uniformly distributed :code:`boolean` value from this random number generator's sequence
@@ -430,12 +486,15 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
             Generates random bytes and places them into a user-supplied byte array. The number of random bytes produced is equal to
             the length of the byte array.
         
+            Specified by:
+                :code:`nextBytes` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextBytes` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextBytes` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Parameters:
                 bytes (byte[]): the non-null byte array in which to put the random bytes
@@ -458,17 +517,25 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
         
         """
         ...
+    @typing.overload
+    def nextDouble(self, double: float) -> float: ...
+    @typing.overload
+    def nextDouble(self, double: float, double2: float) -> float: ...
+    @typing.overload
     def nextDouble(self) -> float:
         """
             Returns the next pseudorandom, uniformly distributed :code:`double` value between :code:`0.0` and :code:`1.0` from this
             random number generator's sequence.
         
+            Specified by:
+                :code:`nextDouble` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextDouble` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextDouble` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Returns:
                 the next pseudorandom, uniformly distributed :code:`double` value between :code:`0.0` and :code:`1.0` from this random
@@ -477,17 +544,25 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
         
         """
         ...
+    @typing.overload
+    def nextFloat(self, float: float) -> float: ...
+    @typing.overload
+    def nextFloat(self, float: float, float2: float) -> float: ...
+    @typing.overload
     def nextFloat(self) -> float:
         """
             Returns the next pseudorandom, uniformly distributed :code:`float` value between :code:`0.0` and :code:`1.0` from this
             random number generator's sequence.
         
+            Specified by:
+                :code:`nextFloat` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextFloat` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextFloat` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Returns:
                 the next pseudorandom, uniformly distributed :code:`float` value between :code:`0.0` and :code:`1.0` from this random
@@ -496,18 +571,24 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
         
         """
         ...
+    @typing.overload
+    def nextGaussian(self, double: float, double2: float) -> float: ...
+    @typing.overload
     def nextGaussian(self) -> float:
         """
             Returns the next pseudorandom, Gaussian ("normally") distributed :code:`double` value with mean :code:`0.0` and standard
             deviation :code:`1.0` from this random number generator's sequence.
         
+            Specified by:
+                :code:`nextGaussian` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextGaussian` in
                 interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextGaussian` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Returns:
                 the next pseudorandom, Gaussian ("normally") distributed :code:`double` value with mean :code:`0.0` and standard
@@ -517,17 +598,22 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
         """
         ...
     @typing.overload
+    def nextInt(self, int: int, int2: int) -> int: ...
+    @typing.overload
     def nextInt(self) -> int:
         """
             Returns the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence. All
             2 :sup:`32` possible :code:`int` values should be produced with (approximately) equal probability.
         
+            Specified by:
+                :code:`nextInt` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextInt` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextInt` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
@@ -540,12 +626,15 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
         
+            Specified by:
+                :code:`nextInt` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextInt` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextInt` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Parameters:
                 n (int): the bound on the random number to be returned. Must be positive.
@@ -554,23 +643,28 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
         ...
     @typing.overload
+    def nextLong(self, long: int, long2: int) -> int: ...
+    @typing.overload
     def nextLong(self) -> int:
         """
             Returns the next pseudorandom, uniformly distributed :code:`long` value from this random number generator's sequence.
             All 2 :sup:`64` possible :code:`long` values should be produced with (approximately) equal probability.
         
+            Specified by:
+                :code:`nextLong` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextLong` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.nextLong` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Returns:
                 the next pseudorandom, uniformly distributed :code:`long` value from this random number generator's sequence
@@ -583,6 +677,9 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
         
+            Specified by:
+                :code:`nextLong` in interface :code:`java.util.random.RandomGenerator`
+        
             Specified by:
                 :meth:`~org.hipparchus.random.RandomGenerator.nextLong` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
@@ -640,8 +737,8 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
                 :meth:`~org.hipparchus.random.RandomGenerator.setSeed` in interface :class:`~org.hipparchus.random.RandomGenerator`
         
             Overrides:
-                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.html?is` in
-                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is`
+                :meth:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random.setSeed` in
+                class :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random`
         
             Parameters:
                 seed (long): the seed value
@@ -656,7 +753,8 @@ class RandomAdaptor(java.util.Random, RandomGenerator):
 
 class SobolSequenceGenerator(RandomVectorGenerator):
     """
-    public class SobolSequenceGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomVectorGenerator`
+    public classSobolSequenceGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomVectorGenerator`
     
         Implementation of a Sobol sequence.
     
@@ -673,8 +771,9 @@ class SobolSequenceGenerator(RandomVectorGenerator):
     
     
         Also see:
-            `Sobol sequence (Wikipedia) <http://en.wikipedia.org/wiki/Sobol_sequence>`, `Sobol sequence direction numbers
-            <http://web.maths.unsw.edu.au/~fkuo/sobol/>`
+    
+              - `Sobol sequence (Wikipedia) <http://en.wikipedia.org/wiki/Sobol_sequence>`
+              - `Sobol sequence direction numbers <http://web.maths.unsw.edu.au/~fkuo/sobol/>`
     """
     @typing.overload
     def __init__(self, int: int): ...
@@ -709,7 +808,8 @@ class SobolSequenceGenerator(RandomVectorGenerator):
 
 class StableRandomGenerator(NormalizedRandomGenerator):
     """
-    public class StableRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.NormalizedRandomGenerator`
+    public classStableRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.NormalizedRandomGenerator`
     
     
         This class provides a stable normalized random generator. It samples from a stable distribution with location parameter
@@ -736,7 +836,8 @@ class StableRandomGenerator(NormalizedRandomGenerator):
 
 class SynchronizedRandomGenerator(RandomGenerator):
     """
-    public class SynchronizedRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomGenerator`
+    public classSynchronizedRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomGenerator`
     
         Any :class:`~org.hipparchus.random.RandomGenerator` implementation can be thread-safe if it is used through an instance
         of this class. This is achieved by enclosing calls to the methods of the actual generator inside the overridden
@@ -940,7 +1041,8 @@ class SynchronizedRandomGenerator(RandomGenerator):
 
 class UncorrelatedRandomVectorGenerator(RandomVectorGenerator):
     """
-    public class UncorrelatedRandomVectorGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomVectorGenerator`
+    public classUncorrelatedRandomVectorGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomVectorGenerator`
     
         A :class:`~org.hipparchus.random.RandomVectorGenerator` that generates vectors with uncorrelated components.
     
@@ -968,7 +1070,8 @@ class UncorrelatedRandomVectorGenerator(RandomVectorGenerator):
 
 class UniformRandomGenerator(NormalizedRandomGenerator):
     """
-    public class UniformRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.NormalizedRandomGenerator`
+    public classUniformRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.NormalizedRandomGenerator`
     
         This class implements a normalized uniform random generator.
     
@@ -995,7 +1098,8 @@ class UniformRandomGenerator(NormalizedRandomGenerator):
 
 class UnitSphereRandomVectorGenerator(RandomVectorGenerator):
     """
-    public class UnitSphereRandomVectorGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomVectorGenerator`
+    public classUnitSphereRandomVectorGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomVectorGenerator`
     
         Generate random vectors isotropically located on the surface of a sphere.
     """
@@ -1020,7 +1124,8 @@ class UnitSphereRandomVectorGenerator(RandomVectorGenerator):
 
 class AbstractWell(org.hipparchus.random.IntRandomGenerator, java.io.Serializable):
     """
-    public abstract class AbstractWell extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public abstract classAbstractWell extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This abstract class implements the WELL class of pseudo-random number generator from François Panneton, Pierre L'Ecuyer
         and Makoto Matsumoto.
@@ -1032,7 +1137,9 @@ class AbstractWell(org.hipparchus.random.IntRandomGenerator, java.io.Serializabl
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     def nextInt(self) -> int:
         """
@@ -1043,7 +1150,7 @@ class AbstractWell(org.hipparchus.random.IntRandomGenerator, java.io.Serializabl
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1058,7 +1165,7 @@ class AbstractWell(org.hipparchus.random.IntRandomGenerator, java.io.Serializabl
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -1102,7 +1209,8 @@ class AbstractWell(org.hipparchus.random.IntRandomGenerator, java.io.Serializabl
 
 class ISAACRandom(org.hipparchus.random.IntRandomGenerator, java.io.Serializable):
     """
-    public class ISAACRandom extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classISAACRandom extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A fast cryptographic pseudo-random number generator.
     
@@ -1114,8 +1222,9 @@ class ISAACRandom(org.hipparchus.random.IntRandomGenerator, java.io.Serializable
         This code is based (with minor changes and improvements) on the original implementation of the algorithm by Bob Jenkins.
     
         Also see:
-            ` ISAAC: a fast cryptographic pseudo-random number generator <http://burtleburtle.net/bob/rand/isaacafa.html>`,
-            :meth:`~serialized`
+    
+              - ` ISAAC: a fast cryptographic pseudo-random number generator <http://burtleburtle.net/bob/rand/isaacafa.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1135,7 +1244,7 @@ class ISAACRandom(org.hipparchus.random.IntRandomGenerator, java.io.Serializable
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1150,7 +1259,7 @@ class ISAACRandom(org.hipparchus.random.IntRandomGenerator, java.io.Serializable
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -1193,13 +1302,15 @@ class ISAACRandom(org.hipparchus.random.IntRandomGenerator, java.io.Serializable
 
 class JDKRandomGenerator(org.hipparchus.random.IntRandomGenerator, java.io.Serializable):
     """
-    public class JDKRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classJDKRandomGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A :class:`~org.hipparchus.random.RandomGenerator` adapter that delegates the random number generation to the standard
-        :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random?is` class.
+        :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.util.Random` class.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1231,7 +1342,7 @@ class JDKRandomGenerator(org.hipparchus.random.IntRandomGenerator, java.io.Seria
             Parameters:
                 bytes (byte[]): the non-null byte array in which to put the random bytes
         
-        public void nextBytes (byte[] bytes, int start, int len)
+        public void nextBytes(byte[] bytes, int start, int len)
         
             Generates random bytes and places them into a user-supplied byte array.
         
@@ -1333,7 +1444,7 @@ class JDKRandomGenerator(org.hipparchus.random.IntRandomGenerator, java.io.Seria
             Returns:
                 the next pseudorandom, uniformly distributed :code:`long` value from this random number generator's sequence
         
-        public long nextLong (long n)
+        public long nextLong(long n)
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1393,7 +1504,8 @@ class JDKRandomGenerator(org.hipparchus.random.IntRandomGenerator, java.io.Seria
 
 class MersenneTwister(org.hipparchus.random.IntRandomGenerator, java.io.Serializable):
     """
-    public class MersenneTwister extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classMersenneTwister extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         This class implements a powerful pseudo-random number generator developed by Makoto Matsumoto and Takuji Nishimura
         during 1996-1997.
@@ -1435,7 +1547,8 @@ class MersenneTwister(org.hipparchus.random.IntRandomGenerator, java.io.Serializ
             THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1457,7 +1570,7 @@ class MersenneTwister(org.hipparchus.random.IntRandomGenerator, java.io.Serializ
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1472,7 +1585,7 @@ class MersenneTwister(org.hipparchus.random.IntRandomGenerator, java.io.Serializ
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -1519,12 +1632,14 @@ class MersenneTwister(org.hipparchus.random.IntRandomGenerator, java.io.Serializ
 
 class RandomDataGenerator(org.hipparchus.random.ForwardingRandomGenerator, RandomGenerator, java.io.Serializable):
     """
-    public class RandomDataGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.random.RandomGenerator`, :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classRandomDataGenerator extends :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.random.RandomGenerator`, :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A class for generating random data.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1648,7 +1763,7 @@ class RandomDataGenerator(org.hipparchus.random.ForwardingRandomGenerator, Rando
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n)
+        public int nextInt(int n)
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1788,7 +1903,7 @@ class RandomDataGenerator(org.hipparchus.random.ForwardingRandomGenerator, Rando
 
 class Well1024a(AbstractWell):
     """
-    public class Well1024a extends :class:`~org.hipparchus.random.AbstractWell`
+    public classWell1024a extends :class:`~org.hipparchus.random.AbstractWell`
     
         This class implements the WELL1024a pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto
         Matsumoto.
@@ -1799,7 +1914,9 @@ class Well1024a(AbstractWell):
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1821,7 +1938,7 @@ class Well1024a(AbstractWell):
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1836,7 +1953,7 @@ class Well1024a(AbstractWell):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -1844,7 +1961,7 @@ class Well1024a(AbstractWell):
 
 class Well19937a(AbstractWell):
     """
-    public class Well19937a extends :class:`~org.hipparchus.random.AbstractWell`
+    public classWell19937a extends :class:`~org.hipparchus.random.AbstractWell`
     
         This class implements the WELL19937a pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto
         Matsumoto.
@@ -1855,7 +1972,9 @@ class Well19937a(AbstractWell):
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1877,7 +1996,7 @@ class Well19937a(AbstractWell):
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1892,7 +2011,7 @@ class Well19937a(AbstractWell):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -1900,7 +2019,7 @@ class Well19937a(AbstractWell):
 
 class Well19937c(AbstractWell):
     """
-    public class Well19937c extends :class:`~org.hipparchus.random.AbstractWell`
+    public classWell19937c extends :class:`~org.hipparchus.random.AbstractWell`
     
         This class implements the WELL19937c pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto
         Matsumoto.
@@ -1911,7 +2030,9 @@ class Well19937c(AbstractWell):
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1933,7 +2054,7 @@ class Well19937c(AbstractWell):
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -1948,7 +2069,7 @@ class Well19937c(AbstractWell):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -1956,7 +2077,7 @@ class Well19937c(AbstractWell):
 
 class Well44497a(AbstractWell):
     """
-    public class Well44497a extends :class:`~org.hipparchus.random.AbstractWell`
+    public classWell44497a extends :class:`~org.hipparchus.random.AbstractWell`
     
         This class implements the WELL44497a pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto
         Matsumoto.
@@ -1967,7 +2088,9 @@ class Well44497a(AbstractWell):
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1989,7 +2112,7 @@ class Well44497a(AbstractWell):
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -2004,7 +2127,7 @@ class Well44497a(AbstractWell):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -2012,7 +2135,7 @@ class Well44497a(AbstractWell):
 
 class Well44497b(AbstractWell):
     """
-    public class Well44497b extends :class:`~org.hipparchus.random.AbstractWell`
+    public classWell44497b extends :class:`~org.hipparchus.random.AbstractWell`
     
         This class implements the WELL44497b pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto
         Matsumoto.
@@ -2023,7 +2146,9 @@ class Well44497b(AbstractWell):
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -2045,7 +2170,7 @@ class Well44497b(AbstractWell):
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -2060,7 +2185,7 @@ class Well44497b(AbstractWell):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -2068,7 +2193,7 @@ class Well44497b(AbstractWell):
 
 class Well512a(AbstractWell):
     """
-    public class Well512a extends :class:`~org.hipparchus.random.AbstractWell`
+    public classWell512a extends :class:`~org.hipparchus.random.AbstractWell`
     
         This class implements the WELL512a pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto
         Matsumoto.
@@ -2079,7 +2204,9 @@ class Well512a(AbstractWell):
         <http://www.iro.umontreal.ca/~lecuyer/myftp/papers/wellrng-errata.txt>`.
     
         Also see:
-            `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`, :meth:`~serialized`
+    
+              - `WELL Random number generator <http://www.iro.umontreal.ca/~panneton/WELLRNG.html>`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -2101,7 +2228,7 @@ class Well512a(AbstractWell):
             Returns:
                 the next pseudorandom, uniformly distributed :code:`int` value from this random number generator's sequence
         
-        public int nextInt (int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`
+        public int nextInt(int n) throws :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`
         
             Returns a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and the specified value
             (exclusive), drawn from this random number generator's sequence.
@@ -2116,7 +2243,7 @@ class Well512a(AbstractWell):
                 a pseudorandom, uniformly distributed :code:`int` value between 0 (inclusive) and n (exclusive).
         
             Raises:
-                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if n is not positive.
+                :class:`~org.hipparchus.random.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if n is not positive.
         
         
         """
@@ -2133,6 +2260,7 @@ class __module_protocol__(Protocol):
     AbstractWell: typing.Type[AbstractWell]
     CorrelatedRandomVectorGenerator: typing.Type[CorrelatedRandomVectorGenerator]
     ForwardingRandomGenerator: typing.Type[ForwardingRandomGenerator]
+    GaussMarkovGenerator: typing.Type[GaussMarkovGenerator]
     GaussianRandomGenerator: typing.Type[GaussianRandomGenerator]
     HaltonSequenceGenerator: typing.Type[HaltonSequenceGenerator]
     ISAACRandom: typing.Type[ISAACRandom]
diff --git a/org-stubs/hipparchus/special/__init__.pyi b/org-stubs/hipparchus/special/__init__.pyi
index 2622d153d7b928194dbb14031ad3a70412d6b45b..c4727735fc2cb5192877dea90eff9c855dbdaf03 100644
--- a/org-stubs/hipparchus/special/__init__.pyi
+++ b/org-stubs/hipparchus/special/__init__.pyi
@@ -15,7 +15,8 @@ import typing
 
 class BesselJ(org.hipparchus.analysis.UnivariateFunction):
     """
-    public class BesselJ extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.analysis.UnivariateFunction`
+    public classBesselJ extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.analysis.UnivariateFunction`
     
         This class provides computation methods related to Bessel functions of the first kind. Detailed descriptions of these
         functions are available in `Wikipedia <http://en.wikipedia.org/wiki/Bessel_function>`, `Abramowitz and Stegun
@@ -70,7 +71,7 @@ class BesselJ(org.hipparchus.analysis.UnivariateFunction):
 
 class Beta:
     """
-    public class Beta extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBeta extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
     
         This is a utility class that provides computation methods related to the Beta family of functions.
@@ -186,7 +187,7 @@ class Beta:
 
 class Erf:
     """
-    public class Erf extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classErf extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This is a utility class that provides computation methods related to the error functions.
     """
@@ -214,7 +215,9 @@ class Erf:
                 :class:`~org.hipparchus.exception.MathIllegalStateException`: if the algorithm fails to converge.
         
             Also see:
-                :meth:`~org.hipparchus.special.Gamma.regularizedGammaP`
+        
+                  - :meth:`~org.hipparchus.special.Gamma.regularizedGammaP`
+        
         
             Returns the difference between erf(x1) and erf(x2).
         
@@ -254,7 +257,9 @@ class Erf:
                 :class:`~org.hipparchus.exception.MathIllegalStateException`: if the algorithm fails to converge.
         
             Also see:
-                :meth:`~org.hipparchus.special.Gamma.regularizedGammaP`
+        
+                  - :meth:`~org.hipparchus.special.Gamma.regularizedGammaP`
+        
         
             Returns the difference between erf(x1) and erf(x2).
         
@@ -337,7 +342,9 @@ class Erf:
                 :class:`~org.hipparchus.exception.MathIllegalStateException`: if the algorithm fails to converge.
         
             Also see:
-                :meth:`~org.hipparchus.special.Gamma.regularizedGammaQ`
+        
+                  - :meth:`~org.hipparchus.special.Gamma.regularizedGammaQ`
+        
         
         """
         ...
@@ -364,7 +371,9 @@ class Erf:
                 :class:`~org.hipparchus.exception.MathIllegalStateException`: if the algorithm fails to converge.
         
             Also see:
-                :meth:`~org.hipparchus.special.Gamma.regularizedGammaQ`
+        
+                  - :meth:`~org.hipparchus.special.Gamma.regularizedGammaQ`
+        
         
         
         """
@@ -402,7 +411,7 @@ class Erf:
 
 class Gamma:
     """
-    public class Gamma extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classGamma extends :class:`~org.hipparchus.special.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
     
         This is a utility class that provides computation methods related to the Γ (Gamma) family of functions.
@@ -429,7 +438,9 @@ class Gamma:
         `Euler-Mascheroni constant <http://en.wikipedia.org/wiki/Euler-Mascheroni_constant>`
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -440,7 +451,9 @@ class Gamma:
         The value of the :code:`g` constant in the Lanczos approximation, see :meth:`~org.hipparchus.special.Gamma.lanczos`.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -468,8 +481,10 @@ class Gamma:
                 digamma(x) to within 10-8 relative or absolute error whichever is smaller.
         
             Also see:
-                `Digamma <http://en.wikipedia.org/wiki/Digamma_function>`, `Bernardo's original article
-                <http://www.uv.es/~bernardo/1976AppStatist.pdf>`
+        
+                  - `Digamma <http://en.wikipedia.org/wiki/Digamma_function>`
+                  - `Bernardo's original article <http://www.uv.es/~bernardo/1976AppStatist.pdf>`
+        
         
         """
         ...
@@ -496,8 +511,10 @@ class Gamma:
                 digamma(x) to within 10-8 relative or absolute error whichever is smaller.
         
             Also see:
-                `Digamma <http://en.wikipedia.org/wiki/Digamma_function>`, `Bernardo's original article
-                <http://www.uv.es/~bernardo/1976AppStatist.pdf>`
+        
+                  - `Digamma <http://en.wikipedia.org/wiki/Digamma_function>`
+                  - `Bernardo's original article <http://www.uv.es/~bernardo/1976AppStatist.pdf>`
+        
         
         
         """
@@ -591,9 +608,11 @@ class Gamma:
                 The Lanczos approximation.
         
             Also see:
-                `Lanczos Approximation <http://mathworld.wolfram.com/LanczosApproximation.html>` equations (1) through (5), and Paul
-                Godfrey's `Note on the computation of the convergent Lanczos complex Gamma approximation
-                <http://my.fit.edu/~gabdo/gamma.txt>`
+        
+                  - `Lanczos Approximation <http://mathworld.wolfram.com/LanczosApproximation.html>` equations (1) through (5), and Paul
+                    Godfrey's `Note on the computation of the convergent Lanczos complex Gamma approximation
+                    <http://my.fit.edu/~gabdo/gamma.txt>`
+        
         
         """
         ...
@@ -613,9 +632,11 @@ class Gamma:
                 The Lanczos approximation.
         
             Also see:
-                `Lanczos Approximation <http://mathworld.wolfram.com/LanczosApproximation.html>` equations (1) through (5), and Paul
-                Godfrey's `Note on the computation of the convergent Lanczos complex Gamma approximation
-                <http://my.fit.edu/~gabdo/gamma.txt>`
+        
+                  - `Lanczos Approximation <http://mathworld.wolfram.com/LanczosApproximation.html>` equations (1) through (5), and Paul
+                    Godfrey's `Note on the computation of the convergent Lanczos complex Gamma approximation
+                    <http://my.fit.edu/~gabdo/gamma.txt>`
+        
         
         
         """
@@ -871,7 +892,10 @@ class Gamma:
                 trigamma(x) to within 10-8 relative or absolute error whichever is smaller
         
             Also see:
-                `Trigamma <http://en.wikipedia.org/wiki/Trigamma_function>`, :meth:`~org.hipparchus.special.Gamma.digamma`
+        
+                  - `Trigamma <http://en.wikipedia.org/wiki/Trigamma_function>`
+                  - :meth:`~org.hipparchus.special.Gamma.digamma`
+        
         
         """
         ...
@@ -888,7 +912,10 @@ class Gamma:
                 trigamma(x) to within 10-8 relative or absolute error whichever is smaller
         
             Also see:
-                `Trigamma <http://en.wikipedia.org/wiki/Trigamma_function>`, :meth:`~org.hipparchus.special.Gamma.digamma`
+        
+                  - `Trigamma <http://en.wikipedia.org/wiki/Trigamma_function>`
+                  - :meth:`~org.hipparchus.special.Gamma.digamma`
+        
         
         
         """
diff --git a/org-stubs/hipparchus/special/elliptic/carlson/__init__.pyi b/org-stubs/hipparchus/special/elliptic/carlson/__init__.pyi
index c9b845d76f8d6f767c5ff22c124dfb77c2ec8532..2afc91750c54655120047dd40e03a4127ef07b21 100644
--- a/org-stubs/hipparchus/special/elliptic/carlson/__init__.pyi
+++ b/org-stubs/hipparchus/special/elliptic/carlson/__init__.pyi
@@ -13,7 +13,7 @@ import typing
 
 class CarlsonEllipticIntegral:
     """
-    public class CarlsonEllipticIntegral extends :class:`~org.hipparchus.special.elliptic.carlson.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCarlsonEllipticIntegral extends :class:`~org.hipparchus.special.elliptic.carlson.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Elliptic integrals in Carlson symmetric form.
     
diff --git a/org-stubs/hipparchus/special/elliptic/jacobi/__init__.pyi b/org-stubs/hipparchus/special/elliptic/jacobi/__init__.pyi
index b663384a184878baeec78f28176911f8837313a7..9114a12f60b66f41c8d847717a670e2834cc3124 100644
--- a/org-stubs/hipparchus/special/elliptic/jacobi/__init__.pyi
+++ b/org-stubs/hipparchus/special/elliptic/jacobi/__init__.pyi
@@ -13,7 +13,7 @@ import typing
 
 class CopolarC:
     """
-    public class CopolarC extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCopolarC extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point c in Glaisher’s Notation.
     
@@ -56,7 +56,7 @@ class CopolarC:
 
 class CopolarD:
     """
-    public class CopolarD extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCopolarD extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point d in Glaisher’s Notation.
     
@@ -99,7 +99,7 @@ class CopolarD:
 
 class CopolarN:
     """
-    public class CopolarN extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCopolarN extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point n in Glaisher’s Notation.
     
@@ -142,7 +142,7 @@ class CopolarN:
 
 class CopolarS:
     """
-    public class CopolarS extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCopolarS extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point s in Glaisher’s Notation.
     
@@ -186,7 +186,7 @@ class CopolarS:
 _FieldCopolarC__T = typing.TypeVar('_FieldCopolarC__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldCopolarC(typing.Generic[_FieldCopolarC__T]):
     """
-    public class FieldCopolarC<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldCopolarC<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point c in Glaisher’s Notation.
     
@@ -230,7 +230,7 @@ class FieldCopolarC(typing.Generic[_FieldCopolarC__T]):
 _FieldCopolarD__T = typing.TypeVar('_FieldCopolarD__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldCopolarD(typing.Generic[_FieldCopolarD__T]):
     """
-    public class FieldCopolarD<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldCopolarD<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point d in Glaisher’s Notation.
     
@@ -274,7 +274,7 @@ class FieldCopolarD(typing.Generic[_FieldCopolarD__T]):
 _FieldCopolarN__T = typing.TypeVar('_FieldCopolarN__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldCopolarN(typing.Generic[_FieldCopolarN__T]):
     """
-    public class FieldCopolarN<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldCopolarN<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point n in Glaisher’s Notation.
     
@@ -318,7 +318,7 @@ class FieldCopolarN(typing.Generic[_FieldCopolarN__T]):
 _FieldCopolarS__T = typing.TypeVar('_FieldCopolarS__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldCopolarS(typing.Generic[_FieldCopolarS__T]):
     """
-    public class FieldCopolarS<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldCopolarS<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Copolar trio with pole at point s in Glaisher’s Notation.
     
@@ -362,7 +362,7 @@ class FieldCopolarS(typing.Generic[_FieldCopolarS__T]):
 _FieldJacobiElliptic__T = typing.TypeVar('_FieldJacobiElliptic__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldJacobiElliptic(typing.Generic[_FieldJacobiElliptic__T]):
     """
-    public abstract class FieldJacobiElliptic<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classFieldJacobiElliptic<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Computation of Jacobi elliptic functions. The Jacobi elliptic functions are related to elliptic integrals.
     
@@ -759,7 +759,7 @@ class FieldJacobiElliptic(typing.Generic[_FieldJacobiElliptic__T]):
 _FieldJacobiTheta__T = typing.TypeVar('_FieldJacobiTheta__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldJacobiTheta(typing.Generic[_FieldJacobiTheta__T]):
     """
-    public class FieldJacobiTheta<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldJacobiTheta<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Algorithm computing Jacobi theta functions.
     
@@ -782,7 +782,7 @@ class FieldJacobiTheta(typing.Generic[_FieldJacobiTheta__T]):
 _FieldTheta__T = typing.TypeVar('_FieldTheta__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldTheta(typing.Generic[_FieldTheta__T]):
     """
-    public class FieldTheta<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldTheta<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Values of :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiTheta` functions.
     
@@ -792,7 +792,8 @@ class FieldTheta(typing.Generic[_FieldTheta__T]):
             2.0
     
         Also see:
-            :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiTheta`
+    
+              - :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiTheta`
     """
     def theta1(self) -> _FieldTheta__T:
         """
@@ -837,7 +838,7 @@ class FieldTheta(typing.Generic[_FieldTheta__T]):
 
 class JacobiElliptic:
     """
-    public abstract class JacobiElliptic extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classJacobiElliptic extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Algorithm computing Jacobi elliptic functions.
     
@@ -1105,7 +1106,7 @@ class JacobiElliptic:
 
 class JacobiEllipticBuilder:
     """
-    public class JacobiEllipticBuilder extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classJacobiEllipticBuilder extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Builder for algorithms compmuting Jacobi elliptic functions.
     
@@ -1132,7 +1133,7 @@ class JacobiEllipticBuilder:
             Returns:
                 selected algorithm
         
-        public static :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiElliptic`<:class:`~org.hipparchus.complex.Complex`> build (:class:`~org.hipparchus.complex.Complex` m)
+        public static :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiElliptic`<:class:`~org.hipparchus.complex.Complex`> build(:class:`~org.hipparchus.complex.Complex` m)
         
             Build an algorithm for computing Jacobi elliptic functions.
         
@@ -1142,7 +1143,7 @@ class JacobiEllipticBuilder:
             Returns:
                 selected algorithm
         
-        public static <T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiElliptic`<:class:`~org.hipparchus.complex.FieldComplex`<T>> build (:class:`~org.hipparchus.complex.FieldComplex`<T> m)
+        public static <T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> :class:`~org.hipparchus.special.elliptic.jacobi.FieldJacobiElliptic`<:class:`~org.hipparchus.complex.FieldComplex`<T>> build(:class:`~org.hipparchus.complex.FieldComplex`<T> m)
         
             Build an algorithm for computing Jacobi elliptic functions.
         
@@ -1178,7 +1179,7 @@ class JacobiEllipticBuilder:
 
 class JacobiTheta:
     """
-    public class JacobiTheta extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classJacobiTheta extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Algorithm computing Jacobi theta functions.
     
@@ -1212,7 +1213,7 @@ class JacobiTheta:
 
 class Theta:
     """
-    public class Theta extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classTheta extends :class:`~org.hipparchus.special.elliptic.jacobi.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Values of :class:`~org.hipparchus.special.elliptic.jacobi.JacobiTheta` functions.
     
@@ -1222,7 +1223,8 @@ class Theta:
             2.0
     
         Also see:
-            :class:`~org.hipparchus.special.elliptic.jacobi.JacobiTheta`
+    
+              - :class:`~org.hipparchus.special.elliptic.jacobi.JacobiTheta`
     """
     def theta1(self) -> org.hipparchus.complex.Complex:
         """
diff --git a/org-stubs/hipparchus/special/elliptic/legendre/__init__.pyi b/org-stubs/hipparchus/special/elliptic/legendre/__init__.pyi
index 0078753fa914bf4ad6adb53ca69a5f5d991f4c24..13b0807bc0132eeb06d5f5783691bf91366c750a 100644
--- a/org-stubs/hipparchus/special/elliptic/legendre/__init__.pyi
+++ b/org-stubs/hipparchus/special/elliptic/legendre/__init__.pyi
@@ -13,7 +13,7 @@ import typing
 
 class LegendreEllipticIntegral:
     """
-    public class LegendreEllipticIntegral extends :class:`~org.hipparchus.special.elliptic.legendre.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classLegendreEllipticIntegral extends :class:`~org.hipparchus.special.elliptic.legendre.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Complete and incomplete elliptic integrals in Legendre form.
     
@@ -43,12 +43,13 @@ class LegendreEllipticIntegral:
             2.0
     
         Also see:
-            :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`,
-            :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-            :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`,
-            :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-            :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-            :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+    
+              - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+              - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+              - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`
+              - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+              - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+              - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
     """
     _bigD_2__T = typing.TypeVar('_bigD_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     _bigD_3__T = typing.TypeVar('_bigD_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -72,7 +73,9 @@ class LegendreEllipticIntegral:
                 complete elliptic integral D(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
             Get the complete elliptic integral D(m) = [K(m) - E(m)]/m.
         
@@ -88,7 +91,9 @@ class LegendreEllipticIntegral:
                 complete elliptic integral D(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
             Get the incomplete elliptic integral D(φ, m) = [F(φ, m) - E(φ, m)]/m.
         
@@ -105,7 +110,9 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral D(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
             Get the incomplete elliptic integral D(φ, m) = [F(φ, m) - E(φ, m)]/m.
         
@@ -125,7 +132,9 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral D(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
         """
         ...
@@ -150,7 +159,9 @@ class LegendreEllipticIntegral:
                 complete elliptic integral D(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
             Get the complete elliptic integral D(m) = [K(m) - E(m)]/m.
         
@@ -166,7 +177,9 @@ class LegendreEllipticIntegral:
                 complete elliptic integral D(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
             Get the incomplete elliptic integral D(φ, m) = [F(φ, m) - E(φ, m)]/m.
         
@@ -183,7 +196,9 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral D(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
         """
         ...
@@ -209,7 +224,9 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral D(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigD`
+        
         
         
         """
@@ -249,9 +266,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the second kind E(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the second kind E(m).
         
@@ -267,9 +286,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the second kind E(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the second kind E(φ, m).
         
@@ -286,9 +307,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the second kind E(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the second kind E(φ, m).
         
@@ -308,9 +331,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the second kind E(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the second kind E(φ, m) using numerical integration.
         
@@ -334,9 +359,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the second kind E(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -361,9 +388,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the second kind E(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the second kind E(m).
         
@@ -379,9 +408,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the second kind E(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the second kind E(φ, m).
         
@@ -398,9 +429,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the second kind E(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -426,9 +459,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the second kind E(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -473,9 +508,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the second kind E(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigE`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheSecondKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         
         """
@@ -503,9 +540,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the first kind F(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the first kind F(φ, m).
         
@@ -526,9 +565,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the first kind F(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the first kind F(φ, m) using numerical integration.
         
@@ -553,9 +594,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the first kind F(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -579,9 +622,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the first kind F(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the first kind F(φ, m).
         
@@ -602,9 +647,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the first kind F(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -644,9 +691,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the first kind F(φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         
         """
@@ -672,10 +721,12 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`,
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the first kind K(m).
         
@@ -692,10 +743,12 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`,
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -718,10 +771,12 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`,
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the first kind K(m).
         
@@ -738,10 +793,12 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`,
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigKPrime`
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigF`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         
         """
@@ -773,9 +830,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K'(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the first kind K'(m).
         
@@ -792,9 +851,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K'(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -817,9 +878,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K'(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the first kind K'(m).
         
@@ -836,9 +899,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the first kind K'(m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigK`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.CompleteEllipticIntegraloftheFirstKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         
         """
@@ -874,9 +939,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the third kind Π(n, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the third kind Π(n, m).
         
@@ -894,9 +961,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the third kind Π(n, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the third kind Π(n, φ, m).
         
@@ -915,9 +984,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the third kind Π(n, φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the third kind Π(n, φ, m).
         
@@ -939,9 +1010,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the third kind Π(n, φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the third kind Π(n, φ, m) using numerical integration.
         
@@ -966,9 +1039,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the third kind Π(n, φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -995,9 +1070,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the third kind Π(n, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the complete elliptic integral of the third kind Π(n, m).
         
@@ -1015,9 +1092,11 @@ class LegendreEllipticIntegral:
                 complete elliptic integral of the third kind Π(n, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
             Get the incomplete elliptic integral of the third kind Π(n, φ, m).
         
@@ -1036,9 +1115,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the third kind Π(n, φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -1066,9 +1147,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the third kind Π(n, φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         """
         ...
@@ -1115,9 +1198,11 @@ class LegendreEllipticIntegral:
                 incomplete elliptic integral of the third kind Π(n, φ, m)
         
             Also see:
-                :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`,
-                :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
+                  - :meth:`~org.hipparchus.special.elliptic.legendre.LegendreEllipticIntegral.bigPi`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.mathworld.wolfram.com.EllipticIntegraloftheThirdKind`
+                  - :class:`~org.hipparchus.special.elliptic.legendre.https:.en.wikipedia.org.wiki.Elliptic_integral`
+        
         
         
         """
diff --git a/org-stubs/hipparchus/stat/__init__.pyi b/org-stubs/hipparchus/stat/__init__.pyi
index 26f957295c139d936192984e2568051f0eb52bc9..b4f856670e15a00ce4e84b789ca302108bda6932 100644
--- a/org-stubs/hipparchus/stat/__init__.pyi
+++ b/org-stubs/hipparchus/stat/__init__.pyi
@@ -25,14 +25,17 @@ import typing
 _Frequency__T = typing.TypeVar('_Frequency__T', bound=java.lang.Comparable)  # <T>
 class Frequency(java.io.Serializable, typing.Generic[_Frequency__T]):
     """
-    public class Frequency<T extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<T>> extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classFrequency<T extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<T>> extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Maintains a frequency distribution of Comparable values.
     
         The values are ordered using the default (natural order), unless a :code:`Comparator` is supplied in the constructor.
     
         Also see:
-            :class:`~org.hipparchus.stat.LongFrequency`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.stat.LongFrequency`
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -59,8 +62,8 @@ class Frequency(java.io.Serializable, typing.Generic[_Frequency__T]):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -140,7 +143,9 @@ class Frequency(java.io.Serializable, typing.Generic[_Frequency__T]):
                 the number of unique values that have been added to the frequency table.
         
             Also see:
-                :meth:`~org.hipparchus.stat.Frequency.valuesIterator`
+        
+                  - :meth:`~org.hipparchus.stat.Frequency.valuesIterator`
+        
         
         
         """
@@ -149,8 +154,8 @@ class Frequency(java.io.Serializable, typing.Generic[_Frequency__T]):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -175,8 +180,8 @@ class Frequency(java.io.Serializable, typing.Generic[_Frequency__T]):
             Return a string representation of this frequency distribution.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 a string representation.
@@ -188,7 +193,8 @@ class Frequency(java.io.Serializable, typing.Generic[_Frequency__T]):
 
 class LocalizedStatFormats(java.lang.Enum['LocalizedStatFormats'], org.hipparchus.exception.Localizable):
     """
-    public enum LocalizedStatFormats extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.stat.LocalizedStatFormats`> implements :class:`~org.hipparchus.stat.https:.www.hipparchus.org.hipparchus`
+    public enumLocalizedStatFormats extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.stat.LocalizedStatFormats`>
+    implements :class:`~org.hipparchus.stat.https:.www.hipparchus.org.hipparchus`
     
         Enumeration for localized messages formats used in exceptions messages.
     
@@ -246,14 +252,14 @@ class LocalizedStatFormats(java.lang.Enum['LocalizedStatFormats'], org.hipparchu
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -261,15 +267,7 @@ class LocalizedStatFormats(java.lang.Enum['LocalizedStatFormats'], org.hipparchu
     @staticmethod
     def values() -> typing.MutableSequence['LocalizedStatFormats']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (LocalizedStatFormats c : LocalizedStatFormats.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -280,7 +278,7 @@ class LocalizedStatFormats(java.lang.Enum['LocalizedStatFormats'], org.hipparchu
 
 class StatUtils:
     """
-    public final class StatUtils extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public final classStatUtils extends :class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         StatUtils provides static methods for computing statistics based on data stored in double[] arrays.
     """
@@ -418,7 +416,7 @@ class StatUtils:
 
 class LongFrequency(Frequency[int]):
     """
-    public class LongFrequency extends :class:`~org.hipparchus.stat.Frequency`<:class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Long?is`>
+    public classLongFrequency extends :class:`~org.hipparchus.stat.Frequency`<:class:`~org.hipparchus.stat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Long`>
     
         Maintains a frequency distribution of Long values.
     
@@ -434,7 +432,8 @@ class LongFrequency(Frequency[int]):
         The values are ordered using the default (natural order), unless a :code:`Comparator` is supplied in the constructor.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
diff --git a/org-stubs/hipparchus/stat/correlation/__init__.pyi b/org-stubs/hipparchus/stat/correlation/__init__.pyi
index 1c64b14517b7af87c8dd581ff121136961eeb525..1a7a31acc4ea65c46097a5a5f2bc0deaad1ee2c6 100644
--- a/org-stubs/hipparchus/stat/correlation/__init__.pyi
+++ b/org-stubs/hipparchus/stat/correlation/__init__.pyi
@@ -14,7 +14,7 @@ import typing
 
 class Covariance:
     """
-    public class Covariance extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCovariance extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Computes covariances for pairs of arrays or columns of a matrix.
     
@@ -68,7 +68,7 @@ class Covariance:
 
 class KendallsCorrelation:
     """
-    public class KendallsCorrelation extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classKendallsCorrelation extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implementation of Kendall's Tau-b rank correlation.
     
@@ -94,9 +94,10 @@ class KendallsCorrelation:
         Calculating Kendall's Tau with Ungrouped Data" in the Journal of the American Statistical Association.
     
         Also see:
-            ` Kendall tau rank correlation coefficient (Wikipedia)
-            <http://en.wikipedia.org/wiki/Kendall_tau_rank_correlation_coefficient>`, `A Computer Method for Calculating Kendall's
-            Tau with Ungrouped Data <http://www.jstor.org/stable/2282833>`
+    
+              - ` Kendall tau rank correlation coefficient (Wikipedia)
+                <http://en.wikipedia.org/wiki/Kendall_tau_rank_correlation_coefficient>`
+              - `A Computer Method for Calculating Kendall's Tau with Ungrouped Data <http://www.jstor.org/stable/2282833>`
     """
     @typing.overload
     def __init__(self): ...
@@ -143,7 +144,7 @@ class KendallsCorrelation:
 
 class PearsonsCorrelation:
     """
-    public class PearsonsCorrelation extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classPearsonsCorrelation extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Computes Pearson's product-moment correlation coefficients for pairs of arrays or columns of a matrix.
     
@@ -193,7 +194,9 @@ class PearsonsCorrelation:
                 :class:`~org.hipparchus.stat.correlation.https:.www.hipparchus.org.hipparchus`: if the matrix does not contain sufficient data
         
             Also see:
-                :meth:`~org.hipparchus.stat.correlation.PearsonsCorrelation.correlation`
+        
+                  - :meth:`~org.hipparchus.stat.correlation.PearsonsCorrelation.correlation`
+        
         
             Computes the correlation matrix for the columns of the input rectangular array. The columns of the array represent
             values of variables to be correlated. Throws MathIllegalArgumentException if the matrix does not have at least two
@@ -210,7 +213,9 @@ class PearsonsCorrelation:
                 :class:`~org.hipparchus.stat.correlation.https:.www.hipparchus.org.hipparchus`: if the array does not contain sufficient data
         
             Also see:
-                :meth:`~org.hipparchus.stat.correlation.PearsonsCorrelation.correlation`
+        
+                  - :meth:`~org.hipparchus.stat.correlation.PearsonsCorrelation.correlation`
+        
         
         
         """
@@ -292,7 +297,7 @@ class PearsonsCorrelation:
         
             Raises:
                 :class:`~org.hipparchus.stat.correlation.https:.www.hipparchus.org.hipparchus`: if an error occurs estimating probabilities
-                :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if this instance was created with no data
+                :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if this instance was created with no data
         
         
         """
@@ -317,7 +322,7 @@ class PearsonsCorrelation:
                 matrix of correlation standard errors
         
             Raises:
-                :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if this instance was created with no data
+                :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if this instance was created with no data
         
         
         """
@@ -325,7 +330,7 @@ class PearsonsCorrelation:
 
 class SpearmansCorrelation:
     """
-    public class SpearmansCorrelation extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSpearmansCorrelation extends :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Spearman's rank correlation. This implementation performs a rank transformation on the input data and then computes
         :class:`~org.hipparchus.stat.correlation.PearsonsCorrelation` on the ranked data.
@@ -393,7 +398,7 @@ class SpearmansCorrelation:
                 Spearman Rank Correlation Matrix
         
             Raises:
-                :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if this instance was created with no data
+                :class:`~org.hipparchus.stat.correlation.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if this instance was created with no data
         
         
         """
@@ -416,7 +421,7 @@ class SpearmansCorrelation:
 
 class StorelessCovariance(Covariance):
     """
-    public class StorelessCovariance extends :class:`~org.hipparchus.stat.correlation.Covariance`
+    public classStorelessCovariance extends :class:`~org.hipparchus.stat.correlation.Covariance`
     
         Covariance implementation that does not require input data to be stored in memory. The size of the covariance matrix is
         specified in the constructor. Specific elements of the matrix are incrementally updated with calls to incrementRow() or
diff --git a/org-stubs/hipparchus/stat/descriptive/__init__.pyi b/org-stubs/hipparchus/stat/descriptive/__init__.pyi
index ed83547990d9dc22d3cb5e397647aaed99ecc9d6..26b90538d560dc3e991ca16491fd855c2179a9fc 100644
--- a/org-stubs/hipparchus/stat/descriptive/__init__.pyi
+++ b/org-stubs/hipparchus/stat/descriptive/__init__.pyi
@@ -24,7 +24,7 @@ import typing
 _AggregatableStatistic__T = typing.TypeVar('_AggregatableStatistic__T')  # <T>
 class AggregatableStatistic(typing.Generic[_AggregatableStatistic__T]):
     """
-    public interface AggregatableStatistic<T>
+    public interfaceAggregatableStatistic<T>
     
         An interface for statistics that can aggregate results.
     """
@@ -42,7 +42,7 @@ class AggregatableStatistic(typing.Generic[_AggregatableStatistic__T]):
             Raises:
                 :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`: if either others or any instance is null
         
-        default void aggregate (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<:class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`> others)
+        default void aggregate(:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<:class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`> others)
         
             Aggregates the results from the provided instances into this instance.
         
@@ -50,7 +50,7 @@ class AggregatableStatistic(typing.Generic[_AggregatableStatistic__T]):
             after this operation should be the same as if a single statistic would have been applied over the combined dataset.
         
             Parameters:
-                others (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<:class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`> others): the other instances to aggregate into this instance
+                others (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<:class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`> others): the other instances to aggregate into this instance
         
             Raises:
                 :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`: if either others or any instance is null
@@ -65,7 +65,7 @@ class AggregatableStatistic(typing.Generic[_AggregatableStatistic__T]):
 
 class StatisticalMultivariateSummary:
     """
-    public interface StatisticalMultivariateSummary
+    public interfaceStatisticalMultivariateSummary
     
         Reporting interface for basic multivariate statistics.
     """
@@ -190,7 +190,7 @@ class StatisticalMultivariateSummary:
 
 class StatisticalSummary:
     """
-    public interface StatisticalSummary
+    public interfaceStatisticalSummary
     
         Reporting interface for basic univariate statistics.
     """
@@ -213,7 +213,7 @@ class StatisticalSummary:
             Raises:
                 :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`: if the input is null
         
-        static :class:`~org.hipparchus.stat.descriptive.StatisticalSummary` aggregate (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<? extends :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`> statistics)
+        static :class:`~org.hipparchus.stat.descriptive.StatisticalSummary` aggregate(:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<? extends :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`> statistics)
         
             Computes aggregated statistical summaries.
         
@@ -222,7 +222,7 @@ class StatisticalSummary:
             over the combined dataset.
         
             Parameters:
-                statistics (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<? extends :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`> statistics): iterable of StatisticalSummary instances to aggregate
+                statistics (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<? extends :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`> statistics): iterable of StatisticalSummary instances to aggregate
         
             Returns:
                 summary statistics for the combined dataset
@@ -309,7 +309,7 @@ class StatisticalSummary:
 
 class StorelessMultivariateStatistic:
     """
-    public interface StorelessMultivariateStatistic
+    public interfaceStorelessMultivariateStatistic
     
         Base interface implemented by storeless multivariate statistics.
     """
@@ -362,7 +362,7 @@ class StorelessMultivariateStatistic:
 
 class UnivariateStatistic(org.hipparchus.util.MathArrays.Function):
     """
-    public interface UnivariateStatistic extends :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`
+    public interfaceUnivariateStatisticextends :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`
     
         Base interface implemented by all statistics.
     """
@@ -383,7 +383,7 @@ class UnivariateStatistic(org.hipparchus.util.MathArrays.Function):
 
 class WeightedEvaluation:
     """
-    public interface WeightedEvaluation
+    public interfaceWeightedEvaluation
     
         Weighted evaluation for statistics.
     """
@@ -394,7 +394,8 @@ class WeightedEvaluation:
 
 class AbstractUnivariateStatistic(UnivariateStatistic):
     """
-    public abstract class AbstractUnivariateStatistic extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.UnivariateStatistic`
+    public abstract classAbstractUnivariateStatistic extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.UnivariateStatistic`
     
         Abstract base class for implementations of the :class:`~org.hipparchus.stat.descriptive.UnivariateStatistic` interface.
     """
@@ -439,9 +440,11 @@ class AbstractUnivariateStatistic(UnivariateStatistic):
                 values (double[]): data array to store (may be null to remove stored data)
         
             Also see:
-                :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
         
-        public void setData (double[] values, int begin, int length) throws :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`
+                  - :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
+        
+        
+        public void setData(double[] values, int begin, int length) throws :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`
         
             Set the data array. The input array is copied, not referenced.
         
@@ -454,7 +457,9 @@ class AbstractUnivariateStatistic(UnivariateStatistic):
                 :class:`~org.hipparchus.stat.descriptive.https:.www.hipparchus.org.hipparchus`: if values is null or the indices are not valid
         
             Also see:
-                :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
+        
+                  - :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
+        
         
         
         """
@@ -464,7 +469,8 @@ class AbstractUnivariateStatistic(UnivariateStatistic):
 
 class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsumer, java.io.Serializable):
     """
-    public class DescriptiveStatistics extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer?is`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classDescriptiveStatistics extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Maintains a dataset of values of a single variable and computes descriptive statistics based on stored data.
     
@@ -480,7 +486,8 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
         Note: this class is not threadsafe.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -493,8 +500,8 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
         
             Specified by:
                 
-                meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer.html?is` in
-                interface :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer?is`
+                meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer.accept` in
+                interface :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer`
         
         
         """
@@ -562,7 +569,9 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
                 The geometricMean, Double.NaN if no values have been added, or if any negative values have been added.
         
             Also see:
-                ` Geometric mean <http://www.xycoon.com/geometric_mean.htm>`
+        
+                  - ` Geometric mean <http://www.xycoon.com/geometric_mean.htm>`
+        
         
         
         """
@@ -642,7 +651,9 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
                 The population variance, Double.NaN if no values have been added, or 0.0 for a single value set.
         
             Also see:
-                ` Population variance <http://en.wikibooks.org/wiki/Statistics/Summary/Variance>`
+        
+                  - ` Population variance <http://en.wikibooks.org/wiki/Statistics/Summary/Variance>`
+        
         
         
         """
@@ -655,7 +666,9 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
                 The quadratic mean or :code:`Double.NaN` if no values have been added.
         
             Also see:
-                ` Root Mean Square <http://mathworld.wolfram.com/Root-Mean-Square.html>`
+        
+                  - ` Root Mean Square <http://mathworld.wolfram.com/Root-Mean-Square.html>`
+        
         
         
         """
@@ -763,8 +776,8 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
             on a separate line.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 String with line feeds displaying statistics
@@ -775,7 +788,8 @@ class DescriptiveStatistics(StatisticalSummary, java.util.function.DoubleConsume
 
 class MultivariateSummaryStatistics(StatisticalMultivariateSummary, java.io.Serializable):
     """
-    public class MultivariateSummaryStatistics extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.StatisticalMultivariateSummary`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classMultivariateSummaryStatistics extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.StatisticalMultivariateSummary`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes summary statistics for a stream of n-tuples added using the
         :meth:`~org.hipparchus.stat.descriptive.MultivariateSummaryStatistics.addValue` method. The data values are not stored
@@ -792,7 +806,8 @@ class MultivariateSummaryStatistics(StatisticalMultivariateSummary, java.io.Seri
         Note: This class is not thread-safe.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self, int: int): ...
@@ -811,11 +826,11 @@ class MultivariateSummaryStatistics(StatisticalMultivariateSummary, java.io.Seri
             values as this.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to test equality against.
+                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to test equality against.
         
             Returns:
                 true if object equals this
@@ -990,8 +1005,8 @@ class MultivariateSummaryStatistics(StatisticalMultivariateSummary, java.io.Seri
             Returns hash code based on values of statistics
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 hash code
@@ -1004,8 +1019,8 @@ class MultivariateSummaryStatistics(StatisticalMultivariateSummary, java.io.Seri
             Generates a text report displaying summary statistics from values that have been added.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 String with line feeds displaying statistics
@@ -1016,12 +1031,14 @@ class MultivariateSummaryStatistics(StatisticalMultivariateSummary, java.io.Seri
 
 class StatisticalSummaryValues(java.io.Serializable, StatisticalSummary):
     """
-    public class StatisticalSummaryValues extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`
+    public classStatisticalSummaryValues extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`
     
         Value object representing the results of a univariate statistical summary.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, double: float, double2: float, long: int, double3: float, double4: float, double5: float): ...
     def equals(self, object: typing.Any) -> bool:
@@ -1030,11 +1047,11 @@ class StatisticalSummaryValues(java.io.Serializable, StatisticalSummary):
             this.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to test equality against.
+                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to test equality against.
         
             Returns:
                 true if object equals this
@@ -1152,8 +1169,8 @@ class StatisticalSummaryValues(java.io.Serializable, StatisticalSummary):
             Returns hash code based on values of statistics
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 hash code
@@ -1166,8 +1183,8 @@ class StatisticalSummaryValues(java.io.Serializable, StatisticalSummary):
             Generates a text report displaying values of statistics. Each statistic is displayed on a separate line.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 String with line feeds displaying statistics
@@ -1178,7 +1195,7 @@ class StatisticalSummaryValues(java.io.Serializable, StatisticalSummary):
 
 class StorelessUnivariateStatistic(UnivariateStatistic, java.util.function.DoubleConsumer):
     """
-    public interface StorelessUnivariateStatistic extends :class:`~org.hipparchus.stat.descriptive.UnivariateStatistic`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer?is`
+    public interfaceStorelessUnivariateStatisticextends :class:`~org.hipparchus.stat.descriptive.UnivariateStatistic`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer`
     
         Extends the definition of :class:`~org.hipparchus.stat.descriptive.UnivariateStatistic` with
         :meth:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic.increment` and
@@ -1197,8 +1214,8 @@ class StorelessUnivariateStatistic(UnivariateStatistic, java.util.function.Doubl
         
             Specified by:
                 
-                meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer.html?is` in
-                interface :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer?is`
+                meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer.accept` in
+                interface :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer`
         
         
         """
@@ -1264,7 +1281,8 @@ class StorelessUnivariateStatistic(UnivariateStatistic, java.util.function.Doubl
 
 class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingStatistics'], java.util.function.DoubleConsumer, java.io.Serializable):
     """
-    public class StreamingStatistics extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`, :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.StreamingStatistics`>, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer?is`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classStreamingStatistics extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.StatisticalSummary`, :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.StreamingStatistics`>, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer`, :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes summary statistics for a stream of data values added using the
         :meth:`~org.hipparchus.stat.descriptive.StreamingStatistics.addValue` method. The data values are not stored in memory,
@@ -1279,7 +1297,8 @@ class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingSt
         Note: This class is not thread-safe.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1290,8 +1309,8 @@ class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingSt
         
             Specified by:
                 
-                meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer.html?is` in
-                interface :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer?is`
+                meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer.accept` in
+                interface :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.util.function.DoubleConsumer`
         
         
         """
@@ -1364,11 +1383,11 @@ class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingSt
             this.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): the object to test equality against.
+                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): the object to test equality against.
         
             Returns:
                 true if object equals this
@@ -1592,8 +1611,8 @@ class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingSt
             Returns hash code based on values of statistics.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 hash code
@@ -1606,8 +1625,8 @@ class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingSt
             Generates a text report displaying summary statistics from values that have been added.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 String with line feeds displaying statistics
@@ -1626,7 +1645,8 @@ class StreamingStatistics(StatisticalSummary, AggregatableStatistic['StreamingSt
 
 class AbstractStorelessUnivariateStatistic(StorelessUnivariateStatistic):
     """
-    public abstract class AbstractStorelessUnivariateStatistic extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic`
+    public abstract classAbstractStorelessUnivariateStatistic extends :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic`
     
         Abstract base class for implementations of the :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic`
         interface.
@@ -1670,11 +1690,11 @@ class AbstractStorelessUnivariateStatistic(StorelessUnivariateStatistic):
             returning the same values as this for :code:`getResult()` and :code:`getN()`.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): object to test equality against.
+                object (:class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): object to test equality against.
         
             Returns:
                 true if object returns the same value as this
@@ -1701,8 +1721,8 @@ class AbstractStorelessUnivariateStatistic(StorelessUnivariateStatistic):
             Returns hash code based on getResult() and getN().
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 hash code
@@ -1728,8 +1748,8 @@ class AbstractStorelessUnivariateStatistic(StorelessUnivariateStatistic):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.descriptive.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
diff --git a/org-stubs/hipparchus/stat/descriptive/moment/__init__.pyi b/org-stubs/hipparchus/stat/descriptive/moment/__init__.pyi
index de166f947ceecad350b36d1574f053475c5b8359..8696ed81a4be9eddc6039f642bf74856546c4623 100644
--- a/org-stubs/hipparchus/stat/descriptive/moment/__init__.pyi
+++ b/org-stubs/hipparchus/stat/descriptive/moment/__init__.pyi
@@ -17,7 +17,8 @@ import typing
 
 class GeometricMean(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['GeometricMean'], java.io.Serializable):
     """
-    public class GeometricMean extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.GeometricMean`>, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classGeometricMean extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.GeometricMean`>, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the ` geometric mean <http://www.xycoon.com/geometric_mean.htm>` of the available values.
     
@@ -36,7 +37,8 @@ class GeometricMean(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateS
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -160,7 +162,8 @@ class GeometricMean(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateS
 
 class Kurtosis(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, java.io.Serializable):
     """
-    public class Kurtosis extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classKurtosis extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes the Kurtosis of the available values.
     
@@ -179,7 +182,8 @@ class Kurtosis(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatis
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -284,7 +288,8 @@ class Kurtosis(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatis
 
 class Mean(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['Mean'], org.hipparchus.stat.descriptive.WeightedEvaluation, java.io.Serializable):
     """
-    public class Mean extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.Mean`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classMean extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.Mean`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes the arithmetic mean of a set of values. Uses the definitional formula:
     
@@ -317,7 +322,8 @@ class Mean(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -448,7 +454,8 @@ class Mean(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
 
 class SemiVariance(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, java.io.Serializable):
     """
-    public class SemiVariance extends :class:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSemiVariance extends :class:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes the semivariance of a set of values with respect to a given cutoff value.
     
@@ -474,7 +481,8 @@ class SemiVariance(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic,
         ensure correct results.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     UPSIDE_VARIANCE: typing.ClassVar['SemiVariance.Direction'] = ...
     """
@@ -595,7 +603,8 @@ class SemiVariance(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic,
 
 class Skewness(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, java.io.Serializable):
     """
-    public class Skewness extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSkewness extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes the skewness of the available values.
     
@@ -614,7 +623,8 @@ class Skewness(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatis
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -721,7 +731,8 @@ class Skewness(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatis
 
 class StandardDeviation(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, java.io.Serializable):
     """
-    public class StandardDeviation extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classStandardDeviation extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes the sample standard deviation.
     
@@ -738,7 +749,8 @@ class StandardDeviation(org.hipparchus.stat.descriptive.AbstractStorelessUnivari
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -871,7 +883,8 @@ class StandardDeviation(org.hipparchus.stat.descriptive.AbstractStorelessUnivari
 
 class Variance(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['Variance'], org.hipparchus.stat.descriptive.WeightedEvaluation, java.io.Serializable):
     """
-    public class Variance extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.Variance`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classVariance extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.Variance`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes the variance of the available values. By default, the unbiased "sample variance" definitional formula is used:
     
@@ -904,7 +917,8 @@ class Variance(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatis
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1082,7 +1096,8 @@ class ThirdMoment: ...
 
 class SecondMoment(FirstMoment, org.hipparchus.stat.descriptive.AggregatableStatistic['SecondMoment'], java.io.Serializable):
     """
-    public class SecondMoment extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.SecondMoment`>, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSecondMoment extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.moment.SecondMoment`>, :class:`~org.hipparchus.stat.descriptive.moment.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Computes a statistic related to the Second Central Moment. Specifically, what is computed is the sum of squared
         deviations from the sample mean.
@@ -1106,7 +1121,8 @@ class SecondMoment(FirstMoment, org.hipparchus.stat.descriptive.AggregatableStat
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -1130,7 +1146,7 @@ class SecondMoment(FirstMoment, org.hipparchus.stat.descriptive.AggregatableStat
             Aggregates the results of the provided instance into this instance.
         
             Parameters:
-                other (:class:`~org.hipparchus.stat.descriptive.moment.https:.www.hipparchus.org.hipparchus`): the instance to aggregate from
+                other (org.hipparchus.stat.descriptive.moment.FirstMoment): the instance to aggregate from
         
         
         """
diff --git a/org-stubs/hipparchus/stat/descriptive/rank/__init__.pyi b/org-stubs/hipparchus/stat/descriptive/rank/__init__.pyi
index b15d40e0e7d58ff9ba284c303527d38bd7836e0e..cc65c903c483b7092597349a990718432891649a 100644
--- a/org-stubs/hipparchus/stat/descriptive/rank/__init__.pyi
+++ b/org-stubs/hipparchus/stat/descriptive/rank/__init__.pyi
@@ -19,7 +19,8 @@ import typing
 
 class Max(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['Max'], java.io.Serializable):
     """
-    public class Max extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.rank.Max`>, :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classMax extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.rank.Max`>, :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the maximum of the available values.
     
@@ -33,7 +34,8 @@ class Max(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -155,7 +157,8 @@ class Max(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
 
 class Median(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, java.io.Serializable):
     """
-    public class Median extends :class:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classMedian extends :class:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the median of the available values. This is the same as the 50th percentile. See
         :class:`~org.hipparchus.stat.descriptive.rank.Percentile` for a description of the algorithm used.
@@ -165,7 +168,8 @@ class Median(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, java.i
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self): ...
     def copy(self) -> 'Median':
@@ -276,7 +280,8 @@ class Median(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, java.i
 
 class Min(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['Min'], java.io.Serializable):
     """
-    public class Min extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.rank.Min`>, :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classMin extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.rank.Min`>, :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the minimum of the available values.
     
@@ -290,7 +295,8 @@ class Min(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -431,7 +437,8 @@ class PSquarePercentile(org.hipparchus.stat.descriptive.AbstractStorelessUnivari
 
 class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, java.io.Serializable):
     """
-    public class Percentile extends :class:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classPercentile extends :class:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Provides percentile computation.
     
@@ -451,7 +458,7 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
     
         To compute percentiles, the data must be at least partially ordered. Input arrays are copied and recursively partitioned
         using an ordering definition. The ordering used by :code:`Arrays.sort(double[])` is the one determined by
-        :meth:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`. This
+        :meth:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.compareTo`. This
         ordering makes :code:`Double.NaN` larger than any other value (including :code:`Double.POSITIVE_INFINITY`). Therefore,
         for example, the median (50th percentile) of :code:`{0, 1, 2, 3, 4, Double.NaN}` evaluates to :code:`2.5.`
     
@@ -474,7 +481,8 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -579,9 +587,11 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
                 values (double[]): data array to store (may be null to remove stored data)
         
             Also see:
-                :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
         
-        public void setData (double[] values, int begin, int length) throws :class:`~org.hipparchus.stat.descriptive.rank.https:.www.hipparchus.org.hipparchus`
+                  - :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
+        
+        
+        public void setData(double[] values, int begin, int length) throws :class:`~org.hipparchus.stat.descriptive.rank.https:.www.hipparchus.org.hipparchus`
         
             Set the data array. The input array is copied, not referenced.
         
@@ -598,7 +608,9 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
                 :class:`~org.hipparchus.stat.descriptive.rank.https:.www.hipparchus.org.hipparchus`: if values is null or the indices are not valid
         
             Also see:
-                :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
+        
+                  - :meth:`~org.hipparchus.stat.descriptive.AbstractUnivariateStatistic.evaluate`
+        
         
         
         """
@@ -616,11 +628,10 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
         
             .. code-block: java
             
-            
-               Percentile customized = new Percentile(quantile).
-                                       withEstimationType(estimationType).
-                                       withNaNStrategy(nanStrategy).
-                                       withKthSelector(kthSelector);
+               Percentile customized = new Percentile(quantile).
+                                       withEstimationType(estimationType).
+                                       withNaNStrategy(nanStrategy).
+                                       withKthSelector(kthSelector);
              
         
             If any of the :code:`withXxx` method is omitted, the default value for the corresponding customization parameter will be
@@ -648,11 +659,10 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
         
             .. code-block: java
             
-            
-               Percentile customized = new Percentile(quantile).
-                                       withEstimationType(estimationType).
-                                       withNaNStrategy(nanStrategy).
-                                       withKthSelector(newKthSelector);
+               Percentile customized = new Percentile(quantile).
+                                       withEstimationType(estimationType).
+                                       withNaNStrategy(nanStrategy).
+                                       withKthSelector(newKthSelector);
              
         
             If any of the :code:`withXxx` method is omitted, the default value for the corresponding customization parameter will be
@@ -680,11 +690,10 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
         
             .. code-block: java
             
-            
-               Percentile customized = new Percentile(quantile).
-                                       withEstimationType(estimationType).
-                                       withNaNStrategy(nanStrategy).
-                                       withKthSelector(kthSelector);
+               Percentile customized = new Percentile(quantile).
+                                       withEstimationType(estimationType).
+                                       withNaNStrategy(nanStrategy).
+                                       withKthSelector(kthSelector);
              
         
             If any of the :code:`withXxx` method is omitted, the default value for the corresponding customization parameter will be
@@ -726,7 +735,8 @@ class Percentile(org.hipparchus.stat.descriptive.AbstractUnivariateStatistic, ja
 
 class RandomPercentile(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.StorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['RandomPercentile'], java.io.Serializable):
     """
-    public class RandomPercentile extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic`, :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.rank.RandomPercentile`>, :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classRandomPercentile extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic`, :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.rank.RandomPercentile`>, :class:`~org.hipparchus.stat.descriptive.rank.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic` estimating percentiles using the `RANDOM
         <http:/dimacs.rutgers.edu/~graham/pubs/papers/nquantiles.pdf>` Algorithm.
@@ -769,7 +779,8 @@ class RandomPercentile(org.hipparchus.stat.descriptive.AbstractStorelessUnivaria
         Note: This implementation is not thread-safe.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     DEFAULT_EPSILON: typing.ClassVar[float] = ...
     """
@@ -778,7 +789,9 @@ class RandomPercentile(org.hipparchus.stat.descriptive.AbstractStorelessUnivaria
         Default quantile estimation error setting
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -884,7 +897,9 @@ class RandomPercentile(org.hipparchus.stat.descriptive.AbstractStorelessUnivaria
                 :class:`~org.hipparchus.stat.descriptive.rank.https:.www.hipparchus.org.hipparchus`: if percentile is out of the range [0, 100]
         
             Also see:
-                :meth:`~org.hipparchus.stat.descriptive.UnivariateStatistic.evaluate`
+        
+                  - :meth:`~org.hipparchus.stat.descriptive.UnivariateStatistic.evaluate`
+        
         
         """
         ...
diff --git a/org-stubs/hipparchus/stat/descriptive/summary/__init__.pyi b/org-stubs/hipparchus/stat/descriptive/summary/__init__.pyi
index 0665ac5885368439a69cb14a1aec94f265fa8201..b329feaede2d509d375eae86f4d43648c7cb6c28 100644
--- a/org-stubs/hipparchus/stat/descriptive/summary/__init__.pyi
+++ b/org-stubs/hipparchus/stat/descriptive/summary/__init__.pyi
@@ -16,7 +16,8 @@ import typing
 
 class Product(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['Product'], org.hipparchus.stat.descriptive.WeightedEvaluation, java.io.Serializable):
     """
-    public class Product extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.Product`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classProduct extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.Product`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the product of the available values.
     
@@ -28,7 +29,8 @@ class Product(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatist
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -154,7 +156,8 @@ class Product(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatist
 
 class Sum(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['Sum'], org.hipparchus.stat.descriptive.WeightedEvaluation, java.io.Serializable):
     """
-    public class Sum extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.Sum`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSum extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.Sum`>, :class:`~org.hipparchus.stat.descriptive.WeightedEvaluation`, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the sum of the available values.
     
@@ -166,7 +169,8 @@ class Sum(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -292,7 +296,8 @@ class Sum(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic,
 
 class SumOfLogs(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['SumOfLogs'], java.io.Serializable):
     """
-    public class SumOfLogs extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.SumOfLogs`>, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSumOfLogs extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.SumOfLogs`>, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the sum of the natural logs for this collection of values.
     
@@ -311,7 +316,8 @@ class SumOfLogs(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStati
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -433,7 +439,8 @@ class SumOfLogs(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStati
 
 class SumOfSquares(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic, org.hipparchus.stat.descriptive.AggregatableStatistic['SumOfSquares'], java.io.Serializable):
     """
-    public class SumOfSquares extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic` implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.SumOfSquares`>, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classSumOfSquares extends :class:`~org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic`
+    implements :class:`~org.hipparchus.stat.descriptive.AggregatableStatistic`<:class:`~org.hipparchus.stat.descriptive.summary.SumOfSquares`>, :class:`~org.hipparchus.stat.descriptive.summary.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the sum of the squares of the available values.
     
@@ -445,7 +452,8 @@ class SumOfSquares(org.hipparchus.stat.descriptive.AbstractStorelessUnivariateSt
         synchronized externally.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
diff --git a/org-stubs/hipparchus/stat/descriptive/vector/__init__.pyi b/org-stubs/hipparchus/stat/descriptive/vector/__init__.pyi
index 8801bdd3c1d8d9cc1b0e1b9e07818e14c7bbaa82..322e7f702bb0b1791763bd0cd520b02b241f2b59 100644
--- a/org-stubs/hipparchus/stat/descriptive/vector/__init__.pyi
+++ b/org-stubs/hipparchus/stat/descriptive/vector/__init__.pyi
@@ -15,12 +15,14 @@ import typing
 
 class VectorialCovariance(java.io.Serializable):
     """
-    public class VectorialCovariance extends :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classVectorialCovariance extends :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Returns the covariance matrix of the available vectors.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, boolean: bool): ...
     def clear(self) -> None:
@@ -33,8 +35,8 @@ class VectorialCovariance(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -63,8 +65,8 @@ class VectorialCovariance(java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -73,13 +75,15 @@ class VectorialCovariance(java.io.Serializable):
 
 class VectorialStorelessStatistic(org.hipparchus.stat.descriptive.StorelessMultivariateStatistic, java.io.Serializable):
     """
-    public class VectorialStorelessStatistic extends :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.descriptive.StorelessMultivariateStatistic`, :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classVectorialStorelessStatistic extends :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.descriptive.StorelessMultivariateStatistic`, :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Uses an independent :class:`~org.hipparchus.stat.descriptive.StorelessUnivariateStatistic` instance for each component
         of a vector.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, int: int, storelessUnivariateStatistic: org.hipparchus.stat.descriptive.StorelessUnivariateStatistic): ...
     def clear(self) -> None:
@@ -97,8 +101,8 @@ class VectorialStorelessStatistic(org.hipparchus.stat.descriptive.StorelessMulti
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -149,8 +153,8 @@ class VectorialStorelessStatistic(org.hipparchus.stat.descriptive.StorelessMulti
         """
         
             Overrides:
-                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.stat.descriptive.vector.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
diff --git a/org-stubs/hipparchus/stat/fitting/__init__.pyi b/org-stubs/hipparchus/stat/fitting/__init__.pyi
index b50b15b3e0cae326261108cae8950a3e58b1b1f4..7a75c74747eb72a7c86c25255b4b4f3e027e7569 100644
--- a/org-stubs/hipparchus/stat/fitting/__init__.pyi
+++ b/org-stubs/hipparchus/stat/fitting/__init__.pyi
@@ -20,7 +20,7 @@ import typing
 
 class EmpiricalDistribution(org.hipparchus.distribution.continuous.AbstractRealDistribution):
     """
-    public class EmpiricalDistribution extends :class:`~org.hipparchus.stat.fitting.https:.www.hipparchus.org.hipparchus`
+    public classEmpiricalDistribution extends :class:`~org.hipparchus.stat.fitting.https:.www.hipparchus.org.hipparchus`
     
     
         Represents an ` empirical probability distribution
@@ -74,7 +74,8 @@ class EmpiricalDistribution(org.hipparchus.distribution.continuous.AbstractRealD
     
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     DEFAULT_BIN_COUNT: typing.ClassVar[int] = ...
     """
@@ -83,7 +84,9 @@ class EmpiricalDistribution(org.hipparchus.distribution.continuous.AbstractRealD
         Default bin count
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -150,7 +153,7 @@ class EmpiricalDistribution(org.hipparchus.distribution.continuous.AbstractRealD
                 array of upper bounds of subintervals used in data generation
         
             Raises:
-                :class:`~org.hipparchus.stat.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: unless a :code:`load` method has been called beforehand.
+                :class:`~org.hipparchus.stat.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: unless a :code:`load` method has been called beforehand.
         
         
         """
@@ -169,7 +172,7 @@ class EmpiricalDistribution(org.hipparchus.distribution.continuous.AbstractRealD
                 the sample statistics
         
             Raises:
-                :class:`~org.hipparchus.stat.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalStateException?is`: if the distribution has not been loaded
+                :class:`~org.hipparchus.stat.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalStateException`: if the distribution has not been loaded
         
         
         """
@@ -231,7 +234,7 @@ class EmpiricalDistribution(org.hipparchus.distribution.continuous.AbstractRealD
 
 class MultivariateNormalMixtureExpectationMaximization:
     """
-    public class MultivariateNormalMixtureExpectationMaximization extends :class:`~org.hipparchus.stat.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classMultivariateNormalMixtureExpectationMaximization extends :class:`~org.hipparchus.stat.fitting.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Expectation-Maximization algorithm for fitting the parameters of multivariate normal mixture model distributions. This
         implementation is pure original code based on
diff --git a/org-stubs/hipparchus/stat/inference/__init__.pyi b/org-stubs/hipparchus/stat/inference/__init__.pyi
index 727edc2c01cc4b3621525b79050e7c383fa7ca36..f59c30cccfdd8e15d68519a7f48850e16ac29b3e 100644
--- a/org-stubs/hipparchus/stat/inference/__init__.pyi
+++ b/org-stubs/hipparchus/stat/inference/__init__.pyi
@@ -17,7 +17,7 @@ import typing
 
 class AlternativeHypothesis(java.lang.Enum['AlternativeHypothesis']):
     """
-    public enum AlternativeHypothesis extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.stat.inference.AlternativeHypothesis`>
+    public enumAlternativeHypothesis extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.stat.inference.AlternativeHypothesis`>
     
         Represents an alternative hypothesis for a hypothesis test.
     """
@@ -36,14 +36,14 @@ class AlternativeHypothesis(java.lang.Enum['AlternativeHypothesis']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -51,15 +51,7 @@ class AlternativeHypothesis(java.lang.Enum['AlternativeHypothesis']):
     @staticmethod
     def values() -> typing.MutableSequence['AlternativeHypothesis']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (AlternativeHypothesis c : AlternativeHypothesis.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -70,7 +62,7 @@ class AlternativeHypothesis(java.lang.Enum['AlternativeHypothesis']):
 
 class BinomialTest:
     """
-    public class BinomialTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBinomialTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implements binomial test statistics.
     
@@ -78,7 +70,8 @@ class BinomialTest:
         into two categories.
     
         Also see:
-            `Binomial test (Wikipedia) <http://en.wikipedia.org/wiki/Binomial_test>`
+    
+              - `Binomial test (Wikipedia) <http://en.wikipedia.org/wiki/Binomial_test>`
     """
     def __init__(self): ...
     @typing.overload
@@ -110,7 +103,9 @@ class BinomialTest:
                 :class:`~org.hipparchus.stat.inference.https:.www.hipparchus.org.hipparchus`: if :code:`numberOfTrials` < :code:`numberOfSuccesses` or if :code:`alternateHypothesis` is null.
         
             Also see:
-                :class:`~org.hipparchus.stat.inference.AlternativeHypothesis`
+        
+                  - :class:`~org.hipparchus.stat.inference.AlternativeHypothesis`
+        
         
         """
         ...
@@ -153,7 +148,9 @@ class BinomialTest:
                 :class:`~org.hipparchus.stat.inference.https:.www.hipparchus.org.hipparchus`: if :code:`numberOfTrials` < :code:`numberOfSuccesses` or if :code:`alternateHypothesis` is null.
         
             Also see:
-                :class:`~org.hipparchus.stat.inference.AlternativeHypothesis`
+        
+                  - :class:`~org.hipparchus.stat.inference.AlternativeHypothesis`
+        
         
         
         """
@@ -161,7 +158,7 @@ class BinomialTest:
 
 class ChiSquareTest:
     """
-    public class ChiSquareTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classChiSquareTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implements Chi-Square test statistics.
     
@@ -191,7 +188,7 @@ class ChiSquareTest:
 
 class GTest:
     """
-    public class GTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classGTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implements `G Test <http://en.wikipedia.org/wiki/G-test>` statistics.
     
@@ -247,7 +244,7 @@ class GTest:
 
 class InferenceTestUtils:
     """
-    public class InferenceTestUtils extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classInferenceTestUtils extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         A collection of static methods to create inference test instances or to perform inference tests.
     """
@@ -435,7 +432,7 @@ class InferenceTestUtils:
 
 class KolmogorovSmirnovTest:
     """
-    public class KolmogorovSmirnovTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classKolmogorovSmirnovTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implementation of the ` Kolmogorov-Smirnov (K-S) test <http://en.wikipedia.org/wiki/Kolmogorov-Smirnov_test>` for
         equality of continuous distributions.
@@ -539,10 +536,9 @@ class KolmogorovSmirnovTest:
         
             .. code-block: java
             
-            
-             Jasjeet S. Sekhon. 2011. 'Multivariate and Propensity Score Matching
-             Software with Automated Balance Optimization: The Matching package for R.'
-             Journal of Statistical Software, 42(7): 1-52.
+             Jasjeet S. Sekhon. 2011. 'Multivariate and Propensity Score Matching
+             Software with Automated Balance Optimization: The Matching package for R.'
+             Journal of Statistical Software, 42(7): 1-52.
              
         
             Parameters:
@@ -695,7 +691,9 @@ class KolmogorovSmirnovTest:
                 :class:`~org.hipparchus.stat.inference.https:.www.hipparchus.org.hipparchus`: if either :code:`x` or :code:`y` is null
         
             Also see:
-                :meth:`~org.hipparchus.stat.inference.KolmogorovSmirnovTest.bootstrap`
+        
+                  - :meth:`~org.hipparchus.stat.inference.KolmogorovSmirnovTest.bootstrap`
+        
         
             Performs a ` Kolmogorov-Smirnov test <http://en.wikipedia.org/wiki/Kolmogorov-Smirnov_test>` evaluating the null
             hypothesis that :code:`data` conforms to :code:`distribution`.
@@ -796,7 +794,7 @@ class KolmogorovSmirnovTest:
 
 class MannWhitneyUTest:
     """
-    public class MannWhitneyUTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classMannWhitneyUTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         An implementation of the Mann-Whitney U test.
     
@@ -821,7 +819,7 @@ class MannWhitneyUTest:
 
 class OneWayAnova:
     """
-    public class OneWayAnova extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classOneWayAnova extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Implements one-way ANOVA (analysis of variance) statistics.
     
@@ -831,13 +829,13 @@ class OneWayAnova:
     
         Uses the :class:`~org.hipparchus.stat.inference.https:.www.hipparchus.org.hipparchus` to estimate exact p-values.
     
-        This implementation is based on a description at http://faculty.vassar.edu/lowry/ch13pt1.html
+        This implementation is based on a description at `One way Anova (dead link)
+        <http://faculty.vassar.edu/lowry/ch13pt1.html>`
     
         .. code-block: java
         
-        
-         Abbreviations: bg = between groups,
-                        wg = within groups,
+         Abbreviations: bg = between groups,
+                        wg = within groups,
                         ss = sum squared deviations
     """
     def __init__(self): ...
@@ -850,7 +848,7 @@ class OneWayAnova:
 
 class TTest:
     """
-    public class TTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classTTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         An implementation for Student's t-tests.
     
@@ -964,7 +962,7 @@ class TTest:
 
 class WilcoxonSignedRankTest:
     """
-    public class WilcoxonSignedRankTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classWilcoxonSignedRankTest extends :class:`~org.hipparchus.stat.inference.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         An implementation of the Wilcoxon signed-rank test. This implementation currently handles only paired (equal length)
         samples and discards tied pairs from the analysis. The latter behavior differs from the R implementation of wilcox.test
diff --git a/org-stubs/hipparchus/stat/interval/__init__.pyi b/org-stubs/hipparchus/stat/interval/__init__.pyi
index e4aa8db2df9fcacc226aeafde4acc840fd45dd27..30c9c6a80f6108e0068482867dcea72152dc64d9 100644
--- a/org-stubs/hipparchus/stat/interval/__init__.pyi
+++ b/org-stubs/hipparchus/stat/interval/__init__.pyi
@@ -11,13 +11,14 @@ import typing
 
 class BinomialProportion:
     """
-    public class BinomialProportion extends :class:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classBinomialProportion extends :class:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Utility methods to generate confidence intervals for a binomial proportion.
     
         Also see:
-            ` Binomial proportion confidence interval (Wikipedia)
-            <http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval>`
+    
+              - ` Binomial proportion confidence interval (Wikipedia)
+                <http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval>`
     """
     @staticmethod
     def getAgrestiCoullInterval(int: int, double: float, double2: float) -> 'ConfidenceInterval': ...
@@ -30,7 +31,7 @@ class BinomialProportion:
 
 class ConfidenceInterval:
     """
-    public class ConfidenceInterval extends :class:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classConfidenceInterval extends :class:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Represents an interval estimate of a population parameter.
     """
@@ -70,8 +71,8 @@ class ConfidenceInterval:
             Get String representation of the confidence interval.
         
             Overrides:
-                :meth:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.stat.interval.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 String representation of the confidence interval
diff --git a/org-stubs/hipparchus/stat/projection/__init__.pyi b/org-stubs/hipparchus/stat/projection/__init__.pyi
index 81318401e03ee245622f6aa9210133ea9716068b..01affae67762a10f83f61d42f8b042ca49bce1ce 100644
--- a/org-stubs/hipparchus/stat/projection/__init__.pyi
+++ b/org-stubs/hipparchus/stat/projection/__init__.pyi
@@ -12,7 +12,7 @@ import typing
 
 class PCA:
     """
-    public class PCA extends :class:`~org.hipparchus.stat.projection.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classPCA extends :class:`~org.hipparchus.stat.projection.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Principal component analysis (PCA) is a statistical technique for reducing the dimensionality of a dataset.
         :class:`~org.hipparchus.stat.projection.https:.en.wikipedia.org.wiki.Principal_component_analysis` can be thought of as
diff --git a/org-stubs/hipparchus/stat/ranking/__init__.pyi b/org-stubs/hipparchus/stat/ranking/__init__.pyi
index 141e99786c0ad5e53706d68b12fb5b5834b0974c..a4dfb15fb1c3144d788aaa42107b47e33e574cc3 100644
--- a/org-stubs/hipparchus/stat/ranking/__init__.pyi
+++ b/org-stubs/hipparchus/stat/ranking/__init__.pyi
@@ -14,7 +14,7 @@ import typing
 
 class NaNStrategy(java.lang.Enum['NaNStrategy']):
     """
-    public enum NaNStrategy extends :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.stat.ranking.NaNStrategy`>
+    public enumNaNStrategy extends :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.stat.ranking.NaNStrategy`>
     
         Strategies for handling NaN values in rank transformations.
     
@@ -43,14 +43,14 @@ class NaNStrategy(java.lang.Enum['NaNStrategy']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -58,15 +58,7 @@ class NaNStrategy(java.lang.Enum['NaNStrategy']):
     @staticmethod
     def values() -> typing.MutableSequence['NaNStrategy']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (NaNStrategy c : NaNStrategy.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -77,7 +69,7 @@ class NaNStrategy(java.lang.Enum['NaNStrategy']):
 
 class RankingAlgorithm:
     """
-    public interface RankingAlgorithm
+    public interfaceRankingAlgorithm
     
         Interface representing a rank transformation.
     """
@@ -101,7 +93,7 @@ class RankingAlgorithm:
 
 class TiesStrategy(java.lang.Enum['TiesStrategy']):
     """
-    public enum TiesStrategy extends :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.stat.ranking.TiesStrategy`>
+    public enumTiesStrategy extends :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.stat.ranking.TiesStrategy`>
     
         Strategies for handling tied values in rank transformations.
     
@@ -133,14 +125,14 @@ class TiesStrategy(java.lang.Enum['TiesStrategy']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -148,15 +140,7 @@ class TiesStrategy(java.lang.Enum['TiesStrategy']):
     @staticmethod
     def values() -> typing.MutableSequence['TiesStrategy']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (TiesStrategy c : TiesStrategy.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -167,7 +151,8 @@ class TiesStrategy(java.lang.Enum['TiesStrategy']):
 
 class NaturalRanking(RankingAlgorithm):
     """
-    public class NaturalRanking extends :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.ranking.RankingAlgorithm`
+    public classNaturalRanking extends :class:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.ranking.RankingAlgorithm`
     
     
         Ranking based on the natural ordering on doubles.
@@ -242,8 +227,8 @@ class NaturalRanking(RankingAlgorithm):
         
             Raises:
                 :class:`~org.hipparchus.stat.ranking.https:.www.hipparchus.org.hipparchus`: if the selected :class:`~org.hipparchus.stat.ranking.NaNStrategy` is :code:`FAILED` and a
-                    :meth:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is` is encountered in
-                    the input data
+                    :meth:`~org.hipparchus.stat.ranking.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.NaN` is encountered in the
+                    input data
         
         
         """
diff --git a/org-stubs/hipparchus/stat/regression/__init__.pyi b/org-stubs/hipparchus/stat/regression/__init__.pyi
index 118c7e2933a5cb35a1a14ae9ffbac12b9d4b1450..e39aef6d6b8f8734518d45cd373fd22c1da24e12 100644
--- a/org-stubs/hipparchus/stat/regression/__init__.pyi
+++ b/org-stubs/hipparchus/stat/regression/__init__.pyi
@@ -14,14 +14,13 @@ import typing
 
 class MultipleLinearRegression:
     """
-    public interface MultipleLinearRegression
+    public interfaceMultipleLinearRegression
     
         The multiple linear regression can be represented in matrix-notation.
     
         .. code-block: java
         
-        
-          y=X*b+u
+          y=X*b+u
          
         where y is an :code:`n-vector` **regressand**, X is a :code:`[n,k]` matrix whose :code:`k` columns are called
         **regressors**, b is :code:`k-vector` of **regression parameters** and :code:`u` is an :code:`n-vector` of **error
@@ -81,12 +80,14 @@ class MultipleLinearRegression:
 
 class RegressionResults(java.io.Serializable):
     """
-    public class RegressionResults extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classRegressionResults extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Results of a Multiple Linear Regression model fit.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray], boolean: bool, long: int, int: int, double3: float, double4: float, double5: float, boolean2: bool, boolean3: bool): ...
     def getAdjustedRSquared(self) -> float:
@@ -100,8 +101,7 @@ class RegressionResults(java.io.Serializable):
         
             .. code-block: java
             
-            
-             :meth:`~org.hipparchus.stat.regression.RegressionResults.getRSquared`
+             :meth:`~org.hipparchus.stat.regression.RegressionResults.getRSquared`
              
         
             Returns:
@@ -266,7 +266,7 @@ class RegressionResults(java.io.Serializable):
 
 class UpdatingMultipleLinearRegression:
     """
-    public interface UpdatingMultipleLinearRegression
+    public interfaceUpdatingMultipleLinearRegression
     
         An interface for regression models allowing for dynamic updating of the data. That is, the entire data set need not be
         loaded into memory. As observations become available, they can be added to the regression model and an updated estimate
@@ -307,7 +307,8 @@ class UpdatingMultipleLinearRegression:
 
 class AbstractMultipleLinearRegression(MultipleLinearRegression):
     """
-    public abstract class AbstractMultipleLinearRegression extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.regression.MultipleLinearRegression`
+    public abstract classAbstractMultipleLinearRegression extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.regression.MultipleLinearRegression`
     
         Abstract base class for implementations of MultipleLinearRegression.
     """
@@ -423,12 +424,11 @@ class AbstractMultipleLinearRegression(MultipleLinearRegression):
         
             .. code-block: java
             
-            
-               y   x[0]  x[1]
-               --------------
-               1     2     3
-               4     5     6
-               7     8     9
+               y   x[0]  x[1]
+               --------------
+               1     2     3
+               4     5     6
+               7     8     9
              
         
             Note that there is no need to add an initial unitary column (column of 1's) when specifying a model including an
@@ -468,7 +468,8 @@ class AbstractMultipleLinearRegression(MultipleLinearRegression):
 
 class MillerUpdatingRegression(UpdatingMultipleLinearRegression):
     """
-    public class MillerUpdatingRegression extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.regression.UpdatingMultipleLinearRegression`
+    public classMillerUpdatingRegression extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.regression.UpdatingMultipleLinearRegression`
     
         This class is a concrete implementation of the :class:`~org.hipparchus.stat.regression.UpdatingMultipleLinearRegression`
         interface.
@@ -477,14 +478,13 @@ class MillerUpdatingRegression(UpdatingMultipleLinearRegression):
     
         .. code-block: java
         
-        
-         Algorithm AS 274: Least Squares Routines to Supplement Those of Gentleman
-         Author(s): Alan J. Miller
-         Source: Journal of the Royal Statistical Society.
-         Series C (Applied Statistics), Vol. 41, No. 2
-         (1992), pp. 458-478
-         Published by: Blackwell Publishing for the Royal Statistical Society
-         Stable URL: http://www.jstor.org/stable/2347583 
+         Algorithm AS 274: Least Squares Routines to Supplement Those of Gentleman
+         Author(s): Alan J. Miller
+         Source: Journal of the Royal Statistical Society.
+         Series C (Applied Statistics), Vol. 41, No. 2
+         (1992), pp. 458-478
+         Published by: Blackwell Publishing for the Royal Statistical Society
+         Stable URL: :class:`~org.hipparchus.stat.regression.https:.www.jstor.org.stable.2347583` 
     
         This method for multiple regression forms the solution to the OLS problem by updating the QR decomposition as described
         by Gentleman.
@@ -551,13 +551,12 @@ class MillerUpdatingRegression(UpdatingMultipleLinearRegression):
         
             .. code-block: java
             
-            
-             corr =
-             {
-               corrxx - lower triangular
-               corrxy - bottom row of the matrix
-             }
-             Replaces subroutines PCORR and COR of:
+             corr =
+             {
+               corrxx - lower triangular
+               corrxy - bottom row of the matrix
+             }
+             Replaces subroutines PCORR and COR of:
              ALGORITHM AS274  APPL. STATIST. (1992) VOL.41, NO. 2 
         
             Calculate partial correlations after the variables in rows 1, 2, ..., IN have been forced into the regression. If IN =
@@ -567,7 +566,6 @@ class MillerUpdatingRegression(UpdatingMultipleLinearRegression):
         
             .. code-block: java
             
-            
              sum ( Xi.Xj ) / Sqrt ( sum (Xi^2) . sum (Xj^2) )
         
             On return, array CORMAT contains the upper triangle of the matrix of partial correlations stored by rows, excluding the
@@ -608,7 +606,8 @@ class MillerUpdatingRegression(UpdatingMultipleLinearRegression):
 
 class SimpleRegression(java.io.Serializable, UpdatingMultipleLinearRegression):
     """
-    public class SimpleRegression extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.hipparchus.stat.regression.UpdatingMultipleLinearRegression`
+    public classSimpleRegression extends :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`, :class:`~org.hipparchus.stat.regression.UpdatingMultipleLinearRegression`
     
         Estimates an ordinary least squares regression model with one independent variable.
     
@@ -636,7 +635,8 @@ class SimpleRegression(java.io.Serializable, UpdatingMultipleLinearRegression):
     
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -655,7 +655,7 @@ class SimpleRegression(java.io.Serializable, UpdatingMultipleLinearRegression):
                 x (double): independent variable value
                 y (double): dependent variable value
         
-        public void addData (double[][] data) throws :class:`~org.hipparchus.stat.regression.https:.www.hipparchus.org.hipparchus`
+        public void addData(double[][] data) throws :class:`~org.hipparchus.stat.regression.https:.www.hipparchus.org.hipparchus`
         
             Adds the observations represented by the elements in :code:`data`.
         
@@ -723,7 +723,9 @@ class SimpleRegression(java.io.Serializable, UpdatingMultipleLinearRegression):
                 the intercept of the regression line if the model includes an intercept; 0 otherwise
         
             Also see:
-                :meth:`~org.hipparchus.stat.regression.SimpleRegression.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.stat.regression.SimpleRegression.%3Cinit%3E`
+        
         
         
         """
@@ -961,7 +963,9 @@ class SimpleRegression(java.io.Serializable, UpdatingMultipleLinearRegression):
                 true if the regression includes an intercept; false otherwise
         
             Also see:
-                :meth:`~org.hipparchus.stat.regression.SimpleRegression.%3Cinit%3E`
+        
+                  - :meth:`~org.hipparchus.stat.regression.SimpleRegression.%3Cinit%3E`
+        
         
         
         """
@@ -1028,27 +1032,24 @@ class SimpleRegression(java.io.Serializable, UpdatingMultipleLinearRegression):
 
 class GLSMultipleLinearRegression(AbstractMultipleLinearRegression):
     """
-    public class GLSMultipleLinearRegression extends :class:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression`
+    public classGLSMultipleLinearRegression extends :class:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression`
     
         The GLS implementation of multiple linear regression. GLS assumes a general covariance matrix Omega of the error
     
         .. code-block: java
         
-        
-         u ~ N(0, Omega)
+         u ~ N(0, Omega)
          
         Estimated by GLS,
     
         .. code-block: java
         
-        
-         b=(X' Omega^-1 X)^-1X'Omega^-1 y
+         b=(X' Omega^-1 X)^-1X'Omega^-1 y
          
         whose variance is
     
         .. code-block: java
         
-        
          Var(b)=(X' Omega^-1 X)^-1
     """
     def __init__(self): ...
@@ -1070,7 +1071,7 @@ class GLSMultipleLinearRegression(AbstractMultipleLinearRegression):
 
 class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
     """
-    public class OLSMultipleLinearRegression extends :class:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression`
+    public classOLSMultipleLinearRegression extends :class:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression`
     
     
         Implements ordinary least squares (OLS) to estimate the parameters of a multiple linear regression model.
@@ -1090,11 +1091,11 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
     
         .. code-block: java
         
-         X :sup:`T` X b = X :sup:`T`  y
-         (QR) :sup:`T`  (QR) b = (QR) :sup:`T` y
-         R :sup:`T`  (Q :sup:`T` Q) R b = R :sup:`T`  Q :sup:`T`  y
-         R :sup:`T`  R b = R :sup:`T`  Q :sup:`T`  y
-         (R :sup:`T` ) :sup:`-1`  R :sup:`T`  R b = (R :sup:`T` ) :sup:`-1`  R :sup:`T`  Q :sup:`T`  y
+         X :sup:`T` X b = X :sup:`T`  y
+         (QR) :sup:`T`  (QR) b = (QR) :sup:`T` y
+         R :sup:`T`  (Q :sup:`T` Q) R b = R :sup:`T`  Q :sup:`T`  y
+         R :sup:`T`  R b = R :sup:`T`  Q :sup:`T`  y
+         (R :sup:`T` ) :sup:`-1`  R :sup:`T`  R b = (R :sup:`T` ) :sup:`-1`  R :sup:`T`  Q :sup:`T`  y
          R b = Q :sup:`T`  y 
     
         Given :code:`Q` and :code:`R`, the last equation is solved by back-substitution.
@@ -1116,8 +1117,7 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
         
             .. code-block: java
             
-            
-             :meth:`~org.hipparchus.stat.regression.OLSMultipleLinearRegression.calculateRSquared`
+             :meth:`~org.hipparchus.stat.regression.OLSMultipleLinearRegression.calculateRSquared`
              
         
             If there is no variance in y, i.e., SSTO = 0, NaN is returned.
@@ -1126,11 +1126,13 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
                 adjusted R-Squared statistic
         
             Raises:
-                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the sample has not been set
+                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the sample has not been set
                 :class:`~org.hipparchus.stat.regression.https:.www.hipparchus.org.hipparchus`: if the design matrix is singular
         
             Also see:
-                :meth:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression.isNoIntercept`
+        
+                  - :meth:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression.isNoIntercept`
+        
         
         
         """
@@ -1153,7 +1155,7 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
                 the hat matrix
         
             Raises:
-                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: unless method :code:`newSampleData` has been called beforehand.
+                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: unless method :code:`newSampleData` has been called beforehand.
         
         
         """
@@ -1170,7 +1172,7 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
                 R-square statistic
         
             Raises:
-                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the sample has not been set
+                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the sample has not been set
                 :class:`~org.hipparchus.stat.regression.https:.www.hipparchus.org.hipparchus`: if the design matrix is singular
         
         
@@ -1185,7 +1187,7 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
         
             Raises:
                 :class:`~org.hipparchus.stat.regression.https:.www.hipparchus.org.hipparchus`: if the design matrix is singular
-                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the data for the model have not been loaded
+                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the data for the model have not been loaded
         
         
         """
@@ -1205,10 +1207,12 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
                 SSTO - the total sum of squares
         
             Raises:
-                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the sample has not been set
+                :class:`~org.hipparchus.stat.regression.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the sample has not been set
         
             Also see:
-                :meth:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression.isNoIntercept`
+        
+                  - :meth:`~org.hipparchus.stat.regression.AbstractMultipleLinearRegression.isNoIntercept`
+        
         
         
         """
@@ -1225,12 +1229,11 @@ class OLSMultipleLinearRegression(AbstractMultipleLinearRegression):
         
             .. code-block: java
             
-            
-               y   x[0]  x[1]
-               --------------
-               1     2     3
-               4     5     6
-               7     8     9
+               y   x[0]  x[1]
+               --------------
+               1     2     3
+               4     5     6
+               7     8     9
              
         
             Note that there is no need to add an initial unitary column (column of 1's) when specifying a model including an
diff --git a/org-stubs/hipparchus/util/__init__.pyi b/org-stubs/hipparchus/util/__init__.pyi
index 840aad9b21efe78d62624786caf5fe54b14354a6..bbac73821bd8b21e612f917b93b5dfca3731ab48 100644
--- a/org-stubs/hipparchus/util/__init__.pyi
+++ b/org-stubs/hipparchus/util/__init__.pyi
@@ -13,6 +13,7 @@ import java.text
 import java.util
 import java.util.stream
 import jpype
+import org
 import org.hipparchus
 import org.hipparchus.exception
 import org.hipparchus.linear
@@ -21,12 +22,67 @@ import typing
 
 
 
+class AbstractOpenIntHashMap:
+    """
+    public abstract classAbstractOpenIntHashMap extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    
+        Base class for open addressed map from int.
+    
+        Since:
+            3.1
+    """
+    @typing.overload
+    def containsKey(self, int: int) -> bool:
+        """
+            Check if a value is associated with a key.
+        
+            Parameters:
+                key (int): key to check
+        
+            Returns:
+                true if a value is associated with key
+        
+            Check if the tables contain an element associated with specified key at specified index.
+        
+            Parameters:
+                key (int): key to check
+                index (int): index to check
+        
+            Returns:
+                true if an element is associated with key at index
+        
+        
+        """
+        ...
+    @typing.overload
+    def containsKey(self, int: int, int2: int) -> bool: ...
+    def getSize(self) -> int:
+        """
+            Get the number of elements stored in the map.
+        
+            Returns:
+                number of elements stored in the map
+        
+        
+        """
+        ...
+    def size(self) -> int:
+        """
+            Get the number of elements stored in the map.
+        
+            Returns:
+                number of elements stored in the map
+        
+        
+        """
+        ...
+
 class ArithmeticUtils:
     """
-    public final class ArithmeticUtils extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public final classArithmeticUtils extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Some useful, arithmetics related, additions to the built-in functions in
-        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math?is`.
+        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math`.
     """
     @typing.overload
     @staticmethod
@@ -166,7 +222,8 @@ class ArithmeticUtils:
 
 class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigReal'], java.io.Serializable):
     """
-    public class BigReal extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.FieldElement`<:class:`~org.hipparchus.util.BigReal`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.hipparchus.util.BigReal`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBigReal extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.FieldElement`<:class:`~org.hipparchus.util.BigReal`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<:class:`~org.hipparchus.util.BigReal`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Arbitrary precision decimal number.
     
@@ -174,7 +231,8 @@ class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigR
         :class:`~org.hipparchus.FieldElement` interface.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     ZERO: typing.ClassVar['BigReal'] = ...
     """
@@ -254,8 +312,8 @@ class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigR
         """
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.html?is` in
-                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo` in
+                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`
         
         
         """
@@ -275,8 +333,8 @@ class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigR
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -319,8 +377,8 @@ class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigR
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -375,7 +433,7 @@ class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigR
             Sets the rounding mode for decimal divisions.
         
             Parameters:
-                roundingMode (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode?is`): rounding mode for decimal divisions
+                roundingMode (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode`): rounding mode for decimal divisions
         
         
         """
@@ -409,21 +467,24 @@ class BigReal(org.hipparchus.FieldElement['BigReal'], java.lang.Comparable['BigR
 
 class BigRealField(org.hipparchus.Field[BigReal], java.io.Serializable):
     """
-    public class BigRealField extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.util.BigReal`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBigRealField extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.util.BigReal`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         Representation of real numbers with arbitrary precision field.
     
         This class is a singleton.
     
         Also see:
-            :class:`~org.hipparchus.util.BigReal`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.util.BigReal`
+              - :meth:`~serialized`
     """
     def equals(self, object: typing.Any) -> bool:
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -476,8 +537,8 @@ class BigRealField(org.hipparchus.Field[BigReal], java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -485,14 +546,16 @@ class BigRealField(org.hipparchus.Field[BigReal], java.io.Serializable):
 
 class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64'], java.lang.Comparable['Binary64']):
     """
-    public class Binary64 extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.util.Binary64`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.hipparchus.util.Binary64`>
+    public classBinary64 extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
+    implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.util.Binary64`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`<:class:`~org.hipparchus.util.Binary64`>
     
         This class wraps a :code:`double` value in an object. It is similar to the standard class
-        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double?is`, while also implementing the
+        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double`, while also implementing the
         :class:`~org.hipparchus.CalculusFieldElement` interface.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     ZERO: typing.ClassVar['Binary64'] = ...
     """
@@ -519,24 +582,26 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
     """
     public static final :class:`~org.hipparchus.util.Binary64` NEGATIVE_INFINITY
     
-        The constant value of :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is` as
-        a :code:`Binary64`.
+        The constant value of
+        :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.NEGATIVE_INFINITY` as a
+        :code:`Binary64`.
     
     """
     POSITIVE_INFINITY: typing.ClassVar['Binary64'] = ...
     """
     public static final :class:`~org.hipparchus.util.Binary64` POSITIVE_INFINITY
     
-        The constant value of :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is` as
-        a :code:`Binary64`.
+        The constant value of
+        :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.POSITIVE_INFINITY` as a
+        :code:`Binary64`.
     
     """
     NAN: typing.ClassVar['Binary64'] = ...
     """
     public static final :class:`~org.hipparchus.util.Binary64` NAN
     
-        The constant value of :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is` as
-        a :code:`Binary64`.
+        The constant value of :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.NaN` as a
+        :code:`Binary64`.
     
     """
     def __init__(self, double: float): ...
@@ -544,8 +609,6 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
         """
             absolute value.
         
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
@@ -690,8 +753,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The current implementation performs casting to a :code:`byte`.
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.byteValue` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
         
         """
@@ -728,11 +791,13 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             Double(o.doubleValue()))`
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.html?is` in
-                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable.compareTo` in
+                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable`
         
             Also see:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`
+        
+                  - :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.compareTo`
+        
         
         
         """
@@ -799,6 +864,9 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             Compute this ÷ a. The current implementation strictly enforces :code:`this.divide(a).equals(new
             Binary64(this.doubleValue() / a.doubleValue()))`.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -828,8 +896,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
         """
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.doubleValue` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
         
         """
@@ -838,8 +906,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -875,8 +943,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The current implementation performs casting to a :code:`float`.
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.floatValue` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
         
         """
@@ -928,11 +996,13 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The current implementation returns the same value as :code:`new Double(this.doubleValue()).hashCode()`
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Also see:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`
+        
+                  - :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.hashCode`
+        
         
         
         """
@@ -963,8 +1033,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The current implementation performs casting to a :code:`int`.
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.intValue` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
         
         """
@@ -972,8 +1042,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
     def isInfinite(self) -> bool:
         """
             Returns :code:`true` if :code:`this` double precision number is infinite
-            (:meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is` or
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`).
+            (:meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.POSITIVE_INFINITY` or
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.NEGATIVE_INFINITY`).
         
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.isInfinite` in interface :class:`~org.hipparchus.CalculusFieldElement`
@@ -1039,8 +1109,10 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -1058,8 +1130,10 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -1079,8 +1153,10 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -1100,8 +1176,10 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -1123,8 +1201,10 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -1146,8 +1226,10 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -1210,8 +1292,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The current implementation performs casting to a :code:`long`.
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.longValue` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
         
         """
@@ -1235,6 +1317,9 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             \sum_{i=1}^n \mathrm{this} \] The current implementation strictly enforces :code:`this.multiply(n).equals(new Binary64(n
             * this.doubleValue()))`.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1340,9 +1425,6 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             Returns the multiplicative inverse of :code:`this` element. The current implementation strictly enforces
             :code:`this.reciprocal().equals(new Binary64(1.0 / this.doubleValue()))`.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1432,8 +1514,8 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The current implementation performs casting to a :code:`short`.
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number.shortValue` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Number`
         
         
         """
@@ -1491,6 +1573,20 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
                 square root of the instance
         
         
+        """
+        ...
+    def square(self) -> 'Binary64':
+        """
+            Description copied from interface: :meth:`~org.hipparchus.CalculusFieldElement.square`
+            Compute this × this.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                a new element representing this × this
+        
+        
         """
         ...
     @typing.overload
@@ -1499,6 +1595,9 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             Compute this - a. The current implementation strictly enforces :code:`this.subtract(a).equals(new
             Binary64(this.doubleValue() - a.doubleValue()))`.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -1581,11 +1680,13 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
             The returned :code:`String` is equal to :code:`Double.toString(this.doubleValue())`
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Also see:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`
+        
+                  - :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.toString`
+        
         
         
         """
@@ -1606,19 +1707,22 @@ class Binary64(java.lang.Number, org.hipparchus.CalculusFieldElement['Binary64']
 
 class Binary64Field(org.hipparchus.Field[Binary64], java.io.Serializable):
     """
-    public class Binary64Field extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.util.Binary64`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classBinary64Field extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.Field`<:class:`~org.hipparchus.util.Binary64`>, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         The field of :class:`~org.hipparchus.util.Binary64`.
     
         Also see:
-            :class:`~org.hipparchus.util.Binary64`, :meth:`~serialized`
+    
+              - :class:`~org.hipparchus.util.Binary64`
+              - :meth:`~serialized`
     """
     def equals(self, object: typing.Any) -> bool:
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1671,8 +1775,8 @@ class Binary64Field(org.hipparchus.Field[Binary64], java.io.Serializable):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -1681,7 +1785,7 @@ class Binary64Field(org.hipparchus.Field[Binary64], java.io.Serializable):
 _Blendable__B = typing.TypeVar('_Blendable__B')  # <B>
 class Blendable(typing.Generic[_Blendable__B]):
     """
-    public interface Blendable<B>
+    public interfaceBlendable<B>
     
         Interface representing classes that can blend with other instances of themselves using a given blending value.
     
@@ -1692,12 +1796,14 @@ class Blendable(typing.Generic[_Blendable__B]):
 
 class Combinations(java.lang.Iterable[typing.MutableSequence[int]]):
     """
-    public class Combinations extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<int[]>
+    public classCombinations extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<int[]>
     
         Utility to create combinations :code:`(n, k)` of :code:`k` elements in a set of :code:`n` elements.
     
         Also see:
-            ` Combination @ Wikipedia <http://en.wikipedia.org/wiki/Combination>`
+    
+              - ` Combination @ Wikipedia <http://en.wikipedia.org/wiki/Combination>`
     """
     def __init__(self, int: int, int2: int): ...
     def comparator(self) -> java.util.Comparator[typing.MutableSequence[int]]:
@@ -1740,8 +1846,8 @@ class Combinations(java.lang.Iterable[typing.MutableSequence[int]]):
         """
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.html?is` in
-                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.iterator` in
+                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`
         
         
         """
@@ -1749,7 +1855,7 @@ class Combinations(java.lang.Iterable[typing.MutableSequence[int]]):
 
 class CombinatoricsUtils:
     """
-    public final class CombinatoricsUtils extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public final classCombinatoricsUtils extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Combinatorial utilities.
     """
@@ -1763,7 +1869,9 @@ class CombinatoricsUtils:
             2.2
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -1811,7 +1919,7 @@ class CombinatoricsUtils:
                 k (int): Size of the subsets to be enumerated.
         
             Returns:
-                an :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator?is` over the k-sets in n.
+                an :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator` over the k-sets in n.
         
             Raises:
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`n < 0`.
@@ -1842,7 +1950,7 @@ class CombinatoricsUtils:
 
 class CompositeFormat:
     """
-    public class CompositeFormat extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classCompositeFormat extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Base class for formatters of composite objects (complex numbers, vectors ...).
     """
@@ -1859,9 +1967,9 @@ class CompositeFormat:
         
             Parameters:
                 value (double): the double to format.
-                format (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the format used.
-                toAppendTo (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer?is`): where the text is to be appended
-                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition?is`): On input: an alignment field, if desired. On output: the offsets of the alignment field
+                format (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the format used.
+                toAppendTo (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.StringBuffer`): where the text is to be appended
+                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.FieldPosition`): On input: an alignment field, if desired. On output: the offsets of the alignment field
         
             Returns:
                 the value passed in as toAppendTo.
@@ -1874,7 +1982,7 @@ class CompositeFormat:
     def getDefaultNumberFormat() -> java.text.NumberFormat:
         """
             Create a default number format. The default number format is based on
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` with the only
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.getInstance` with the only
             customizing that the maximum number of fraction digits is set to 10.
         
             Returns:
@@ -1887,11 +1995,11 @@ class CompositeFormat:
     def getDefaultNumberFormat(locale: java.util.Locale) -> java.text.NumberFormat:
         """
             Create a default number format. The default number format is based on
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.html?is` with the only
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat.getInstance` with the only
             customizing that the maximum number of fraction digits is set to 10.
         
             Parameters:
-                locale (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale?is`): the specific locale used by the format.
+                locale (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Locale`): the specific locale used by the format.
         
             Returns:
                 the default number format specific to the given locale.
@@ -1905,8 +2013,8 @@ class CompositeFormat:
             Parses :code:`source` until a non-whitespace character is found.
         
             Parameters:
-                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter. On output, :code:`pos` holds the index of the next non-whitespace character.
+                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter. On output, :code:`pos` holds the index of the next non-whitespace character.
         
         
         """
@@ -1917,9 +2025,9 @@ class CompositeFormat:
             Parse :code:`source` for an expected fixed string.
         
             Parameters:
-                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                expected (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): expected string
-                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                expected (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): expected string
+                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 true if the expected string was there
@@ -1933,8 +2041,8 @@ class CompositeFormat:
             Parses :code:`source` until a non-whitespace character is found.
         
             Parameters:
-                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 the first non-whitespace character.
@@ -1949,9 +2057,9 @@ class CompositeFormat:
             special values include Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY.
         
             Parameters:
-                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the string to parse
-                format (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat?is`): the number format used to parse normal, numeric values.
-                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition?is`): input/output parsing parameter.
+                source (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the string to parse
+                format (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.NumberFormat`): the number format used to parse normal, numeric values.
+                pos (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.text.ParsePosition`): input/output parsing parameter.
         
             Returns:
                 the parsed number.
@@ -1962,7 +2070,7 @@ class CompositeFormat:
 
 class ContinuedFraction:
     """
-    public abstract class ContinuedFraction extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classContinuedFraction extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Provides a generic means to evaluate continued fractions. Subclasses simply provided the a and b coefficients to
         evaluate the continued fraction.
@@ -1982,12 +2090,11 @@ class ContinuedFraction:
 
 class FastMath:
     """
-    public class FastMath extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFastMath extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Faster, more accurate, portable alternative to
-        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math?is` and
-        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.StrictMath?is` for large scale
-        computation.
+        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math` and
+        :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.StrictMath` for large scale computation.
     
         FastMath is a drop-in replacement for both Math and StrictMath. This means that for any method in Math (say
         :code:`Math.sin(x)` or :code:`Math.cbrt(y)`), user can directly change the class and use the methods as is (using
@@ -2034,7 +2141,9 @@ class FastMath:
         Archimede's constant PI, ratio of circle circumference to diameter.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -2045,7 +2154,9 @@ class FastMath:
         Napier's constant e, base of the natural logarithm.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -2971,7 +3082,9 @@ class FastMath:
                 1.3
         
             Also see:
-                :meth:`~org.hipparchus.util.FastMath.floorDiv`
+        
+                  - :meth:`~org.hipparchus.util.FastMath.floorDiv`
+        
         
             Finds r such that :code:`a = q b + r` with :code:`0 <= r < b` if :code:`b > 0` and :code:`b < r <= 0` if :code:`b < 0`.
         
@@ -2989,7 +3102,9 @@ class FastMath:
                 :class:`~org.hipparchus.exception.MathRuntimeException`: if b == 0
         
             Also see:
-                :meth:`~org.hipparchus.util.FastMath.floorDiv`
+        
+                  - :meth:`~org.hipparchus.util.FastMath.floorDiv`
+        
         
         
         """
@@ -3023,8 +3138,12 @@ class FastMath:
                 1.3
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`,
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
         
             Compute Fused-multiply-add operation a * b + c.
         
@@ -3042,8 +3161,12 @@ class FastMath:
                 a * b + c, using extended precision in the multiplication
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`,
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
         
         
         """
@@ -3782,7 +3905,7 @@ class FastMath:
             Returns a pseudo-random number between 0.0 and 1.0.
         
             **Note:** this implementation currently delegates to
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math.html?is`
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math.random`
         
             Returns:
                 a random number between 0.0 and 1.0
@@ -4096,7 +4219,7 @@ class FastMath:
             Compute the square root of a number.
         
             **Note:** this implementation currently delegates to
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math.html?is`
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Math.sqrt`
         
             Parameters:
                 a (double): number on which evaluation is done
@@ -4359,7 +4482,7 @@ _FieldBlendable__B = typing.TypeVar('_FieldBlendable__B')  # <B>
 _FieldBlendable__T = typing.TypeVar('_FieldBlendable__T', bound=org.hipparchus.FieldElement)  # <T>
 class FieldBlendable(typing.Generic[_FieldBlendable__B, _FieldBlendable__T]):
     """
-    public interface FieldBlendable<B, T extends :class:`~org.hipparchus.FieldElement`<T>>
+    public interfaceFieldBlendable<B,T extends :class:`~org.hipparchus.FieldElement`<T>>
     
         Interface representing classes that can blend with other instances of themselves using a given blending value.
     
@@ -4370,7 +4493,7 @@ class FieldBlendable(typing.Generic[_FieldBlendable__B, _FieldBlendable__T]):
 
 class FieldContinuedFraction:
     """
-    public abstract class FieldContinuedFraction extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public abstract classFieldContinuedFraction extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Provides a generic means to evaluate continued fractions. Subclasses simply provided the a and b coefficients to
         evaluate the continued fraction.
@@ -4399,7 +4522,7 @@ class FieldContinuedFraction:
 _FieldSinCos__T = typing.TypeVar('_FieldSinCos__T')  # <T>
 class FieldSinCos(typing.Generic[_FieldSinCos__T]):
     """
-    public class FieldSinCos<T> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldSinCos<T> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Holder for both sine and cosine values.
     
@@ -4409,7 +4532,8 @@ class FieldSinCos(typing.Generic[_FieldSinCos__T]):
             1.4
     
         Also see:
-            :meth:`~org.hipparchus.util.FastMath.sinCos`
+    
+              - :meth:`~org.hipparchus.util.FastMath.sinCos`
     """
     def __init__(self, t: _FieldSinCos__T, t2: _FieldSinCos__T): ...
     def cos(self) -> _FieldSinCos__T:
@@ -4474,7 +4598,7 @@ class FieldSinCos(typing.Generic[_FieldSinCos__T]):
 _FieldSinhCosh__T = typing.TypeVar('_FieldSinhCosh__T')  # <T>
 class FieldSinhCosh(typing.Generic[_FieldSinhCosh__T]):
     """
-    public class FieldSinhCosh<T> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classFieldSinhCosh<T> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Holder for both hyperbolic sine and hyperbolic cosine values.
     
@@ -4484,7 +4608,8 @@ class FieldSinhCosh(typing.Generic[_FieldSinhCosh__T]):
             2.0
     
         Also see:
-            :meth:`~org.hipparchus.util.FastMath.sinhCosh`
+    
+              - :meth:`~org.hipparchus.util.FastMath.sinhCosh`
     """
     def __init__(self, t: _FieldSinhCosh__T, t2: _FieldSinhCosh__T): ...
     def cosh(self) -> _FieldSinhCosh__T:
@@ -4543,7 +4668,8 @@ class FieldSinhCosh(typing.Generic[_FieldSinhCosh__T]):
 _FieldTuple__T = typing.TypeVar('_FieldTuple__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldTuple(org.hipparchus.CalculusFieldElement['FieldTuple'[_FieldTuple__T]], typing.Generic[_FieldTuple__T]):
     """
-    public class FieldTuple<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.util.FieldTuple`<T>>
+    public classFieldTuple<T extends :class:`~org.hipparchus.CalculusFieldElement`<T>> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.util.FieldTuple`<T>>
     
         This class allows to perform the same computation of all components of a Tuple at once.
     
@@ -4579,8 +4705,8 @@ class FieldTuple(org.hipparchus.CalculusFieldElement['FieldTuple'[_FieldTuple__T
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -4640,8 +4766,8 @@ class FieldTuple(org.hipparchus.CalculusFieldElement['FieldTuple'[_FieldTuple__T
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -4694,6 +4820,7 @@ class FieldTuple(org.hipparchus.CalculusFieldElement['FieldTuple'[_FieldTuple__T
     def sinh(self) -> 'FieldTuple'[_FieldTuple__T]: ...
     def sinhCosh(self) -> FieldSinhCosh['FieldTuple'[_FieldTuple__T]]: ...
     def sqrt(self) -> 'FieldTuple'[_FieldTuple__T]: ...
+    def square(self) -> 'FieldTuple'[_FieldTuple__T]: ...
     @typing.overload
     def subtract(self, double: float) -> 'FieldTuple'[_FieldTuple__T]: ...
     @typing.overload
@@ -4706,7 +4833,7 @@ class FieldTuple(org.hipparchus.CalculusFieldElement['FieldTuple'[_FieldTuple__T
 
 class Incrementor:
     """
-    public class Incrementor extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classIncrementor extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Utility that increments a counter until a maximum is reached, at which point, the instance will by default throw a
         :class:`~org.hipparchus.exception.MathIllegalStateException`. However, the user is able to override this behaviour by
@@ -4776,7 +4903,9 @@ class Incrementor:
             :meth:`~org.hipparchus.util.Incrementor.withCallback` method.
         
             Also see:
-                :meth:`~org.hipparchus.util.Incrementor.increment`
+        
+                  - :meth:`~org.hipparchus.util.Incrementor.increment`
+        
         
         
         """
@@ -4793,7 +4922,9 @@ class Incrementor:
                 :class:`~org.hipparchus.exception.MathIllegalArgumentException`: if :code:`nTimes` is negative.
         
             Also see:
-                :meth:`~org.hipparchus.util.Incrementor.increment`
+        
+                  - :meth:`~org.hipparchus.util.Incrementor.increment`
+        
         
         """
         ...
@@ -4850,13 +4981,14 @@ class Incrementor:
 
 class IterationEvent(java.util.EventObject):
     """
-    public class IterationEvent extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.EventObject?is`
+    public classIterationEvent extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.EventObject`
     
         The root class from which all events occurring while running an :class:`~org.hipparchus.util.IterationManager` should be
         derived.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     def __init__(self, object: typing.Any, int: int): ...
     def getIterations(self) -> int:
@@ -4872,7 +5004,7 @@ class IterationEvent(java.util.EventObject):
 
 class IterationListener(java.util.EventListener):
     """
-    public interface IterationListener extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.EventListener?is`
+    public interfaceIterationListenerextends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.EventListener`
     
         The listener interface for receiving events occurring in an iterative algorithm.
     """
@@ -4919,7 +5051,7 @@ class IterationListener(java.util.EventListener):
 
 class IterationManager:
     """
-    public class IterationManager extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classIterationManager extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         This abstract class provides a general framework for managing iterative algorithms. The maximum number of iterations can
         be set, and methods are provided to monitor the current iteration count. A lightweight event framework is also provided.
@@ -5019,13 +5151,15 @@ class IterationManager:
 
 class KthSelector(java.io.Serializable):
     """
-    public class KthSelector extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classKthSelector extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A Simple K :sup:`th` selector implementation to pick up the K :sup:`th` ordered element from a work array containing the
         input numbers.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -5059,7 +5193,7 @@ class KthSelector(java.io.Serializable):
 
 class MathArrays:
     """
-    public class MathArrays extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classMathArrays extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Arrays utilities.
     """
@@ -5467,7 +5601,10 @@ class MathArrays:
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
         
             Compute a linear combination accurately.
         
@@ -5489,7 +5626,10 @@ class MathArrays:
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
         
             Compute a linear combination accurately.
         
@@ -5513,7 +5653,10 @@ class MathArrays:
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.linearCombination`, :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+                  - :meth:`~org.hipparchus.util.MathArrays.linearCombination`
+        
         
         
         """
@@ -5642,7 +5785,9 @@ class MathArrays:
                 list (int[]): Array whose entries will be shuffled (in-place).
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.shuffle`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.shuffle`
+        
         
         
         """
@@ -5662,7 +5807,9 @@ class MathArrays:
                     :meth:`~org.hipparchus.util.MathArrays.Position.HEAD`) of the array.
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.shuffle`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.shuffle`
+        
         
             Shuffle the entries of the given array, using the :meth:`~org.hipparchus.util.https:.en.wikipedia.org.wiki.Fisher`
             algorithm. The :code:`start` and :code:`pos` parameters select which portion of the array is randomized and which is
@@ -5692,7 +5839,9 @@ class MathArrays:
                 rng (:class:`~org.hipparchus.random.RandomGenerator`): Random number generator.
         
             Also see:
-                :meth:`~org.hipparchus.util.MathArrays.shuffle`
+        
+                  - :meth:`~org.hipparchus.util.MathArrays.shuffle`
+        
         
         """
         ...
@@ -5717,7 +5866,7 @@ class MathArrays:
                 descending list of values included in the input array
         
             Raises:
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if data is null
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if data is null
         
         
         """
@@ -5767,13 +5916,15 @@ class MathArrays:
 _MathUtils__FieldSumAndResidual__T = typing.TypeVar('_MathUtils__FieldSumAndResidual__T', bound=org.hipparchus.FieldElement)  # <T>
 class MathUtils:
     """
-    public final class MathUtils extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public final classMathUtils extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Miscellaneous utility functions.
     
         Also see:
-            :class:`~org.hipparchus.util.ArithmeticUtils`, :class:`~org.hipparchus.util.Precision`,
-            :class:`~org.hipparchus.util.MathArrays`
+    
+              - :class:`~org.hipparchus.util.ArithmeticUtils`
+              - :class:`~org.hipparchus.util.Precision`
+              - :class:`~org.hipparchus.util.MathArrays`
     """
     TWO_PI: typing.ClassVar[float] = ...
     """
@@ -5782,7 +5933,9 @@ class MathUtils:
         \(2\pi\)
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -5793,7 +5946,9 @@ class MathUtils:
         \(\pi^2\)
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -5804,7 +5959,9 @@ class MathUtils:
         \(\pi/2\).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -5881,7 +6038,7 @@ class MathUtils:
     def equals(self, object: typing.Any) -> bool:
         """
             Returns :code:`true` if the values are equal according to semantics of
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.html?is`.
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Double.equals`.
         
             Parameters:
                 x (double): Value
@@ -6105,7 +6262,8 @@ class MathUtils:
 
 class MultidimensionalCounter(java.lang.Iterable[int]):
     """
-    public class MultidimensionalCounter extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`<:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer?is`>
+    public classMultidimensionalCounter extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`<:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer`>
     
         Converter between unidimensional storage structure and multidimensional conceptual structure. This utility will convert
         from indices in a multidimensional structure to the corresponding index in a one-dimensional array. For example,
@@ -6159,8 +6317,8 @@ class MultidimensionalCounter(java.lang.Iterable[int]):
             Create an iterator over this counter.
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.html?is` in
-                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable.iterator` in
+                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Iterable`
         
             Returns:
                 the iterator.
@@ -6172,8 +6330,8 @@ class MultidimensionalCounter(java.lang.Iterable[int]):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -6188,332 +6346,115 @@ class MultidimensionalCounter(java.lang.Iterable[int]):
         def next(self) -> int: ...
         def remove(self) -> None: ...
 
-class OpenIntToDoubleHashMap(java.io.Serializable):
+_Pair__K = typing.TypeVar('_Pair__K')  # <K>
+_Pair__V = typing.TypeVar('_Pair__V')  # <V>
+class Pair(typing.Generic[_Pair__K, _Pair__V]):
     """
-    public class OpenIntToDoubleHashMap extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
-    
-        Open addressed map from int to double.
-    
-        This class provides a dedicated map from integers to doubles with a much smaller memory overhead than standard
-        :code:`java.util.Map`.
+    public classPair<K,V> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
-        This class is not synchronized. The specialized iterators returned by
-        :meth:`~org.hipparchus.util.OpenIntToDoubleHashMap.iterator` are fail-fast: they throw a
-        :code:`ConcurrentModificationException` when they detect the map has been modified during iteration.
+        Generic pair.
     
-        Also see:
-            :meth:`~serialized`
+        Although the instances of this class are immutable, it is impossible to ensure that the references passed to the
+        constructor will not be modified by the caller.
     """
     @typing.overload
-    def __init__(self): ...
-    @typing.overload
-    def __init__(self, double: float): ...
-    @typing.overload
-    def __init__(self, int: int): ...
-    @typing.overload
-    def __init__(self, int: int, double: float): ...
+    def __init__(self, k: _Pair__K, v: _Pair__V): ...
     @typing.overload
-    def __init__(self, openIntToDoubleHashMap: 'OpenIntToDoubleHashMap'): ...
-    def containsKey(self, int: int) -> bool:
+    def __init__(self, pair: 'Pair'[_Pair__K, _Pair__V]): ...
+    _create__K = typing.TypeVar('_create__K')  # <K>
+    _create__V = typing.TypeVar('_create__V')  # <V>
+    @staticmethod
+    def create(k: _create__K, v: _create__V) -> 'Pair'[_create__K, _create__V]:
         """
-            Check if a value is associated with a key.
+            Convenience factory method that calls the :meth:`~org.hipparchus.util.Pair.%3Cinit%3E`.
         
             Parameters:
-                key (int): key to check
+                k (K): First element of the pair.
+                v (V): Second element of the pair.
         
             Returns:
-                true if a value is associated with key
+                a new :code:`Pair` containing :code:`k` and :code:`v`.
         
         
         """
         ...
-    def get(self, int: int) -> float:
+    def equals(self, object: typing.Any) -> bool:
         """
-            Get the stored value associated with the given key
+            Compare the specified object with this entry for equality.
+        
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                key (int): key associated with the data
+                o (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): Object.
         
             Returns:
-                data associated with the key
+                :code:`true` if the given object is also a map entry and the two entries represent the same mapping.
         
         
         """
         ...
-    def iterator(self) -> 'OpenIntToDoubleHashMap.Iterator':
+    def getFirst(self) -> _Pair__K:
         """
-            Get an iterator over map elements.
-        
-            The specialized iterators returned are fail-fast: they throw a :code:`ConcurrentModificationException` when they detect
-            the map has been modified during iteration.
+            Get the first element of the pair.
         
             Returns:
-                iterator over the map elements
+                the first element of the pair.
         
         
         """
         ...
-    def put(self, int: int, double: float) -> float:
+    def getKey(self) -> _Pair__K:
         """
-            Put a value associated with a key in the map.
-        
-            Parameters:
-                key (int): key to which value is associated
-                value (double): value to put in the map
+            Get the key.
         
             Returns:
-                previous value associated with the key
+                the key (first element of the pair).
         
         
         """
         ...
-    def remove(self, int: int) -> float:
+    def getSecond(self) -> _Pair__V:
         """
-            Remove the value associated with a key.
-        
-            Parameters:
-                key (int): key to which the value is associated
+            Get the second element of the pair.
         
             Returns:
-                removed value
+                the second element of the pair.
         
         
         """
         ...
-    def size(self) -> int:
+    def getValue(self) -> _Pair__V:
         """
-            Get the number of elements stored in the map.
+            Get the value.
         
             Returns:
-                number of elements stored in the map
+                the value (second element of the pair).
         
         
         """
         ...
-    class Iterator:
-        def advance(self) -> None: ...
-        def hasNext(self) -> bool: ...
-        def key(self) -> int: ...
-        def value(self) -> float: ...
-
-_OpenIntToFieldHashMap__T = typing.TypeVar('_OpenIntToFieldHashMap__T', bound=org.hipparchus.FieldElement)  # <T>
-class OpenIntToFieldHashMap(java.io.Serializable, typing.Generic[_OpenIntToFieldHashMap__T]):
-    """
-    public class OpenIntToFieldHashMap<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
-    
-        Open addressed map from int to FieldElement.
-    
-        This class provides a dedicated map from integers to FieldElements with a much smaller memory overhead than standard
-        :code:`java.util.Map`.
-    
-        This class is not synchronized. The specialized iterators returned by
-        :meth:`~org.hipparchus.util.OpenIntToFieldHashMap.iterator` are fail-fast: they throw a
-        :code:`ConcurrentModificationException` when they detect the map has been modified during iteration.
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T]): ...
-    @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T], int: int): ...
-    @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T], int: int, t: _OpenIntToFieldHashMap__T): ...
-    @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T], t: _OpenIntToFieldHashMap__T): ...
-    @typing.overload
-    def __init__(self, openIntToFieldHashMap: 'OpenIntToFieldHashMap'[_OpenIntToFieldHashMap__T]): ...
-    def containsKey(self, int: int) -> bool:
+    def hashCode(self) -> int:
         """
-            Check if a value is associated with a key.
+            Compute a hash code.
         
-            Parameters:
-                key (int): key to check
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
-                true if a value is associated with key
+                the hash code value.
         
         
         """
         ...
-    def get(self, int: int) -> _OpenIntToFieldHashMap__T:
+    def toString(self) -> str:
         """
-            Get the stored value associated with the given key
         
-            Parameters:
-                key (int): key associated with the data
-        
-            Returns:
-                data associated with the key
-        
-        
-        """
-        ...
-    def iterator(self) -> 'OpenIntToFieldHashMap.Iterator':
-        """
-            Get an iterator over map elements.
-        
-            The specialized iterators returned are fail-fast: they throw a :code:`ConcurrentModificationException` when they detect
-            the map has been modified during iteration.
-        
-            Returns:
-                iterator over the map elements
-        
-        
-        """
-        ...
-    def put(self, int: int, t: _OpenIntToFieldHashMap__T) -> _OpenIntToFieldHashMap__T:
-        """
-            Put a value associated with a key in the map.
-        
-            Parameters:
-                key (int): key to which value is associated
-                value (:class:`~org.hipparchus.util.OpenIntToFieldHashMap`): value to put in the map
-        
-            Returns:
-                previous value associated with the key
-        
-        
-        """
-        ...
-    def remove(self, int: int) -> _OpenIntToFieldHashMap__T:
-        """
-            Remove the value associated with a key.
-        
-            Parameters:
-                key (int): key to which the value is associated
-        
-            Returns:
-                removed value
-        
-        
-        """
-        ...
-    def size(self) -> int:
-        """
-            Get the number of elements stored in the map.
-        
-            Returns:
-                number of elements stored in the map
-        
-        
-        """
-        ...
-    class Iterator:
-        def advance(self) -> None: ...
-        def hasNext(self) -> bool: ...
-        def key(self) -> int: ...
-        def value(self) -> _OpenIntToFieldHashMap__T: ...
-
-_Pair__K = typing.TypeVar('_Pair__K')  # <K>
-_Pair__V = typing.TypeVar('_Pair__V')  # <V>
-class Pair(typing.Generic[_Pair__K, _Pair__V]):
-    """
-    public class Pair<K, V> extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-    
-        Generic pair.
-    
-        Although the instances of this class are immutable, it is impossible to ensure that the references passed to the
-        constructor will not be modified by the caller.
-    """
-    @typing.overload
-    def __init__(self, k: _Pair__K, v: _Pair__V): ...
-    @typing.overload
-    def __init__(self, pair: 'Pair'[_Pair__K, _Pair__V]): ...
-    _create__K = typing.TypeVar('_create__K')  # <K>
-    _create__V = typing.TypeVar('_create__V')  # <V>
-    @staticmethod
-    def create(k: _create__K, v: _create__V) -> 'Pair'[_create__K, _create__V]:
-        """
-            Convenience factory method that calls the :meth:`~org.hipparchus.util.Pair.%3Cinit%3E`.
-        
-            Parameters:
-                k (K): First element of the pair.
-                v (V): Second element of the pair.
-        
-            Returns:
-                a new :code:`Pair` containing :code:`k` and :code:`v`.
-        
-        
-        """
-        ...
-    def equals(self, object: typing.Any) -> bool:
-        """
-            Compare the specified object with this entry for equality.
-        
-            Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-        
-            Parameters:
-                o (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): Object.
-        
-            Returns:
-                :code:`true` if the given object is also a map entry and the two entries represent the same mapping.
-        
-        
-        """
-        ...
-    def getFirst(self) -> _Pair__K:
-        """
-            Get the first element of the pair.
-        
-            Returns:
-                the first element of the pair.
-        
-        
-        """
-        ...
-    def getKey(self) -> _Pair__K:
-        """
-            Get the key.
-        
-            Returns:
-                the key (first element of the pair).
-        
-        
-        """
-        ...
-    def getSecond(self) -> _Pair__V:
-        """
-            Get the second element of the pair.
-        
-            Returns:
-                the second element of the pair.
-        
-        
-        """
-        ...
-    def getValue(self) -> _Pair__V:
-        """
-            Get the value.
-        
-            Returns:
-                the value (second element of the pair).
-        
-        
-        """
-        ...
-    def hashCode(self) -> int:
-        """
-            Compute a hash code.
-        
-            Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-        
-            Returns:
-                the hash code value.
-        
-        
-        """
-        ...
-    def toString(self) -> str:
-        """
-        
-            Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.toString` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -6521,7 +6462,7 @@ class Pair(typing.Generic[_Pair__K, _Pair__V]):
 
 class PivotingStrategy(java.lang.Enum['PivotingStrategy']):
     """
-    public enum PivotingStrategy extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.hipparchus.util.PivotingStrategy`>
+    public enumPivotingStrategy extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum`<:class:`~org.hipparchus.util.PivotingStrategy`>
     
         A strategy to pick a pivoting index of an array for doing partitioning.
     """
@@ -6540,14 +6481,14 @@ class PivotingStrategy(java.lang.Enum['PivotingStrategy']):
             declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
         
             Parameters:
-                name (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+                name (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.String`): the name of the enum constant to be returned.
         
             Returns:
                 the enum constant with the specified name
         
             Raises:
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if this enum type has no constant with the specified name
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException`: if the argument is null
         
         
         """
@@ -6555,15 +6496,7 @@ class PivotingStrategy(java.lang.Enum['PivotingStrategy']):
     @staticmethod
     def values() -> typing.MutableSequence['PivotingStrategy']:
         """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
-        
-            .. code-block: java
-            
-            
-            for (PivotingStrategy c : PivotingStrategy.values())
-                System.out.println(c);
-            
+            Returns an array containing the constants of this enum type, in the order they are declared.
         
             Returns:
                 an array containing the constants of this enum type, in the order they are declared
@@ -6574,7 +6507,7 @@ class PivotingStrategy(java.lang.Enum['PivotingStrategy']):
 
 class Precision:
     """
-    public class Precision extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classPrecision extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Utilities for comparing numbers.
     """
@@ -6588,7 +6521,9 @@ class Precision:
         In IEEE 754 arithmetic, this is 2 :sup:`-53` .
     
         Also see:
-            `Machine epsilon <http://en.wikipedia.org/wiki/Machine_epsilon>`
+    
+              - `Machine epsilon <http://en.wikipedia.org/wiki/Machine_epsilon>`
+    
     
     
     """
@@ -6879,8 +6814,7 @@ class Precision:
         
             .. code-block: java
             
-            
-               x + delta - x
+               x + delta - x
              
             is exactly machine-representable. This is useful when computing numerical derivatives, in order to reduce roundoff
             errors.
@@ -6900,7 +6834,7 @@ class Precision:
     def round(double: float, int: int) -> float:
         """
             Rounds the given value to the specified number of decimal places. The value is rounded using the
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal.html?is` method.
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal.ROUND_HALF_UP` method.
         
             Parameters:
                 x (double): Value to round.
@@ -6910,25 +6844,25 @@ class Precision:
                 the rounded value.
         
             Rounds the given value to the specified number of decimal places. The value is rounded using the given method which is
-            any method defined in :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`. If
+            any method defined in :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`. If
             :code:`x` is infinite or :code:`NaN`, then the value of :code:`x` is returned unchanged, regardless of the other
             parameters.
         
             Parameters:
                 x (double): Value to round.
                 scale (int): Number of digits to the right of the decimal point.
-                roundingMethod (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode?is`): Rounding method as defined in
-                    :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`.
+                roundingMethod (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode`): Rounding method as defined in
+                    :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`.
         
             Returns:
                 the rounded value.
         
             Raises:
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArithmeticException?is`: if :code:`roundingMethod == ROUND_UNNECESSARY` and the specified scaling operation would require rounding.
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if :code:`roundingMethod` does not represent a valid rounding mode.
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArithmeticException`: if :code:`roundingMethod == ROUND_UNNECESSARY` and the specified scaling operation would require rounding.
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException`: if :code:`roundingMethod` does not represent a valid rounding mode.
         
             Rounds the given value to the specified number of decimal places. The value is rounded using the
-            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal.html?is` method.
+            :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal.ROUND_HALF_UP` method.
         
             Parameters:
                 x (float): Value to round.
@@ -6937,16 +6871,16 @@ class Precision:
             Returns:
                 the rounded value.
         
-        public static float round (float x, int scale, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode?is` roundingMethod) throws :class:`~org.hipparchus.exception.MathRuntimeException`, :class:`~org.hipparchus.exception.MathIllegalArgumentException`
+        public static float round(float x, int scale, :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode` roundingMethod) throws :class:`~org.hipparchus.exception.MathRuntimeException`, :class:`~org.hipparchus.exception.MathIllegalArgumentException`
         
             Rounds the given value to the specified number of decimal places. The value is rounded using the given method which is
-            any method defined in :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`.
+            any method defined in :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`.
         
             Parameters:
                 x (float): Value to round.
                 scale (int): Number of digits to the right of the decimal point.
-                roundingMethod (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode?is`): Rounding method as defined in
-                    :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal?is`.
+                roundingMethod (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.RoundingMode`): Rounding method as defined in
+                    :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.math.BigDecimal`.
         
             Returns:
                 the rounded value.
@@ -6970,7 +6904,8 @@ class Precision:
 
 class ResizableDoubleArray(java.io.Serializable):
     """
-    public class ResizableDoubleArray extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`
+    public classResizableDoubleArray extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
     
         A variable length primitive double array implementation that automatically handles expanding and contracting its
         internal storage array as elements are added and removed.
@@ -7004,7 +6939,8 @@ class ResizableDoubleArray(java.io.Serializable):
         **Note:** this class is **NOT** thread-safe.
     
         Also see:
-            :meth:`~serialized`
+    
+              - :meth:`~serialized`
     """
     @typing.overload
     def __init__(self): ...
@@ -7103,11 +7039,11 @@ class ResizableDoubleArray(java.io.Serializable):
             array.
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Parameters:
-                object (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`): object to be compared for equality with this
+                object (:class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`): object to be compared for equality with this
         
             Returns:
                 true iff object is a ResizableDoubleArray with the same data and properties as this
@@ -7152,7 +7088,7 @@ class ResizableDoubleArray(java.io.Serializable):
                 value stored at the specified index
         
             Raises:
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArrayIndexOutOfBoundsException?is`: if :code:`index` is less than zero or is greater than :code:`getNumElements() - 1`.
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArrayIndexOutOfBoundsException`: if :code:`index` is less than zero or is greater than :code:`getNumElements() - 1`.
         
         
         """
@@ -7211,8 +7147,8 @@ class ResizableDoubleArray(java.io.Serializable):
             Returns a hash code consistent with equals.
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
             Returns:
                 the hash code representing this :code:`ResizableDoubleArray`.
@@ -7233,7 +7169,7 @@ class ResizableDoubleArray(java.io.Serializable):
                 value (double): value to store at the specified index
         
             Raises:
-                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArrayIndexOutOfBoundsException?is`: if :code:`index < 0`.
+                :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.ArrayIndexOutOfBoundsException`: if :code:`index < 0`.
         
         
         """
@@ -7255,7 +7191,8 @@ class ResizableDoubleArray(java.io.Serializable):
 
 class RosenNumberPartitionIterator(java.util.Iterator[typing.MutableSequence[int]]):
     """
-    public class RosenNumberPartitionIterator extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator?is`<int[]>
+    public classRosenNumberPartitionIterator extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator`<int[]>
     
         An iterator that generates all partitions of :code:`n` elements, into :code:`k` parts containing the number of elements
         in each part, based on Rosen's algorithm.
@@ -7272,11 +7209,13 @@ class RosenNumberPartitionIterator(java.util.Iterator[typing.MutableSequence[int
         """
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.html?is` in
-                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.hasNext` in
+                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator`
         
             Also see:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.html?is`
+        
+                  - :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.hasNext`
+        
         
         
         """
@@ -7285,11 +7224,13 @@ class RosenNumberPartitionIterator(java.util.Iterator[typing.MutableSequence[int
         """
         
             Specified by:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.html?is` in
-                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.next` in
+                interface :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator`
         
             Also see:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.html?is`
+        
+                  - :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.util.Iterator.next`
+        
         
         
         """
@@ -7303,7 +7244,7 @@ class RosenNumberPartitionIterator(java.util.Iterator[typing.MutableSequence[int
 
 class RyuDouble:
     """
-    public final class RyuDouble extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public final classRyuDouble extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         An implementation of Ryū for double.
     
@@ -7312,7 +7253,8 @@ class RyuDouble:
         :code:`Double.toString()`).
     
         Also see:
-            :class:`~org.hipparchus.util.https:.dl.acm.org.citation.cfm?doid=3296979.3192369`
+    
+              - :class:`~org.hipparchus.util.https:.dl.acm.org.citation.cfm?doid=3296979.3192369`
     """
     DEFAULT_LOW_EXP: typing.ClassVar[int] = ...
     """
@@ -7321,7 +7263,9 @@ class RyuDouble:
         Default low switch level to scientific notation.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -7332,7 +7276,9 @@ class RyuDouble:
         Default high switch level to scientific notation.
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -7353,8 +7299,11 @@ class RyuDouble:
                 shortest string representation
         
             Also see:
-                :meth:`~org.hipparchus.util.RyuDouble.doubleToString`, :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_LOW_EXP`,
-                :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_HIGH_EXP`
+        
+                  - :meth:`~org.hipparchus.util.RyuDouble.doubleToString`
+                  - :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_LOW_EXP`
+                  - :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_HIGH_EXP`
+        
         
             Convert a double to shortest string representation, preserving full accuracy.
         
@@ -7370,8 +7319,11 @@ class RyuDouble:
                 shortest string representation
         
             Also see:
-                :meth:`~org.hipparchus.util.RyuDouble.doubleToString`, :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_LOW_EXP`,
-                :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_HIGH_EXP`
+        
+                  - :meth:`~org.hipparchus.util.RyuDouble.doubleToString`
+                  - :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_LOW_EXP`
+                  - :meth:`~org.hipparchus.util.RyuDouble.DEFAULT_HIGH_EXP`
+        
         
         
         """
@@ -7382,7 +7334,7 @@ class RyuDouble:
 
 class SinCos:
     """
-    public class SinCos extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSinCos extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Holder for both sine and cosine values.
     
@@ -7392,7 +7344,8 @@ class SinCos:
             1.3
     
         Also see:
-            :meth:`~org.hipparchus.util.FastMath.sinCos`
+    
+              - :meth:`~org.hipparchus.util.FastMath.sinCos`
     """
     def cos(self) -> float:
         """
@@ -7453,7 +7406,7 @@ class SinCos:
 
 class SinhCosh:
     """
-    public class SinhCosh extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    public classSinhCosh extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
     
         Holder for both hyperbolic sine and hyperbolic cosine values.
     
@@ -7463,7 +7416,8 @@ class SinhCosh:
             2.0
     
         Also see:
-            :meth:`~org.hipparchus.util.FastMath.sinhCosh`
+    
+              - :meth:`~org.hipparchus.util.FastMath.sinhCosh`
     """
     def cosh(self) -> float:
         """
@@ -7518,7 +7472,8 @@ class SinhCosh:
 
 class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
     """
-    public class Tuple extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.util.Tuple`>
+    public classTuple extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.CalculusFieldElement`<:class:`~org.hipparchus.util.Tuple`>
     
         This class allows to perform the same computation of all components of a Tuple at once.
     
@@ -7530,8 +7485,6 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
         """
             absolute value.
         
-            Just another name for :meth:`~org.hipparchus.CalculusFieldElement.norm`
-        
             Specified by:
                 :meth:`~org.hipparchus.CalculusFieldElement.abs` in interface :class:`~org.hipparchus.CalculusFieldElement`
         
@@ -7757,6 +7710,9 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
         """
             Compute this ÷ a.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.divide` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.divide` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -7786,8 +7742,8 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -7897,8 +7853,8 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
         """
         
             Overrides:
-                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
         
         
         """
@@ -7943,8 +7899,10 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -7962,8 +7920,10 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -7983,8 +7943,10 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8004,8 +7966,10 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8027,8 +7991,10 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
             Compute a linear combination.
         
@@ -8050,8 +8016,10 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 a :sub:`1` ×b :sub:`1` + a :sub:`2` ×b :sub:`2` + a :sub:`3` ×b :sub:`3` + a :sub:`4` ×b :sub:`4`
         
             Also see:
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`,
-                :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+                  - :meth:`~org.hipparchus.CalculusFieldElement.linearCombination`
+        
         
         
         """
@@ -8126,6 +8094,9 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
             Compute n × this. Multiplication by an integer number is defined as the following sum \[ n \times \mathrm{this} =
             \sum_{i=1}^n \mathrm{this} \]
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.multiply` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.multiply` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -8229,9 +8200,6 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
         """
             Returns the multiplicative inverse of :code:`this` element.
         
-            Specified by:
-                :meth:`~org.hipparchus.CalculusFieldElement.reciprocal` in interface :class:`~org.hipparchus.CalculusFieldElement`
-        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.reciprocal` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -8369,6 +8337,19 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
                 square root of the instance
         
         
+        """
+        ...
+    def square(self) -> 'Tuple':
+        """
+            Compute this × this.
+        
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.square` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
+            Returns:
+                a new element representing this × this
+        
+        
         """
         ...
     @typing.overload
@@ -8376,6 +8357,9 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
         """
             Compute this - a.
         
+            Specified by:
+                :meth:`~org.hipparchus.CalculusFieldElement.subtract` in interface :class:`~org.hipparchus.CalculusFieldElement`
+        
             Specified by:
                 :meth:`~org.hipparchus.FieldElement.subtract` in interface :class:`~org.hipparchus.FieldElement`
         
@@ -8469,13 +8453,49 @@ class Tuple(org.hipparchus.CalculusFieldElement['Tuple']):
 
 class UnscentedTransformProvider:
     """
-    public interface UnscentedTransformProvider
+    public interfaceUnscentedTransformProvider
     
         Provider for unscented transform.
     
         Since:
             2.2
     """
+    def getUnscentedCovariance(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], realVector2: org.hipparchus.linear.RealVector) -> org.hipparchus.linear.RealMatrix:
+        """
+            Computes the unscented covariance matrix from a weighted mean state and a set of sigma points.
+        
+            This method can be used for computing both the predicted state covariance matrix and the innovation covariance matrix in
+            an Unscented Kalman filter.
+        
+            It corresponds to Equation 18 of "Wan, E. A., & Van Der Merwe, R. The unscented Kalman filter for nonlinear estimation"
+        
+            Parameters:
+                sigmaPoints (:class:`~org.hipparchus.linear.RealVector`[]): input sigma points
+                meanState (:class:`~org.hipparchus.linear.RealVector`): weighted mean state
+        
+            Returns:
+                the unscented covariance matrix
+        
+        
+        """
+        ...
+    def getUnscentedMeanState(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray]) -> org.hipparchus.linear.RealVector:
+        """
+            Computes a weighted mean state from a given set of sigma points.
+        
+            This method can be used for computing both the mean state and the mean measurement in an Unscented Kalman filter.
+        
+            It corresponds to Equation 17 of "Wan, E. A., & Van Der Merwe, R. The unscented Kalman filter for nonlinear estimation"
+        
+            Parameters:
+                sigmaPoints (:class:`~org.hipparchus.linear.RealVector`[]): input samples
+        
+            Returns:
+                weighted mean state
+        
+        
+        """
+        ...
     def getWc(self) -> org.hipparchus.linear.RealVector:
         """
             Get the covariance weights.
@@ -8496,6 +8516,7 @@ class UnscentedTransformProvider:
         
         """
         ...
+    def inverseUnscentedTransform(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray]) -> Pair[org.hipparchus.linear.RealVector, org.hipparchus.linear.RealMatrix]: ...
     def unscentedTransform(self, realVector: org.hipparchus.linear.RealVector, realMatrix: org.hipparchus.linear.RealMatrix) -> typing.MutableSequence[org.hipparchus.linear.RealVector]:
         """
             Perform the unscented transform from a state and its covariance.
@@ -8513,7 +8534,8 @@ class UnscentedTransformProvider:
 
 class AbstractUnscentedTransform(UnscentedTransformProvider):
     """
-    public abstract class AbstractUnscentedTransform extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.hipparchus.util.UnscentedTransformProvider`
+    public abstract classAbstractUnscentedTransform extends :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+    implements :class:`~org.hipparchus.util.UnscentedTransformProvider`
     
         Base class for unscented transform providers.
     
@@ -8546,7 +8568,7 @@ class AbstractUnscentedTransform(UnscentedTransformProvider):
 
 class JulierUnscentedTransform(AbstractUnscentedTransform):
     """
-    public class JulierUnscentedTransform extends :class:`~org.hipparchus.util.AbstractUnscentedTransform`
+    public classJulierUnscentedTransform extends :class:`~org.hipparchus.util.AbstractUnscentedTransform`
     
         Unscented transform as defined by Julier and Uhlmann.
     
@@ -8561,8 +8583,9 @@ class JulierUnscentedTransform(AbstractUnscentedTransform):
             2.2
     
         Also see:
-            "S. J. Julier and J. K. Uhlmann. A New Extension of the Kalman Filter to Nonlinear Systems. Proc. SPIE 3068, Signal
-            Processing, Sensor Fusion, and Target Recognition VI, 182 (July 28, 1997)"
+    
+              - "S. J. Julier and J. K. Uhlmann. A New Extension of the Kalman Filter to Nonlinear Systems. Proc. SPIE 3068, Signal
+                Processing, Sensor Fusion, and Target Recognition VI, 182 (July 28, 1997)"
     """
     DEFAULT_KAPPA: typing.ClassVar[float] = ...
     """
@@ -8571,7 +8594,9 @@ class JulierUnscentedTransform(AbstractUnscentedTransform):
         Default value for kappa, (0.0, see reference).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -8602,7 +8627,7 @@ class JulierUnscentedTransform(AbstractUnscentedTransform):
 
 class MerweUnscentedTransform(AbstractUnscentedTransform):
     """
-    public class MerweUnscentedTransform extends :class:`~org.hipparchus.util.AbstractUnscentedTransform`
+    public classMerweUnscentedTransform extends :class:`~org.hipparchus.util.AbstractUnscentedTransform`
     
         Unscented transform as defined by Merwe and Wan.
     
@@ -8614,8 +8639,9 @@ class MerweUnscentedTransform(AbstractUnscentedTransform):
             2.2
     
         Also see:
-            "E. A. Wan and R. Van der Merwe, The unscented Kalman filter for nonlinear estimation, in Proc. Symp. Adaptive Syst.
-            Signal Process., Commun. Contr., Lake Louise, AB, Canada, Oct. 2000."
+    
+              - "E. A. Wan and R. Van der Merwe, The unscented Kalman filter for nonlinear estimation, in Proc. Symp. Adaptive Syst.
+                Signal Process., Commun. Contr., Lake Louise, AB, Canada, Oct. 2000."
     """
     DEFAULT_ALPHA: typing.ClassVar[float] = ...
     """
@@ -8624,7 +8650,9 @@ class MerweUnscentedTransform(AbstractUnscentedTransform):
         Default value for alpha (0.5, see reference).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -8635,7 +8663,9 @@ class MerweUnscentedTransform(AbstractUnscentedTransform):
         Default value for beta (2.0, see reference).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -8646,7 +8676,9 @@ class MerweUnscentedTransform(AbstractUnscentedTransform):
         Default value for kappa, (0.0, see reference).
     
         Also see:
-            :meth:`~constant`
+    
+              - :meth:`~constant`
+    
     
     
     """
@@ -8675,10 +8707,210 @@ class MerweUnscentedTransform(AbstractUnscentedTransform):
         """
         ...
 
+class OpenIntToDoubleHashMap(AbstractOpenIntHashMap, java.io.Serializable):
+    """
+    public classOpenIntToDoubleHashMap extends :class:`~org.hipparchus.util.AbstractOpenIntHashMap`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
+    
+        Open addressed map from int to double.
+    
+        This class provides a dedicated map from integers to doubles with a much smaller memory overhead than standard
+        :code:`java.util.Map`.
+    
+        This class is not synchronized. The specialized iterators returned by
+        :meth:`~org.hipparchus.util.OpenIntToDoubleHashMap.iterator` are fail-fast: they throw a
+        :code:`ConcurrentModificationException` when they detect the map has been modified during iteration.
+    
+        Also see:
+    
+              - :meth:`~serialized`
+    """
+    @typing.overload
+    def __init__(self): ...
+    @typing.overload
+    def __init__(self, double: float): ...
+    @typing.overload
+    def __init__(self, int: int): ...
+    @typing.overload
+    def __init__(self, int: int, double: float): ...
+    @typing.overload
+    def __init__(self, openIntToDoubleHashMap: 'OpenIntToDoubleHashMap'): ...
+    def equals(self, object: typing.Any) -> bool:
+        """
+        
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+        
+        """
+        ...
+    def get(self, int: int) -> float:
+        """
+            Get the stored value associated with the given key
+        
+            Parameters:
+                key (int): key associated with the data
+        
+            Returns:
+                data associated with the key
+        
+        
+        """
+        ...
+    def hashCode(self) -> int:
+        """
+        
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+        
+        """
+        ...
+    def iterator(self) -> 'OpenIntToDoubleHashMap.Iterator':
+        """
+            Get an iterator over map elements.
+        
+            The specialized iterators returned are fail-fast: they throw a :code:`ConcurrentModificationException` when they detect
+            the map has been modified during iteration.
+        
+            Returns:
+                iterator over the map elements
+        
+        
+        """
+        ...
+    def put(self, int: int, double: float) -> float:
+        """
+            Put a value associated with a key in the map.
+        
+            Parameters:
+                key (int): key to which value is associated
+                value (double): value to put in the map
+        
+            Returns:
+                previous value associated with the key
+        
+        
+        """
+        ...
+    def remove(self, int: int) -> float:
+        """
+            Remove the value associated with a key.
+        
+            Parameters:
+                key (int): key to which the value is associated
+        
+            Returns:
+                removed value
+        
+        
+        """
+        ...
+    class Iterator(org.hipparchus.util.AbstractOpenIntHashMap.BaseIterator):
+        def __init__(self, openIntToDoubleHashMap: 'OpenIntToDoubleHashMap'): ...
+        def value(self) -> float: ...
+
+_OpenIntToFieldHashMap__T = typing.TypeVar('_OpenIntToFieldHashMap__T', bound=org.hipparchus.FieldElement)  # <T>
+class OpenIntToFieldHashMap(AbstractOpenIntHashMap, java.io.Serializable, typing.Generic[_OpenIntToFieldHashMap__T]):
+    """
+    public classOpenIntToFieldHashMap<T extends :class:`~org.hipparchus.FieldElement`<T>> extends :class:`~org.hipparchus.util.AbstractOpenIntHashMap`
+    implements :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable`
+    
+        Open addressed map from int to FieldElement.
+    
+        This class provides a dedicated map from integers to FieldElements with a much smaller memory overhead than standard
+        :code:`java.util.Map`.
+    
+        This class is not synchronized. The specialized iterators returned by
+        :meth:`~org.hipparchus.util.OpenIntToFieldHashMap.iterator` are fail-fast: they throw a
+        :code:`ConcurrentModificationException` when they detect the map has been modified during iteration.
+    
+        Also see:
+    
+              - :meth:`~serialized`
+    """
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T]): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T], int: int): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T], int: int, t: _OpenIntToFieldHashMap__T): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_OpenIntToFieldHashMap__T], t: _OpenIntToFieldHashMap__T): ...
+    @typing.overload
+    def __init__(self, openIntToFieldHashMap: 'OpenIntToFieldHashMap'[_OpenIntToFieldHashMap__T]): ...
+    def equals(self, object: typing.Any) -> bool:
+        """
+        
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.equals` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+        
+        """
+        ...
+    def get(self, int: int) -> _OpenIntToFieldHashMap__T:
+        """
+            Get the stored value associated with the given key
+        
+            Parameters:
+                key (int): key associated with the data
+        
+            Returns:
+                data associated with the key
+        
+        
+        """
+        ...
+    def hashCode(self) -> int:
+        """
+        
+            Overrides:
+                :meth:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.hashCode` in
+                class :class:`~org.hipparchus.util.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object`
+        
+        
+        """
+        ...
+    def iterator(self) -> 'OpenIntToFieldHashMap.Iterator': ...
+    def put(self, int: int, t: _OpenIntToFieldHashMap__T) -> _OpenIntToFieldHashMap__T:
+        """
+            Put a value associated with a key in the map.
+        
+            Parameters:
+                key (int): key to which value is associated
+                value (:class:`~org.hipparchus.util.OpenIntToFieldHashMap`): value to put in the map
+        
+            Returns:
+                previous value associated with the key
+        
+        
+        """
+        ...
+    def remove(self, int: int) -> _OpenIntToFieldHashMap__T:
+        """
+            Remove the value associated with a key.
+        
+            Parameters:
+                key (int): key to which the value is associated
+        
+            Returns:
+                removed value
+        
+        
+        """
+        ...
+    class Iterator(org.hipparchus.util.AbstractOpenIntHashMap.BaseIterator):
+        def __init__(self, openIntToFieldHashMap: 'OpenIntToFieldHashMap'): ...
+        def value(self) -> _OpenIntToFieldHashMap__T: ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.hipparchus.util")``.
 
+    AbstractOpenIntHashMap: typing.Type[AbstractOpenIntHashMap]
     AbstractUnscentedTransform: typing.Type[AbstractUnscentedTransform]
     ArithmeticUtils: typing.Type[ArithmeticUtils]
     BigReal: typing.Type[BigReal]
diff --git a/org-stubs/orekit/attitudes/__init__.pyi b/org-stubs/orekit/attitudes/__init__.pyi
index 2eb6cc9cca57d606ce18f6d6b89b68b0f64b003f..63cca048441014f35d446f25bdc922a3d3f826fe 100644
--- a/org-stubs/orekit/attitudes/__init__.pyi
+++ b/org-stubs/orekit/attitudes/__init__.pyi
@@ -588,6 +588,24 @@ class AttitudeProviderModifier(AttitudeProvider):
         Since:
             5.1
     """
+    @staticmethod
+    def getFrozenAttitudeProvider(attitudeProvider: AttitudeProvider) -> 'AttitudeProviderModifier':
+        """
+            Wrap the input provider with a new one always returning attitudes with zero rotation rate and acceleration. It is not
+            physically sound, but remains useful for performance when a full, physical attitude with time derivatives is not needed.
+        
+            Parameters:
+                attitudeProvider (:class:`~org.orekit.attitudes.AttitudeProvider`): provider to wrap
+        
+            Returns:
+                wrapping provider
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
     def getUnderlyingAttitudeProvider(self) -> AttitudeProvider:
         """
             Get the underlying attitude provider.
@@ -919,6 +937,46 @@ class CelestialBodyPointed(AttitudeProvider):
                 attitude on the specified date and position-velocity state
         
         
+        """
+        ...
+    _getAttitudeRotation_0__T = typing.TypeVar('_getAttitudeRotation_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getAttitudeRotation(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getAttitudeRotation_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getAttitudeRotation_0__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldRotation[_getAttitudeRotation_0__T]:
+        """
+            Compute the attitude-related rotation corresponding to an orbital state.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.AttitudeProvider.getAttitudeRotation` in
+                interface :class:`~org.orekit.attitudes.AttitudeProvider`
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): local position-velocity provider around current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
+        
+            Returns:
+                rotation on the specified date and position-velocity state
+        
+        
+        """
+        ...
+    @typing.overload
+    def getAttitudeRotation(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Rotation:
+        """
+            Compute the attitude-related rotation corresponding to an orbital state.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.AttitudeProvider.getAttitudeRotation` in
+                interface :class:`~org.orekit.attitudes.AttitudeProvider`
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): local position-velocity provider around current date
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
+        
+            Returns:
+                attitude-related rotation on the specified date and position-velocity state
+        
         """
         ...
 
@@ -1338,6 +1396,36 @@ class LofOffset(AttitudeProvider):
             Returns:
                 attitude-related rotation on the specified date and position-velocity state
         
+        """
+        ...
+    def getInertialFrame(self) -> org.orekit.frames.Frame:
+        """
+            Get the inertial frame.
+        
+            Returns:
+                the inertial frame.
+        
+        
+        """
+        ...
+    def getLof(self) -> org.orekit.frames.LOF:
+        """
+            Get the local orbital frame.
+        
+            Returns:
+                the local orbital frame.
+        
+        
+        """
+        ...
+    def getOffset(self) -> org.hipparchus.geometry.euclidean.threed.Rotation:
+        """
+            Get the rotational offset.
+        
+            Returns:
+                the rotational offset.
+        
+        
         """
         ...
 
@@ -1601,6 +1689,103 @@ class BodyCenterPointing(GroundPointing):
         """
         ...
 
+class GroundPointingAttitudeModifier(GroundPointing, AttitudeProviderModifier):
+    """
+    public abstract class GroundPointingAttitudeModifier extends :class:`~org.orekit.attitudes.GroundPointing` implements :class:`~org.orekit.attitudes.AttitudeProviderModifier`
+    
+        Abstract class for attitude provider modifiers using an underlying ground pointing law.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.attitudes.GroundPointing`, :class:`~org.orekit.attitudes.AttitudeProviderModifier`
+    """
+    _getBaseState_1__T = typing.TypeVar('_getBaseState_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getBaseState(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> Attitude:
+        """
+            Compute the base system state at given date, without modifications.
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): provider for PV coordinates
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which state is requested
+                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
+        
+            Returns:
+                satellite base attitude state.
+        
+        """
+        ...
+    @typing.overload
+    def getBaseState(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getBaseState_1__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getBaseState_1__T], frame: org.orekit.frames.Frame) -> FieldAttitude[_getBaseState_1__T]:
+        """
+            Compute the base system state at given date, without modifications.
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): provider for PV coordinates
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which state is requested
+                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
+        
+            Returns:
+                satellite base attitude state.
+        
+        
+        """
+        ...
+    _getTargetPV_0__T = typing.TypeVar('_getTargetPV_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getTargetPV(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getTargetPV_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTargetPV_0__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_getTargetPV_0__T]:
+        """
+            Compute the target point position/velocity in specified frame.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.GroundPointing.getTargetPV` in class :class:`~org.orekit.attitudes.GroundPointing`
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): provider for PV coordinates
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which target point is requested
+                frame (:class:`~org.orekit.frames.Frame`): frame in which observed ground point should be provided
+        
+            Returns:
+                observed ground point position (element 0) and velocity (at index 1) in specified frame
+        
+        
+        """
+        ...
+    @typing.overload
+    def getTargetPV(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Compute the target point position/velocity in specified frame.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.GroundPointing.getTargetPV` in class :class:`~org.orekit.attitudes.GroundPointing`
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): provider for PV coordinates
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which target point is requested
+                frame (:class:`~org.orekit.frames.Frame`): frame in which observed ground point should be provided
+        
+            Returns:
+                observed ground point position (element 0) and velocity (at index 1) in specified frame
+        
+        """
+        ...
+    def getUnderlyingAttitudeProvider(self) -> GroundPointing:
+        """
+            Getter for underlying ground pointing law.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.AttitudeProviderModifier.getUnderlyingAttitudeProvider` in
+                interface :class:`~org.orekit.attitudes.AttitudeProviderModifier`
+        
+            Returns:
+                underlying attitude provider, which in this case is a :class:`~org.orekit.attitudes.GroundPointing` instance
+        
+        
+        """
+        ...
+
 class LofOffsetPointing(GroundPointing):
     """
     public class LofOffsetPointing extends :class:`~org.orekit.attitudes.GroundPointing`
@@ -1792,6 +1977,38 @@ class NadirPointing(GroundPointing):
         
         """
         ...
+    _getTargetPVViaInterpolation_0__T = typing.TypeVar('_getTargetPVViaInterpolation_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getTargetPVViaInterpolation(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getTargetPVViaInterpolation_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTargetPVViaInterpolation_0__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_getTargetPVViaInterpolation_0__T]:
+        """
+            Compute target position-velocity-acceleration vector via interpolation (Field version).
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): PV provider
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date
+                frame (:class:`~org.orekit.frames.Frame`): frame
+        
+            Returns:
+                target position-velocity-acceleration
+        
+        
+        """
+        ...
+    @typing.overload
+    def getTargetPVViaInterpolation(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Compute target position-velocity-acceleration vector via interpolation.
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): PV provider
+                date (:class:`~org.orekit.time.AbsoluteDate`): date
+                frame (:class:`~org.orekit.frames.Frame`): frame
+        
+            Returns:
+                target position-velocity-acceleration
+        
+        """
+        ...
 
 class SpinStabilized(AttitudeProviderModifier):
     """
@@ -1842,6 +2059,46 @@ class SpinStabilized(AttitudeProviderModifier):
                 attitude on the specified date and position-velocity state
         
         
+        """
+        ...
+    _getAttitudeRotation_0__T = typing.TypeVar('_getAttitudeRotation_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getAttitudeRotation(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getAttitudeRotation_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getAttitudeRotation_0__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldRotation[_getAttitudeRotation_0__T]:
+        """
+            Compute the attitude-related rotation corresponding to an orbital state.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.AttitudeProvider.getAttitudeRotation` in
+                interface :class:`~org.orekit.attitudes.AttitudeProvider`
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): local position-velocity provider around current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
+        
+            Returns:
+                rotation on the specified date and position-velocity state
+        
+        
+        """
+        ...
+    @typing.overload
+    def getAttitudeRotation(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Rotation:
+        """
+            Compute the attitude-related rotation corresponding to an orbital state.
+        
+            Specified by:
+                :meth:`~org.orekit.attitudes.AttitudeProvider.getAttitudeRotation` in
+                interface :class:`~org.orekit.attitudes.AttitudeProvider`
+        
+            Parameters:
+                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): local position-velocity provider around current date
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
+        
+            Returns:
+                attitude-related rotation on the specified date and position-velocity state
+        
         """
         ...
     def getUnderlyingAttitudeProvider(self) -> AttitudeProvider:
@@ -2090,9 +2347,9 @@ class TargetPointing(GroundPointing):
         """
         ...
 
-class YawCompensation(GroundPointing, AttitudeProviderModifier):
+class YawCompensation(GroundPointingAttitudeModifier, AttitudeProviderModifier):
     """
-    public class YawCompensation extends :class:`~org.orekit.attitudes.GroundPointing` implements :class:`~org.orekit.attitudes.AttitudeProviderModifier`
+    public class YawCompensation extends :class:`~org.orekit.attitudes.GroundPointingAttitudeModifier` implements :class:`~org.orekit.attitudes.AttitudeProviderModifier`
     
         This class handles yaw compensation attitude provider.
     
@@ -2154,93 +2411,6 @@ class YawCompensation(GroundPointing, AttitudeProviderModifier):
                 attitude on the specified date and position-velocity state
         
         
-        """
-        ...
-    _getBaseState_1__T = typing.TypeVar('_getBaseState_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getBaseState(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> Attitude:
-        """
-            Compute the base system state at given date, without compensation.
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): provider for PV coordinates
-                date (:class:`~org.orekit.time.AbsoluteDate`): date at which state is requested
-                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
-        
-            Returns:
-                satellite base attitude state, i.e without compensation.
-        
-        """
-        ...
-    @typing.overload
-    def getBaseState(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getBaseState_1__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getBaseState_1__T], frame: org.orekit.frames.Frame) -> FieldAttitude[_getBaseState_1__T]:
-        """
-            Compute the base system state at given date, without compensation.
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): provider for PV coordinates
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which state is requested
-                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
-        
-            Returns:
-                satellite base attitude state, i.e without compensation.
-        
-            Since:
-                9.0
-        
-        
-        """
-        ...
-    _getTargetPV_0__T = typing.TypeVar('_getTargetPV_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getTargetPV(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getTargetPV_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTargetPV_0__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_getTargetPV_0__T]:
-        """
-            Compute the target point position/velocity in specified frame.
-        
-            Specified by:
-                :meth:`~org.orekit.attitudes.GroundPointing.getTargetPV` in class :class:`~org.orekit.attitudes.GroundPointing`
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): provider for PV coordinates
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which target point is requested
-                frame (:class:`~org.orekit.frames.Frame`): frame in which observed ground point should be provided
-        
-            Returns:
-                observed ground point position (element 0) and velocity (at index 1) in specified frame
-        
-        
-        """
-        ...
-    @typing.overload
-    def getTargetPV(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Compute the target point position/velocity in specified frame.
-        
-            Specified by:
-                :meth:`~org.orekit.attitudes.GroundPointing.getTargetPV` in class :class:`~org.orekit.attitudes.GroundPointing`
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): provider for PV coordinates
-                date (:class:`~org.orekit.time.AbsoluteDate`): date at which target point is requested
-                frame (:class:`~org.orekit.frames.Frame`): frame in which observed ground point should be provided
-        
-            Returns:
-                observed ground point position (element 0) and velocity (at index 1) in specified frame
-        
-        """
-        ...
-    def getUnderlyingAttitudeProvider(self) -> AttitudeProvider:
-        """
-            Get the underlying (ground pointing) attitude provider.
-        
-            Specified by:
-                :meth:`~org.orekit.attitudes.AttitudeProviderModifier.getUnderlyingAttitudeProvider` in
-                interface :class:`~org.orekit.attitudes.AttitudeProviderModifier`
-        
-            Returns:
-                underlying attitude provider, which in this case is a :class:`~org.orekit.attitudes.GroundPointing` instance
-        
-        
         """
         ...
     _getYawAngle_1__T = typing.TypeVar('_getYawAngle_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -2279,9 +2449,9 @@ class YawCompensation(GroundPointing, AttitudeProviderModifier):
         """
         ...
 
-class YawSteering(GroundPointing, AttitudeProviderModifier):
+class YawSteering(GroundPointingAttitudeModifier, AttitudeProviderModifier):
     """
-    public class YawSteering extends :class:`~org.orekit.attitudes.GroundPointing` implements :class:`~org.orekit.attitudes.AttitudeProviderModifier`
+    public class YawSteering extends :class:`~org.orekit.attitudes.GroundPointingAttitudeModifier` implements :class:`~org.orekit.attitudes.AttitudeProviderModifier`
     
         This class handles yaw steering law.
     
@@ -2290,7 +2460,7 @@ class YawSteering(GroundPointing, AttitudeProviderModifier):
     
         The motion in yaw is smooth when the Sun is far from the orbital plane, but gets more and more *square like* as the Sun
         gets closer to the orbital plane. The degenerate extreme case with the Sun in the orbital plane leads to a yaw angle
-        switching between two steady states, with instantaneaous π radians rotations at each switch, two times per orbit. This
+        switching between two steady states, with instantaneous π radians rotations at each switch, two times per orbit. This
         degenerate case is clearly not operationally sound so another pointing mode is chosen when Sun comes closer than some
         predefined threshold to the orbital plane.
     
@@ -2348,93 +2518,6 @@ class YawSteering(GroundPointing, AttitudeProviderModifier):
                 attitude on the specified date and position-velocity state
         
         
-        """
-        ...
-    _getBaseState_1__T = typing.TypeVar('_getBaseState_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getBaseState(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> Attitude:
-        """
-            Compute the base system state at given date, without compensation.
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): provider for PV coordinates
-                date (:class:`~org.orekit.time.AbsoluteDate`): date at which state is requested
-                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
-        
-            Returns:
-                satellite base attitude state, i.e without compensation.
-        
-        """
-        ...
-    @typing.overload
-    def getBaseState(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getBaseState_1__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getBaseState_1__T], frame: org.orekit.frames.Frame) -> FieldAttitude[_getBaseState_1__T]:
-        """
-            Compute the base system state at given date, without compensation.
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): provider for PV coordinates
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which state is requested
-                frame (:class:`~org.orekit.frames.Frame`): reference frame from which attitude is computed
-        
-            Returns:
-                satellite base attitude state, i.e without compensation.
-        
-            Since:
-                9.0
-        
-        
-        """
-        ...
-    _getTargetPV_0__T = typing.TypeVar('_getTargetPV_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getTargetPV(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_getTargetPV_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTargetPV_0__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_getTargetPV_0__T]:
-        """
-            Compute the target point position/velocity in specified frame.
-        
-            Specified by:
-                :meth:`~org.orekit.attitudes.GroundPointing.getTargetPV` in class :class:`~org.orekit.attitudes.GroundPointing`
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> pvProv): provider for PV coordinates
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which target point is requested
-                frame (:class:`~org.orekit.frames.Frame`): frame in which observed ground point should be provided
-        
-            Returns:
-                observed ground point position (element 0) and velocity (at index 1) in specified frame
-        
-        
-        """
-        ...
-    @typing.overload
-    def getTargetPV(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Compute the target point position/velocity in specified frame.
-        
-            Specified by:
-                :meth:`~org.orekit.attitudes.GroundPointing.getTargetPV` in class :class:`~org.orekit.attitudes.GroundPointing`
-        
-            Parameters:
-                pvProv (:class:`~org.orekit.utils.PVCoordinatesProvider`): provider for PV coordinates
-                date (:class:`~org.orekit.time.AbsoluteDate`): date at which target point is requested
-                frame (:class:`~org.orekit.frames.Frame`): frame in which observed ground point should be provided
-        
-            Returns:
-                observed ground point position (element 0) and velocity (at index 1) in specified frame
-        
-        """
-        ...
-    def getUnderlyingAttitudeProvider(self) -> AttitudeProvider:
-        """
-            Get the underlying (ground pointing) attitude provider.
-        
-            Specified by:
-                :meth:`~org.orekit.attitudes.AttitudeProviderModifier.getUnderlyingAttitudeProvider` in
-                interface :class:`~org.orekit.attitudes.AttitudeProviderModifier`
-        
-            Returns:
-                underlying attitude provider, which in this case is a :class:`~org.orekit.attitudes.GroundPointing` instance
-        
-        
         """
         ...
 
@@ -2460,6 +2543,7 @@ class __module_protocol__(Protocol):
     FixedRate: typing.Type[FixedRate]
     FrameAlignedProvider: typing.Type[FrameAlignedProvider]
     GroundPointing: typing.Type[GroundPointing]
+    GroundPointingAttitudeModifier: typing.Type[GroundPointingAttitudeModifier]
     Inertia: typing.Type[Inertia]
     InertiaAxis: typing.Type[InertiaAxis]
     LofOffset: typing.Type[LofOffset]
diff --git a/org-stubs/orekit/bodies/__init__.pyi b/org-stubs/orekit/bodies/__init__.pyi
index a9dded1a812c2f729acff3d195b3ee54b5b54d98..1c3c8b7dc027fbcdd3564e237c02df38c22b55da 100644
--- a/org-stubs/orekit/bodies/__init__.pyi
+++ b/org-stubs/orekit/bodies/__init__.pyi
@@ -1163,7 +1163,10 @@ class FieldGeodeticPoint(typing.Generic[_FieldGeodeticPoint__T]):
         Also see:
             :class:`~org.orekit.bodies.BodyShape`
     """
+    @typing.overload
     def __init__(self, t: _FieldGeodeticPoint__T, t2: _FieldGeodeticPoint__T, t3: _FieldGeodeticPoint__T): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldGeodeticPoint__T], geodeticPoint: 'GeodeticPoint'): ...
     def equals(self, object: typing.Any) -> bool:
         """
         
diff --git a/org-stubs/orekit/data/__init__.pyi b/org-stubs/orekit/data/__init__.pyi
index 18aca1db06a8145f20a6a2f86ead8daf731328d7..1b7cda9d6ab8ce6906121724d2b650635006afc3 100644
--- a/org-stubs/orekit/data/__init__.pyi
+++ b/org-stubs/orekit/data/__init__.pyi
@@ -8,6 +8,7 @@ else:
 import java.io
 import java.lang
 import java.net
+import java.nio
 import java.util
 import java.util.regex
 import jpype
@@ -873,6 +874,28 @@ class FundamentalNutationArguments(java.io.Serializable):
         """
         ...
 
+class LineOrientedFilteringReader(java.io.Reader):
+    """
+    public abstract class LineOrientedFilteringReader extends :class:`~org.orekit.data.https:.docs.oracle.com.javase.8.docs.api.java.io.Reader?is`
+    
+        Base class for implementing line-oriented data filtering readers.
+    
+        This reader is intended to be used in :class:`~org.orekit.data.DataFilter`.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, string: str, reader: java.io.Reader): ...
+    def close(self) -> None: ...
+    @typing.overload
+    def read(self) -> int: ...
+    @typing.overload
+    def read(self, charArray: typing.Union[typing.List[str], jpype.JArray]) -> int: ...
+    @typing.overload
+    def read(self, charBuffer: java.nio.CharBuffer) -> int: ...
+    @typing.overload
+    def read(self, charArray: typing.Union[typing.List[str], jpype.JArray], int: int, int2: int) -> int: ...
+
 class PoissonSeries:
     """
     public class PoissonSeries extends :class:`~org.orekit.data.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -2286,6 +2309,7 @@ class __module_protocol__(Protocol):
     FundamentalNutationArguments: typing.Type[FundamentalNutationArguments]
     GzipFilter: typing.Type[GzipFilter]
     LazyLoadedDataContext: typing.Type[LazyLoadedDataContext]
+    LineOrientedFilteringReader: typing.Type[LineOrientedFilteringReader]
     NetworkCrawler: typing.Type[NetworkCrawler]
     PoissonSeries: typing.Type[PoissonSeries]
     PoissonSeriesParser: typing.Type[PoissonSeriesParser]
diff --git a/org-stubs/orekit/errors/__init__.pyi b/org-stubs/orekit/errors/__init__.pyi
index ceb044410c131a5119c3afa38d633637163bcabd..58b5cfae91cf36d9b2cf54be16d4a2b6ae654ace 100644
--- a/org-stubs/orekit/errors/__init__.pyi
+++ b/org-stubs/orekit/errors/__init__.pyi
@@ -221,6 +221,7 @@ class OrekitMessages(java.lang.Enum['OrekitMessages'], org.hipparchus.exception.
     SP3_NUMBER_OF_EPOCH_MISMATCH: typing.ClassVar['OrekitMessages'] = ...
     SP3_INCOMPATIBLE_FILE_METADATA: typing.ClassVar['OrekitMessages'] = ...
     SP3_INCOMPATIBLE_SATELLITE_MEDATADA: typing.ClassVar['OrekitMessages'] = ...
+    FRAME_NOT_ALLOWED: typing.ClassVar['OrekitMessages'] = ...
     STK_INVALID_OR_UNSUPPORTED_COORDINATE_SYSTEM: typing.ClassVar['OrekitMessages'] = ...
     STK_UNMAPPED_COORDINATE_SYSTEM: typing.ClassVar['OrekitMessages'] = ...
     STK_UNEXPECTED_END_OF_FILE: typing.ClassVar['OrekitMessages'] = ...
@@ -237,6 +238,8 @@ class OrekitMessages(java.lang.Enum['OrekitMessages'], org.hipparchus.exception.
     UNABLE_TO_GENERATE_NEW_DATA_BEFORE: typing.ClassVar['OrekitMessages'] = ...
     UNABLE_TO_GENERATE_NEW_DATA_AFTER: typing.ClassVar['OrekitMessages'] = ...
     UNABLE_TO_COMPUTE_HYPERBOLIC_ECCENTRIC_ANOMALY: typing.ClassVar['OrekitMessages'] = ...
+    UNABLE_TO_COMPUTE_ECCENTRIC_LONGITUDE_ARGUMENT: typing.ClassVar['OrekitMessages'] = ...
+    UNABLE_TO_COMPUTE_ECCENTRIC_LATITUDE_ARGUMENT: typing.ClassVar['OrekitMessages'] = ...
     UNABLE_TO_COMPUTE_DSST_MEAN_PARAMETERS: typing.ClassVar['OrekitMessages'] = ...
     OUT_OF_RANGE_DERIVATION_ORDER: typing.ClassVar['OrekitMessages'] = ...
     ORBIT_TYPE_NOT_ALLOWED: typing.ClassVar['OrekitMessages'] = ...
@@ -351,6 +354,7 @@ class OrekitMessages(java.lang.Enum['OrekitMessages'], org.hipparchus.exception.
     CANNOT_CHANGE_COVARIANCE_TYPE_IF_DEFINED_IN_NON_INERTIAL_FRAME: typing.ClassVar['OrekitMessages'] = ...
     DIFFERENT_TIME_OF_CLOSEST_APPROACH: typing.ClassVar['OrekitMessages'] = ...
     DATES_MISMATCH: typing.ClassVar['OrekitMessages'] = ...
+    WRONG_ELEMENTS_FOR_AVERAGING_THEORY: typing.ClassVar['OrekitMessages'] = ...
     ORBITS_MUS_MISMATCH: typing.ClassVar['OrekitMessages'] = ...
     DIFFERENT_STATE_DEFINITION: typing.ClassVar['OrekitMessages'] = ...
     STATE_AND_COVARIANCE_DATES_MISMATCH: typing.ClassVar['OrekitMessages'] = ...
@@ -360,8 +364,11 @@ class OrekitMessages(java.lang.Enum['OrekitMessages'], org.hipparchus.exception.
     HEADER_NOT_WRITTEN: typing.ClassVar['OrekitMessages'] = ...
     HEADER_ALREADY_WRITTEN: typing.ClassVar['OrekitMessages'] = ...
     CANNOT_START_PROPAGATION_FROM_INFINITY: typing.ClassVar['OrekitMessages'] = ...
+    TOO_LONG_TIME_GAP_BETWEEN_DATA_POINTS: typing.ClassVar['OrekitMessages'] = ...
     INVALID_SATELLITE_ID: typing.ClassVar['OrekitMessages'] = ...
     WRONG_EOP_INTERPOLATION_DEGREE: typing.ClassVar['OrekitMessages'] = ...
+    WALKER_INCONSISTENT_PLANES: typing.ClassVar['OrekitMessages'] = ...
+    INFINITE_NRLMSISE00_DENSITY: typing.ClassVar['OrekitMessages'] = ...
     def getLocalizedString(self, locale: java.util.Locale) -> str:
         """
         
@@ -424,9 +431,6 @@ class OrekitMessages(java.lang.Enum['OrekitMessages'], org.hipparchus.exception.
         
         """
         ...
-    class UTF8Control(java.util.ResourceBundle.Control):
-        def __init__(self): ...
-        def newBundle(self, string: str, locale: java.util.Locale, string2: str, classLoader: java.lang.ClassLoader, boolean: bool) -> java.util.ResourceBundle: ...
 
 class OrekitException(java.lang.RuntimeException, LocalizedException):
     """
diff --git a/org-stubs/orekit/estimation/iod/__init__.pyi b/org-stubs/orekit/estimation/iod/__init__.pyi
index d96d64c64645dafd6d00db742f7dd77ccd885d30..c9054b0d4c27070844372c628979a91290ff88c6 100644
--- a/org-stubs/orekit/estimation/iod/__init__.pyi
+++ b/org-stubs/orekit/estimation/iod/__init__.pyi
@@ -92,8 +92,7 @@ class IodGibbs:
         Gibbs position-based Initial Orbit Determination (IOD) algorithm.
     
         An orbit is determined from three position vectors. This method requires the vectors to be coplanar. Orekit uses a
-        :meth:`~org.orekit.estimation.iod.IodGibbs.COPLANAR_THRESHOLD`. Reference: Vallado, D., Fundamentals of Astrodynamics
-        and Applications
+        :code:`default coplanar threshold of 5°`. Reference: Vallado, D., Fundamentals of Astrodynamics and Applications
     
         Since:
             8.0
diff --git a/org-stubs/orekit/estimation/measurements/__init__.pyi b/org-stubs/orekit/estimation/measurements/__init__.pyi
index fc5f81083b1360e56dbbb666ac210d48e368137c..d9e3cee3bd82483c85e2cdc8e87a2973d1252bc1 100644
--- a/org-stubs/orekit/estimation/measurements/__init__.pyi
+++ b/org-stubs/orekit/estimation/measurements/__init__.pyi
@@ -19,6 +19,7 @@ import org.orekit.estimation.measurements.gnss
 import org.orekit.estimation.measurements.modifiers
 import org.orekit.frames
 import org.orekit.models.earth.displacement
+import org.orekit.models.earth.weather
 import org.orekit.propagation
 import org.orekit.time
 import org.orekit.utils
@@ -26,6 +27,100 @@ import typing
 
 
 
+class CommonParametersWithDerivatives:
+    """
+    public class CommonParametersWithDerivatives extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Common intermediate parameters used to estimate measurements where receiver is a ground station.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, map: typing.Union[java.util.Map[str, int], typing.Mapping[str, int]], gradient: org.hipparchus.analysis.differentiation.Gradient, spacecraftState2: org.orekit.propagation.SpacecraftState, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]): ...
+    def getIndices(self) -> java.util.Map[str, int]: ...
+    def getState(self) -> org.orekit.propagation.SpacecraftState:
+        """
+            Get spacecraft state.
+        
+            Returns:
+                spacecraft state
+        
+        
+        """
+        ...
+    def getTauD(self) -> org.hipparchus.analysis.differentiation.Gradient:
+        """
+            Get downlink delay.
+        
+            Returns:
+                ownlink delay
+        
+        
+        """
+        ...
+    def getTransitPV(self) -> org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]: ...
+    def getTransitState(self) -> org.orekit.propagation.SpacecraftState:
+        """
+            Get transit state.
+        
+            Returns:
+                transit state
+        
+        
+        """
+        ...
+
+class CommonParametersWithoutDerivatives:
+    """
+    public class CommonParametersWithoutDerivatives extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Common intermediate parameters used to estimate measurements.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, double: float, spacecraftState2: org.orekit.propagation.SpacecraftState, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates): ...
+    def getState(self) -> org.orekit.propagation.SpacecraftState:
+        """
+            Get spacecraft state.
+        
+            Returns:
+                spacecraft state
+        
+        
+        """
+        ...
+    def getTauD(self) -> float:
+        """
+            Get downlink delay.
+        
+            Returns:
+                ownlink delay
+        
+        
+        """
+        ...
+    def getTransitPV(self) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Get transit position/velocity.
+        
+            Returns:
+                transit position/velocity
+        
+        
+        """
+        ...
+    def getTransitState(self) -> org.orekit.propagation.SpacecraftState:
+        """
+            Get transit state.
+        
+            Returns:
+                transit state
+        
+        
+        """
+        ...
+
 class ComparableMeasurement(org.orekit.time.TimeStamped, java.lang.Comparable['ComparableMeasurement']):
     """
     public interface ComparableMeasurement extends :class:`~org.orekit.time.TimeStamped`, :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.orekit.estimation.measurements.ComparableMeasurement`>
@@ -221,7 +316,7 @@ class EstimatedEarthFrameProvider(org.orekit.frames.TransformProvider):
         """
             Get a transform for only rotations and translations on the specified date.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            The default implementation calls :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
             override it for better performance.
         
             Specified by:
@@ -353,122 +448,6 @@ class EstimationsProvider:
         """
         ...
 
-class GroundReceiverCommonParametersWithDerivatives:
-    """
-    public class GroundReceiverCommonParametersWithDerivatives extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-    
-        Common intermediate parameters used to estimate measurements where receiver is a ground station.
-    
-        Since:
-            12.0
-    """
-    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, map: typing.Union[java.util.Map[str, int], typing.Mapping[str, int]], fieldTransform: org.orekit.frames.FieldTransform[org.hipparchus.analysis.differentiation.Gradient], timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient], gradient: org.hipparchus.analysis.differentiation.Gradient, spacecraftState2: org.orekit.propagation.SpacecraftState, timeStampedFieldPVCoordinates2: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]): ...
-    def getIndices(self) -> java.util.Map[str, int]: ...
-    def getOffsetToInertialDownlink(self) -> org.orekit.frames.FieldTransform[org.hipparchus.analysis.differentiation.Gradient]: ...
-    def getState(self) -> org.orekit.propagation.SpacecraftState:
-        """
-            Get spacecraft state.
-        
-            Returns:
-                spacecraft state
-        
-        
-        """
-        ...
-    def getStationDownlink(self) -> org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]: ...
-    def getTauD(self) -> org.hipparchus.analysis.differentiation.Gradient:
-        """
-            Get downlink delay.
-        
-            Returns:
-                ownlink delay
-        
-        
-        """
-        ...
-    def getTransitPV(self) -> org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]: ...
-    def getTransitState(self) -> org.orekit.propagation.SpacecraftState:
-        """
-            Get transit state.
-        
-            Returns:
-                transit state
-        
-        
-        """
-        ...
-
-class GroundReceiverCommonParametersWithoutDerivatives:
-    """
-    public class GroundReceiverCommonParametersWithoutDerivatives extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-    
-        Common intermediate parameters used to estimate measurements where receiver is a ground station.
-    
-        Since:
-            12.0
-    """
-    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, transform: org.orekit.frames.Transform, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates, double: float, spacecraftState2: org.orekit.propagation.SpacecraftState, timeStampedPVCoordinates2: org.orekit.utils.TimeStampedPVCoordinates): ...
-    def getOffsetToInertialDownlink(self) -> org.orekit.frames.Transform:
-        """
-            Get transform between station and inertial frame.
-        
-            Returns:
-                transform between station and inertial frame
-        
-        
-        """
-        ...
-    def getState(self) -> org.orekit.propagation.SpacecraftState:
-        """
-            Get spacecraft state.
-        
-            Returns:
-                spacecraft state
-        
-        
-        """
-        ...
-    def getStationDownlink(self) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Get station position in inertial frame at end of the downlink leg.
-        
-            Returns:
-                station position in inertial frame at end of the downlink leg
-        
-        
-        """
-        ...
-    def getTauD(self) -> float:
-        """
-            Get downlink delay.
-        
-            Returns:
-                ownlink delay
-        
-        
-        """
-        ...
-    def getTransitPV(self) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Get transit position/velocity.
-        
-            Returns:
-                transit position/velocity
-        
-        
-        """
-        ...
-    def getTransitState(self) -> org.orekit.propagation.SpacecraftState:
-        """
-            Get transit state.
-        
-            Returns:
-                transit state
-        
-        
-        """
-        ...
-
 class GroundStation:
     """
     public class GroundStation extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -530,6 +509,20 @@ class GroundStation:
             :meth:`~constant`
     
     
+    """
+    ACCELERATION_SUFFIX: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ACCELERATION_SUFFIX
+    
+        Suffix for ground clock drift parameters name.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~constant`
+    
+    
     """
     INTERMEDIATE_SUFFIX: typing.ClassVar[str] = ...
     """
@@ -546,6 +539,10 @@ class GroundStation:
     def __init__(self, topocentricFrame: org.orekit.frames.TopocentricFrame): ...
     @typing.overload
     def __init__(self, topocentricFrame: org.orekit.frames.TopocentricFrame, eOPHistory: org.orekit.frames.EOPHistory, *stationDisplacement: typing.Union[org.orekit.models.earth.displacement.StationDisplacement, typing.Callable]): ...
+    @typing.overload
+    def __init__(self, topocentricFrame: org.orekit.frames.TopocentricFrame, pressureTemperatureHumidityProvider: org.orekit.models.earth.weather.PressureTemperatureHumidityProvider): ...
+    @typing.overload
+    def __init__(self, topocentricFrame: org.orekit.frames.TopocentricFrame, pressureTemperatureHumidityProvider: org.orekit.models.earth.weather.PressureTemperatureHumidityProvider, eOPHistory: org.orekit.frames.EOPHistory, *stationDisplacement: typing.Union[org.orekit.models.earth.displacement.StationDisplacement, typing.Callable]): ...
     def getBaseFrame(self) -> org.orekit.frames.TopocentricFrame:
         """
             Get the base frame associated with the station.
@@ -556,6 +553,19 @@ class GroundStation:
                 base frame associated with the station
         
         
+        """
+        ...
+    def getClockAccelerationDriver(self) -> org.orekit.utils.ParameterDriver:
+        """
+            Get a driver allowing to change station clock acceleration (which is related to measurement date).
+        
+            Returns:
+                driver for station clock acceleration
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getClockDriftDriver(self) -> org.orekit.utils.ParameterDriver:
@@ -655,6 +665,26 @@ class GroundStation:
         
         """
         ...
+    _getOffsetGeodeticPoint_0__T = typing.TypeVar('_getOffsetGeodeticPoint_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getOffsetGeodeticPoint(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getOffsetGeodeticPoint_0__T]) -> org.orekit.bodies.FieldGeodeticPoint[_getOffsetGeodeticPoint_0__T]:
+        """
+            Get the geodetic point at the center of the offset frame.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date(*must* be non-null, which is a more stringent condition * than in
+                    :meth:`~org.orekit.estimation.measurements.GroundStation.getOffsetGeodeticPoint`
+        
+            Returns:
+                geodetic point at the center of the offset frame
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
+    @typing.overload
     def getOffsetGeodeticPoint(self, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.bodies.GeodeticPoint:
         """
             Get the geodetic point at the center of the offset frame.
@@ -668,7 +698,6 @@ class GroundStation:
             Since:
                 9.1
         
-        
         """
         ...
     @typing.overload
@@ -787,6 +816,40 @@ class GroundStation:
                 driver for polar offset along Y
         
         
+        """
+        ...
+    _getPressureTemperatureHumidity_0__T = typing.TypeVar('_getPressureTemperatureHumidity_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getPressureTemperatureHumidity(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getPressureTemperatureHumidity_0__T]) -> org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_getPressureTemperatureHumidity_0__T]:
+        """
+            Get the weather parameters.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which weather parameters are requested
+        
+            Returns:
+                weather parameters
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
+    @typing.overload
+    def getPressureTemperatureHumidity(self, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.models.earth.weather.PressureTemperatureHumidity:
+        """
+            Get the weather parameters.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which weather parameters are requested
+        
+            Returns:
+                weather parameters
+        
+            Since:
+                12.1
+        
         """
         ...
     def getPrimeMeridianDriftDriver(self) -> org.orekit.utils.ParameterDriver:
@@ -857,6 +920,20 @@ class ObservableSatellite:
             :meth:`~constant`
     
     
+    """
+    CLOCK_ACCELERATION_PREFIX: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` CLOCK_ACCELERATION_PREFIX
+    
+        Prefix for clock acceleration parameter driver, the propagator index will be appended to it.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~constant`
+    
+    
     """
     def __init__(self, int: int): ...
     def equals(self, object: typing.Any) -> bool:
@@ -870,6 +947,19 @@ class ObservableSatellite:
                 12.0
         
         
+        """
+        ...
+    def getClockAccelerationDriver(self) -> org.orekit.utils.ParameterDriver:
+        """
+            Get the clock acceleration parameter driver.
+        
+            Returns:
+                clock acceleration parameter driver
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getClockDriftDriver(self) -> org.orekit.utils.ParameterDriver:
@@ -879,7 +969,7 @@ class ObservableSatellite:
             The drift is negative if the satellite clock is slowing down and positive if it is speeding up.
         
             Returns:
-                clock offset parameter driver
+                clock drift parameter driver
         
             Since:
                 10.3
@@ -899,6 +989,22 @@ class ObservableSatellite:
                 clock offset parameter driver
         
         
+        """
+        ...
+    def getName(self) -> str:
+        """
+            Build a name for the satellite.
+        
+            This is mainly useful to build the arguments for
+            :meth:`~org.orekit.estimation.measurements.gnss.AmbiguityCache.getAmbiguity`
+        
+            Returns:
+                name for the satellite (built from the propagator index)
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getPropagatorIndex(self) -> int:
@@ -909,6 +1015,19 @@ class ObservableSatellite:
                 index of the propagator related to this satellite
         
         
+        """
+        ...
+    def getQuadraticClockModel(self) -> 'QuadraticClockModel':
+        """
+            Get a quadratic clock model valid at some date.
+        
+            Returns:
+                quadratic clock model
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def hashCode(self) -> int:
@@ -925,6 +1044,94 @@ class ObservableSatellite:
         """
         ...
 
+class QuadraticClockModel(org.orekit.time.ClockModel):
+    """
+    public class QuadraticClockModel extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.ClockModel`
+    
+        Quadratic clock model.
+    
+        Since:
+            12.1
+    """
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float): ...
+    @typing.overload
+    def __init__(self, parameterDriver: org.orekit.utils.ParameterDriver, parameterDriver2: org.orekit.utils.ParameterDriver, parameterDriver3: org.orekit.utils.ParameterDriver): ...
+    _getOffset_1__T = typing.TypeVar('_getOffset_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getOffset(self, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.time.ClockOffset:
+        """
+            Get the clock offset at date.
+        
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which offset is requested
+        
+            Returns:
+                clock offset at specified date
+        
+        """
+        ...
+    @typing.overload
+    def getOffset(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getOffset_1__T]) -> org.orekit.time.FieldClockOffset[_getOffset_1__T]:
+        """
+            Get the clock offset at date.
+        
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which offset is requested
+        
+            Returns:
+                clock offset at specified date
+        
+        
+        """
+        ...
+    def getValidityEnd(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get validity end.
+        
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getValidityEnd` in interface :class:`~org.orekit.time.ClockModel`
+        
+            Returns:
+                model validity end
+        
+        
+        """
+        ...
+    def getValidityStart(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get validity start.
+        
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getValidityStart` in interface :class:`~org.orekit.time.ClockModel`
+        
+            Returns:
+                model validity start
+        
+        
+        """
+        ...
+    def toGradientModel(self, int: int, map: typing.Union[java.util.Map[str, int], typing.Mapping[str, int]], absoluteDate: org.orekit.time.AbsoluteDate) -> 'QuadraticFieldClockModel'[org.hipparchus.analysis.differentiation.Gradient]: ...
+
+_QuadraticFieldClockModel__T = typing.TypeVar('_QuadraticFieldClockModel__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class QuadraticFieldClockModel(typing.Generic[_QuadraticFieldClockModel__T]):
+    """
+    public class QuadraticFieldClockModel<T extends :class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Quadratic clock model.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_QuadraticFieldClockModel__T], t: _QuadraticFieldClockModel__T, t2: _QuadraticFieldClockModel__T, t3: _QuadraticFieldClockModel__T): ...
+    def getOffset(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_QuadraticFieldClockModel__T]) -> org.orekit.time.FieldClockOffset[_QuadraticFieldClockModel__T]: ...
+
 _EstimatedMeasurementBase__T = typing.TypeVar('_EstimatedMeasurementBase__T', bound='ObservedMeasurement')  # <T>
 class EstimatedMeasurementBase(ComparableMeasurement, typing.Generic[_EstimatedMeasurementBase__T]):
     """
@@ -937,6 +1144,7 @@ class EstimatedMeasurementBase(ComparableMeasurement, typing.Generic[_EstimatedM
             8.0
     """
     def __init__(self, t: _EstimatedMeasurementBase__T, int: int, int2: int, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray], timeStampedPVCoordinatesArray: typing.Union[typing.List[org.orekit.utils.TimeStampedPVCoordinates], jpype.JArray]): ...
+    def getAppliedEffects(self) -> java.util.IdentityHashMap[EstimationModifier[_EstimatedMeasurementBase__T], typing.MutableSequence[float]]: ...
     def getCount(self) -> int:
         """
             Get the evaluations counter.
@@ -1004,6 +1212,19 @@ class EstimatedMeasurementBase(ComparableMeasurement, typing.Generic[_EstimatedM
                 observed value
         
         
+        """
+        ...
+    def getOriginalEstimatedValue(self) -> typing.MutableSequence[float]:
+        """
+            Get the original estimated value prior to any modification.
+        
+            Returns:
+                original estimated value prior to any modification
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getParticipants(self) -> typing.MutableSequence[org.orekit.utils.TimeStampedPVCoordinates]:
@@ -1055,6 +1276,7 @@ class EstimatedMeasurementBase(ComparableMeasurement, typing.Generic[_EstimatedM
         
         """
         ...
+    def modifyEstimatedValue(self, estimationModifier: EstimationModifier[_EstimatedMeasurementBase__T], *double: float) -> None: ...
     def setEstimatedValue(self, *double: float) -> None:
         """
             Set the estimated value.
@@ -1062,6 +1284,9 @@ class EstimatedMeasurementBase(ComparableMeasurement, typing.Generic[_EstimatedM
             Parameters:
                 estimatedValue (double...): estimated value
         
+            Also see:
+                :meth:`~org.orekit.estimation.measurements.EstimatedMeasurementBase.modifyEstimatedValue`
+        
         
         """
         ...
@@ -1088,6 +1313,50 @@ class EstimatedMeasurementBase(ComparableMeasurement, typing.Generic[_EstimatedM
         @staticmethod
         def values() -> typing.MutableSequence['EstimatedMeasurementBase.Status']: ...
 
+class GroundReceiverCommonParametersWithDerivatives(CommonParametersWithDerivatives):
+    """
+    public class GroundReceiverCommonParametersWithDerivatives extends :class:`~org.orekit.estimation.measurements.CommonParametersWithDerivatives`
+    
+        Common intermediate parameters used to estimate measurements where receiver is a ground station.
+    
+        Since:
+            12.0
+    """
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, map: typing.Union[java.util.Map[str, int], typing.Mapping[str, int]], fieldTransform: org.orekit.frames.FieldTransform[org.hipparchus.analysis.differentiation.Gradient], timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient], gradient: org.hipparchus.analysis.differentiation.Gradient, spacecraftState2: org.orekit.propagation.SpacecraftState, timeStampedFieldPVCoordinates2: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]): ...
+    def getOffsetToInertialDownlink(self) -> org.orekit.frames.FieldTransform[org.hipparchus.analysis.differentiation.Gradient]: ...
+    def getStationDownlink(self) -> org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]: ...
+
+class GroundReceiverCommonParametersWithoutDerivatives(CommonParametersWithoutDerivatives):
+    """
+    public class GroundReceiverCommonParametersWithoutDerivatives extends :class:`~org.orekit.estimation.measurements.CommonParametersWithoutDerivatives`
+    
+        Common intermediate parameters used to estimate measurements where receiver is a ground station.
+    
+        Since:
+            12.0
+    """
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, transform: org.orekit.frames.Transform, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates, double: float, spacecraftState2: org.orekit.propagation.SpacecraftState, timeStampedPVCoordinates2: org.orekit.utils.TimeStampedPVCoordinates): ...
+    def getOffsetToInertialDownlink(self) -> org.orekit.frames.Transform:
+        """
+            Get transform between station and inertial frame.
+        
+            Returns:
+                transform between station and inertial frame
+        
+        
+        """
+        ...
+    def getStationDownlink(self) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Get station position in inertial frame at end of the downlink leg.
+        
+            Returns:
+                station position in inertial frame at end of the downlink leg
+        
+        
+        """
+        ...
+
 _ObservedMeasurement__T = typing.TypeVar('_ObservedMeasurement__T', bound='ObservedMeasurement')  # <T>
 class ObservedMeasurement(ComparableMeasurement, org.orekit.utils.ParameterDriversProvider, typing.Generic[_ObservedMeasurement__T]):
     """
@@ -1111,7 +1380,10 @@ class ObservedMeasurement(ComparableMeasurement, org.orekit.utils.ParameterDrive
     """
     def addModifier(self, estimationModifier: EstimationModifier[_ObservedMeasurement__T]) -> None: ...
     def estimate(self, int: int, int2: int, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> 'EstimatedMeasurement'[_ObservedMeasurement__T]: ...
+    @typing.overload
     def estimateWithoutDerivatives(self, int: int, int2: int, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> EstimatedMeasurementBase[_ObservedMeasurement__T]: ...
+    @typing.overload
+    def estimateWithoutDerivatives(self, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> EstimatedMeasurementBase[_ObservedMeasurement__T]: ...
     def getBaseWeight(self) -> typing.MutableSequence[float]:
         """
             Get the base weight associated with the measurement
@@ -1210,6 +1482,9 @@ class AbstractMeasurement(ObservedMeasurement[_AbstractMeasurement__T], typing.G
     """
     def addModifier(self, estimationModifier: EstimationModifier[_AbstractMeasurement__T]) -> None: ...
     def estimate(self, int: int, int2: int, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> 'EstimatedMeasurement'[_AbstractMeasurement__T]: ...
+    @typing.overload
+    def estimateWithoutDerivatives(self, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> EstimatedMeasurementBase[_AbstractMeasurement__T]: ...
+    @typing.overload
     def estimateWithoutDerivatives(self, int: int, int2: int, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> EstimatedMeasurementBase[_AbstractMeasurement__T]: ...
     def getBaseWeight(self) -> typing.MutableSequence[float]:
         """
@@ -1336,7 +1611,45 @@ class AbstractMeasurement(ObservedMeasurement[_AbstractMeasurement__T], typing.G
         
         """
         ...
-    _signalTimeOfFlight_1__T = typing.TypeVar('_signalTimeOfFlight_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _signalTimeOfFlight_3__T = typing.TypeVar('_signalTimeOfFlight_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _signalTimeOfFlight_4__T = typing.TypeVar('_signalTimeOfFlight_4__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _signalTimeOfFlight_5__T = typing.TypeVar('_signalTimeOfFlight_5__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def signalTimeOfFlight(pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, absoluteDate2: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> float:
+        """
+            Compute propagation delay on a link leg (typically downlink or uplink).
+        
+            Parameters:
+                adjustableEmitter (:class:`~org.orekit.utils.PVCoordinatesProvider`): position/velocity provider of emitter
+                approxEmissionDate (:class:`~org.orekit.time.AbsoluteDate`): approximate emission date
+                receiverPosition (:class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): fixed position of receiver at :code:`signalArrivalDate`
+                signalArrivalDate (:class:`~org.orekit.time.AbsoluteDate`): date at which the signal arrives to receiver
+                receiverFrame (:class:`~org.orekit.frames.Frame`): frame in which receiver is defined
+        
+            Returns:
+                *positive* delay between signal emission and signal reception dates
+        
+            Since:
+                12.1
+        
+        :class:`~org.orekit.estimation.measurements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` :class:`~org.orekit.annotation.DefaultDataContext` public static <T extends :class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T signalTimeOfFlight (:class:`~org.orekit.utils.TimeStampedFieldPVCoordinates`<T> adjustableEmitterPV, :class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> receiverPosition, :class:`~org.orekit.time.FieldAbsoluteDate`<T> signalArrivalDate)
+        
+            Deprecated.
+            as of 12.1, replaced by either :meth:`~org.orekit.estimation.measurements.AbstractMeasurement.signalTimeOfFlight` or
+            :meth:`~org.orekit.estimation.measurements.AbstractMeasurement.signalTimeOfFlight`
+            Compute propagation delay on a link leg (typically downlink or uplink).
+        
+            Parameters:
+                adjustableEmitterPV (:class:`~org.orekit.utils.TimeStampedFieldPVCoordinates`<T> adjustableEmitterPV): position/velocity of emitter that may be adjusted
+                receiverPosition (:class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> receiverPosition): fixed position of receiver at :code:`signalArrivalDate`, in the same frame as :code:`adjustableEmitterPV`
+                signalArrivalDate (:class:`~org.orekit.time.FieldAbsoluteDate`<T> signalArrivalDate): date at which the signal arrives to receiver
+        
+            Returns:
+                *positive* delay between signal emission and signal reception dates
+        
+        """
+        ...
     @typing.overload
     @staticmethod
     def signalTimeOfFlight(timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, absoluteDate: org.orekit.time.AbsoluteDate) -> float:
@@ -1345,17 +1658,49 @@ class AbstractMeasurement(ObservedMeasurement[_AbstractMeasurement__T], typing.G
         
             Parameters:
                 adjustableEmitterPV (:class:`~org.orekit.utils.TimeStampedPVCoordinates`): position/velocity of emitter that may be adjusted
-                receiverPosition (:class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): fixed position of receiver at :code:`signalArrivalDate`, in the same frame as :code:`adjustableEmitterPV`
-                signalArrivalDate (:class:`~org.orekit.time.AbsoluteDate`): date at which the signal arrives to receiver
+                receiverPosition (:class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): fixed position of receiver at :code:`signalArrivalDate`
+                receiverFrame (:class:`~org.orekit.time.AbsoluteDate`): frame in which both :code:`adjustableEmitterPV` and :code:`receiver receiverPosition` are defined
+                signalArrivalDate (:class:`~org.orekit.frames.Frame`): date at which the signal arrives to receiver
+        
+            Returns:
+                *positive* delay between signal emission and signal reception dates
+        
+            Since:
+                12.1
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def signalTimeOfFlight(timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> float: ...
+    @typing.overload
+    @staticmethod
+    def signalTimeOfFlight(fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_signalTimeOfFlight_3__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_signalTimeOfFlight_3__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_signalTimeOfFlight_3__T], fieldAbsoluteDate2: org.orekit.time.FieldAbsoluteDate[_signalTimeOfFlight_3__T], frame: org.orekit.frames.Frame) -> _signalTimeOfFlight_3__T:
+        """
+            Compute propagation delay on a link leg (typically downlink or uplink).
+        
+            Parameters:
+                adjustableEmitter (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> adjustableEmitter): position/velocity provider of emitter
+                approxEmissionDate (:class:`~org.orekit.time.FieldAbsoluteDate`<T> approxEmissionDate): approximate emission date
+                receiverPosition (:class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> receiverPosition): fixed position of receiver at :code:`signalArrivalDate`, in the same frame as :code:`adjustableEmitterPV`
+                signalArrivalDate (:class:`~org.orekit.time.FieldAbsoluteDate`<T> signalArrivalDate): date at which the signal arrives to receiver
+                receiverFrame (:class:`~org.orekit.frames.Frame`): frame in which receiver is defined
         
             Returns:
                 *positive* delay between signal emission and signal reception dates
         
+            Since:
+                12.1
+        
+        
         """
         ...
     @typing.overload
     @staticmethod
-    def signalTimeOfFlight(timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_signalTimeOfFlight_1__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_signalTimeOfFlight_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_signalTimeOfFlight_1__T]) -> _signalTimeOfFlight_1__T:
+    def signalTimeOfFlight(timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_signalTimeOfFlight_4__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_signalTimeOfFlight_4__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_signalTimeOfFlight_4__T]) -> _signalTimeOfFlight_4__T: ...
+    @typing.overload
+    @staticmethod
+    def signalTimeOfFlight(timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_signalTimeOfFlight_5__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_signalTimeOfFlight_5__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_signalTimeOfFlight_5__T], frame: org.orekit.frames.Frame) -> _signalTimeOfFlight_5__T:
         """
             Compute propagation delay on a link leg (typically downlink or uplink).
         
@@ -1363,10 +1708,13 @@ class AbstractMeasurement(ObservedMeasurement[_AbstractMeasurement__T], typing.G
                 adjustableEmitterPV (:class:`~org.orekit.utils.TimeStampedFieldPVCoordinates`<T> adjustableEmitterPV): position/velocity of emitter that may be adjusted
                 receiverPosition (:class:`~org.orekit.estimation.measurements.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> receiverPosition): fixed position of receiver at :code:`signalArrivalDate`, in the same frame as :code:`adjustableEmitterPV`
                 signalArrivalDate (:class:`~org.orekit.time.FieldAbsoluteDate`<T> signalArrivalDate): date at which the signal arrives to receiver
+                receiverFrame (:class:`~org.orekit.frames.Frame`): frame in which receiver is defined
         
             Returns:
                 *positive* delay between signal emission and signal reception dates
         
+            Since:
+                12.1
         
         """
         ...
@@ -1534,9 +1882,9 @@ class InterSatellitesRange(AbstractMeasurement['InterSatellitesRange']):
           - as measurement date is evaluated at reception time, the real physical date of the measurement is the observed date to
             which the local satellite clock offset is subtracted
           - as range is evaluated using the total signal time of flight, for one-way measurements the observed range is the real
-            physical signal time of flight to which (Δtl - Δtr) ⨉ c is added, where Δtl (resp. Δtr) is the clock offset for
+            physical signal time of flight to which (Δtl - Δtr) ⨯ c is added, where Δtl (resp. Δtr) is the clock offset for
             the local satellite (resp. remote satellite). A similar effect exists in two-way measurements but it is computed as
-            (Δtl - Δtl) ⨉ c / 2 as the local satellite clock is used for both initial emission and final reception and therefore
+            (Δtl - Δtl) ⨯ c / 2 as the local satellite clock is used for both initial emission and final reception and therefore
             it evaluates to zero.
     
     
@@ -2024,9 +2372,9 @@ class Range(GroundReceiverMeasurement['Range']):
           - as measurement date is evaluated at reception time, the real physical date of the measurement is the observed date to
             which the receiving ground station clock offset is subtracted
           - as range is evaluated using the total signal time of flight, for one-way measurements the observed range is the real
-            physical signal time of flight to which (Δtg - Δts) ⨉ c is added, where Δtg (resp. Δts) is the clock offset for
+            physical signal time of flight to which (Δtg - Δts) ⨯ c is added, where Δtg (resp. Δts) is the clock offset for
             the receiving ground station (resp. emitting satellite). A similar effect exists in two-way measurements but it is
-            computed as (Δtg - Δtg) ⨉ c / 2 as the same ground station clock is used for initial emission and final reception
+            computed as (Δtg - Δtg) ⨯ c / 2 as the same ground station clock is used for initial emission and final reception
             and therefore it evaluates to zero.
     
     
@@ -2217,6 +2565,8 @@ class __module_protocol__(Protocol):
     AngularRaDec: typing.Type[AngularRaDec]
     BistaticRange: typing.Type[BistaticRange]
     BistaticRangeRate: typing.Type[BistaticRangeRate]
+    CommonParametersWithDerivatives: typing.Type[CommonParametersWithDerivatives]
+    CommonParametersWithoutDerivatives: typing.Type[CommonParametersWithoutDerivatives]
     ComparableMeasurement: typing.Type[ComparableMeasurement]
     EstimatedEarthFrameProvider: typing.Type[EstimatedEarthFrameProvider]
     EstimatedMeasurement: typing.Type[EstimatedMeasurement]
@@ -2234,6 +2584,8 @@ class __module_protocol__(Protocol):
     ObservedMeasurement: typing.Type[ObservedMeasurement]
     PV: typing.Type[PV]
     Position: typing.Type[Position]
+    QuadraticClockModel: typing.Type[QuadraticClockModel]
+    QuadraticFieldClockModel: typing.Type[QuadraticFieldClockModel]
     Range: typing.Type[Range]
     RangeRate: typing.Type[RangeRate]
     TDOA: typing.Type[TDOA]
diff --git a/org-stubs/orekit/estimation/measurements/generation/__init__.pyi b/org-stubs/orekit/estimation/measurements/generation/__init__.pyi
index fe861e8d3e4fd4bb1ed6eac100ba84b17df69495..62443c5f835e3c5a60bdac0401ab71f8f1f126c7 100644
--- a/org-stubs/orekit/estimation/measurements/generation/__init__.pyi
+++ b/org-stubs/orekit/estimation/measurements/generation/__init__.pyi
@@ -141,7 +141,28 @@ class MeasurementBuilder(typing.Generic[_MeasurementBuilder__T]):
             9.3
     """
     def addModifier(self, estimationModifier: org.orekit.estimation.measurements.EstimationModifier[_MeasurementBuilder__T]) -> None: ...
-    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> _MeasurementBuilder__T: ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> _MeasurementBuilder__T:
+        """
+            Generate a single measurement.
+        
+            Warning: This method uses "shiftedBy" so it is not as accurate as the method above that uses interpolators.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): measurement date
+                states (:class:`~org.orekit.propagation.SpacecraftState`[]): all spacecraft states (i.e. including ones that may not be relevant for the current builder)
+        
+            Returns:
+                generated measurement
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> _MeasurementBuilder__T: ...
     def getModifiers(self) -> java.util.List[org.orekit.estimation.measurements.EstimationModifier[_MeasurementBuilder__T]]: ...
     def getSatellites(self) -> typing.MutableSequence[org.orekit.estimation.measurements.ObservableSatellite]:
         """
@@ -414,6 +435,9 @@ class MultiplexedMeasurementBuilder(MeasurementBuilder[org.orekit.estimation.mea
     """
     def __init__(self, list: java.util.List[MeasurementBuilder[typing.Any]]): ...
     def addModifier(self, estimationModifier: org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.MultiplexedMeasurement]) -> None: ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.MultiplexedMeasurement: ...
     def getModifiers(self) -> java.util.List[org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.MultiplexedMeasurement]]: ...
     def getSatellites(self) -> typing.MutableSequence[org.orekit.estimation.measurements.ObservableSatellite]:
@@ -461,6 +485,9 @@ class AngularAzElBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measur
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.AngularAzEl: ...
 
 class AngularRaDecBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.AngularRaDec]):
@@ -473,6 +500,9 @@ class AngularRaDecBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measu
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, frame: org.orekit.frames.Frame, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.AngularRaDec: ...
 
 class BistaticRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.BistaticRange]):
@@ -485,6 +515,9 @@ class BistaticRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.meas
             11.2
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, groundStation2: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.BistaticRange: ...
 
 class BistaticRangeRateBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.BistaticRangeRate]):
@@ -497,6 +530,9 @@ class BistaticRangeRateBuilder(AbstractMeasurementBuilder[org.orekit.estimation.
             11.2
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, groundStation2: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.BistaticRangeRate: ...
 
 _ContinuousScheduler__T = typing.TypeVar('_ContinuousScheduler__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
@@ -587,8 +623,26 @@ class FDOABuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.
             12.0
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, groundStation2: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.FDOA: ...
 
+class InterSatellitesOneWayRangeRateBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate]):
+    """
+    public class InterSatellitesOneWayRangeRateBuilder extends :class:`~org.orekit.estimation.measurements.generation.AbstractMeasurementBuilder`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate`>
+    
+        Builder for :class:`~org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate` measurements.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, double: float, double2: float): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate: ...
+
 class InterSatellitesPhaseBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]):
     """
     public class InterSatellitesPhaseBuilder extends :class:`~org.orekit.estimation.measurements.generation.AbstractMeasurementBuilder`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
@@ -598,7 +652,13 @@ class InterSatellitesPhaseBuilder(AbstractMeasurementBuilder[org.orekit.estimati
         Since:
             10.3
     """
+    @typing.overload
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, double: float, double2: float, double3: float): ...
+    @typing.overload
+    def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, double: float, double2: float, double3: float, ambiguityCache: org.orekit.estimation.measurements.gnss.AmbiguityCache): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.gnss.InterSatellitesPhase: ...
 
 class InterSatellitesRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.InterSatellitesRange]):
@@ -611,6 +671,9 @@ class InterSatellitesRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimati
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, boolean: bool, double: float, double2: float): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.InterSatellitesRange: ...
 
 class OneWayGNSSPhaseBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase]):
@@ -622,7 +685,13 @@ class OneWayGNSSPhaseBuilder(AbstractMeasurementBuilder[org.orekit.estimation.me
         Since:
             12.0
     """
+    @typing.overload
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, toDoubleFunction: typing.Union[java.util.function.ToDoubleFunction[org.orekit.time.AbsoluteDate], typing.Callable[[org.orekit.time.AbsoluteDate], float]], double: float, double2: float, double3: float): ...
+    @typing.overload
+    def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, quadraticClockModel: org.orekit.estimation.measurements.QuadraticClockModel, double: float, double2: float, double3: float, ambiguityCache: org.orekit.estimation.measurements.gnss.AmbiguityCache): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.gnss.OneWayGNSSPhase: ...
 
 class OneWayGNSSRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.gnss.OneWayGNSSRange]):
@@ -635,8 +704,26 @@ class OneWayGNSSRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.me
             12.0
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, toDoubleFunction: typing.Union[java.util.function.ToDoubleFunction[org.orekit.time.AbsoluteDate], typing.Callable[[org.orekit.time.AbsoluteDate], float]], double: float, double2: float): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.gnss.OneWayGNSSRange: ...
 
+class OneWayGNSSRangeRateBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate]):
+    """
+    public class OneWayGNSSRangeRateBuilder extends :class:`~org.orekit.estimation.measurements.generation.AbstractMeasurementBuilder`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate`>
+    
+        Builder for :class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate` measurements.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, double: float, double2: float): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate: ...
+
 class PVBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.PV]):
     """
     public class PVBuilder extends :class:`~org.orekit.estimation.measurements.generation.AbstractMeasurementBuilder`<:class:`~org.orekit.estimation.measurements.PV`>
@@ -647,6 +734,9 @@ class PVBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.PV
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.PV: ...
 
 class PositionBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.Position]):
@@ -659,6 +749,9 @@ class PositionBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measureme
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.Position: ...
 
 class RangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.Range]):
@@ -671,6 +764,9 @@ class RangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, boolean: bool, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.Range: ...
 
 class RangeRateBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.RangeRate]):
@@ -683,6 +779,9 @@ class RangeRateBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurem
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, boolean: bool, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.RangeRate: ...
 
 class TDOABuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.TDOA]):
@@ -695,6 +794,9 @@ class TDOABuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.
             11.2
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, groundStation2: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.TDOA: ...
 
 class TurnAroundRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.measurements.TurnAroundRange]):
@@ -707,6 +809,9 @@ class TurnAroundRangeBuilder(AbstractMeasurementBuilder[org.orekit.estimation.me
             9.3
     """
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, groundStation2: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> org.orekit.estimation.measurements.TurnAroundRange: ...
 
 
@@ -725,12 +830,14 @@ class __module_protocol__(Protocol):
     GatheringSubscriber: typing.Type[GatheringSubscriber]
     GeneratedMeasurementSubscriber: typing.Type[GeneratedMeasurementSubscriber]
     Generator: typing.Type[Generator]
+    InterSatellitesOneWayRangeRateBuilder: typing.Type[InterSatellitesOneWayRangeRateBuilder]
     InterSatellitesPhaseBuilder: typing.Type[InterSatellitesPhaseBuilder]
     InterSatellitesRangeBuilder: typing.Type[InterSatellitesRangeBuilder]
     MeasurementBuilder: typing.Type[MeasurementBuilder]
     MultiplexedMeasurementBuilder: typing.Type[MultiplexedMeasurementBuilder]
     OneWayGNSSPhaseBuilder: typing.Type[OneWayGNSSPhaseBuilder]
     OneWayGNSSRangeBuilder: typing.Type[OneWayGNSSRangeBuilder]
+    OneWayGNSSRangeRateBuilder: typing.Type[OneWayGNSSRangeRateBuilder]
     PVBuilder: typing.Type[PVBuilder]
     PositionBuilder: typing.Type[PositionBuilder]
     RangeBuilder: typing.Type[RangeBuilder]
diff --git a/org-stubs/orekit/estimation/measurements/gnss/__init__.pyi b/org-stubs/orekit/estimation/measurements/gnss/__init__.pyi
index 95c5f9f283b8a1e8d6f614566aa792ce3539f509..7727cfc81bef15c772b273c5ef9a2410df959728 100644
--- a/org-stubs/orekit/estimation/measurements/gnss/__init__.pyi
+++ b/org-stubs/orekit/estimation/measurements/gnss/__init__.pyi
@@ -9,6 +9,7 @@ import java.io
 import java.lang
 import java.util
 import jpype
+import org.hipparchus.analysis.differentiation
 import org.hipparchus.geometry.euclidean.threed
 import org.hipparchus.linear
 import org.hipparchus.random
@@ -16,6 +17,7 @@ import org.orekit.estimation.measurements
 import org.orekit.estimation.measurements.generation
 import org.orekit.files.rinex.observation
 import org.orekit.gnss
+import org.orekit.propagation
 import org.orekit.propagation.sampling
 import org.orekit.time
 import org.orekit.utils
@@ -23,6 +25,18 @@ import typing
 
 
 
+_AbstractOnBoardMeasurement__T = typing.TypeVar('_AbstractOnBoardMeasurement__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+class AbstractOnBoardMeasurement(org.orekit.estimation.measurements.AbstractMeasurement[_AbstractOnBoardMeasurement__T], typing.Generic[_AbstractOnBoardMeasurement__T]):
+    """
+    public abstract class AbstractOnBoardMeasurement<T extends :class:`~org.orekit.estimation.measurements.ObservedMeasurement`<T>> extends :class:`~org.orekit.estimation.measurements.AbstractMeasurement`<T>
+    
+        Base class modeling a measurement where receiver is a satellite.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, list: java.util.List[org.orekit.estimation.measurements.ObservableSatellite]): ...
+
 _AbstractWindUp__T = typing.TypeVar('_AbstractWindUp__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
 class AbstractWindUp(org.orekit.estimation.measurements.EstimationModifier[_AbstractWindUp__T], typing.Generic[_AbstractWindUp__T]):
     """
@@ -76,6 +90,96 @@ class AmbiguityAcceptance:
         """
         ...
 
+class AmbiguityCache:
+    """
+    public class AmbiguityCache extends :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Cache for :class:`~org.orekit.estimation.measurements.gnss.AmbiguityDriver`.
+    
+        Since:
+            12.1
+    """
+    DEFAULT_CACHE: typing.ClassVar['AmbiguityCache'] = ...
+    """
+    :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public static final :class:`~org.orekit.estimation.measurements.gnss.AmbiguityCache` DEFAULT_CACHE
+    
+        Deprecated.
+        this default cache is only a temporary hack for compatibility purposes it will be removed in Orekit 13.0
+        Default cache.
+    
+    """
+    def __init__(self): ...
+    def getAmbiguity(self, string: str, string2: str, double: float) -> 'AmbiguityDriver':
+        """
+            Get a cached driver for ambiguity.
+        
+            A new parameter driver is created and cached the first time an emitter/receiver/wavelength triplet is used; after that,
+            the cached driver will be returned when the same triplet is passed again
+        
+            Parameters:
+                emitter (:class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): emitter id
+                receiver (:class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): receiver id
+                wavelength (double): signal wavelength
+        
+            Returns:
+                parameter driver for the emitter/receiver/wavelength triplet
+        
+        
+        """
+        ...
+
+class AmbiguityDriver(org.orekit.utils.ParameterDriver):
+    """
+    public class AmbiguityDriver extends :class:`~org.orekit.utils.ParameterDriver`
+    
+        Specialized :class:`~org.orekit.utils.ParameterDriver` for ambiguity.
+    
+        Since:
+            12.1
+    """
+    PREFIX: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` PREFIX
+    
+        Prefix for parameter drivers names.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def __init__(self, string: str, string2: str, double: float): ...
+    def getEmitter(self) -> str:
+        """
+            Get emitter id.
+        
+            Returns:
+                emitter id
+        
+        
+        """
+        ...
+    def getReceiver(self) -> str:
+        """
+            Get receiver id.
+        
+            Returns:
+                receiver id
+        
+        
+        """
+        ...
+    def getWavelength(self) -> float:
+        """
+            Get signal wavelength.
+        
+            Returns:
+                signal wavelength
+        
+        
+        """
+        ...
+
 class AmbiguitySolver:
     """
     public class AmbiguitySolver extends :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -180,6 +284,9 @@ class CombinedObservationData:
         Since:
             10.1
     """
+    @typing.overload
+    def __init__(self, double: float, double2: float, combinationType: CombinationType, measurementType: org.orekit.gnss.MeasurementType, list: java.util.List[org.orekit.files.rinex.observation.ObservationData]): ...
+    @typing.overload
     def __init__(self, combinationType: CombinationType, measurementType: org.orekit.gnss.MeasurementType, double: float, double2: float, list: java.util.List[org.orekit.files.rinex.observation.ObservationData]): ...
     def getCombinationType(self) -> CombinationType:
         """
@@ -189,10 +296,27 @@ class CombinedObservationData:
                 the combination of measurements type
         
         
+        """
+        ...
+    def getCombinedFrequency(self) -> float:
+        """
+            Get the value of the combined frequency in MHz.
+        
+            For the single frequency combinations, this method returns the common frequency of both measurements.
+        
+            Returns:
+                value of the combined frequency in Hz
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getCombinedMHzFrequency(self) -> float:
         """
+            Deprecated.
+            as of 12.1, replaced by :meth:`~org.orekit.estimation.measurements.gnss.CombinedObservationData.getCombinedFrequency`
             Get the value of the combined frequency in MHz.
         
             For the single frequency combinations, this method returns the common frequency of both measurements.
@@ -367,6 +491,7 @@ class Dipole:
         :meth:`~org.orekit.estimation.measurements.gnss.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D.html?is`.
     
     """
+    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
     def getPrimary(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
             Get the primary dipole vector.
@@ -474,63 +599,6 @@ class IntegerLeastSquareSolver:
         """
         ...
 
-class InterSatellitesPhase(org.orekit.estimation.measurements.AbstractMeasurement['InterSatellitesPhase']):
-    """
-    public class InterSatellitesPhase extends :class:`~org.orekit.estimation.measurements.AbstractMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
-    
-        Phase measurement between two satellites.
-    
-        The measurement is considered to be a signal emitted from a remote satellite and received by a local satellite. Its
-        value is the number of cycles between emission and reception. The motion of both spacecrafts during the signal flight
-        time are taken into account. The date of the measurement corresponds to the reception on ground of the emitted signal.
-    
-        Since:
-            10.3
-    """
-    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
-    
-        Type of the measurement.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    AMBIGUITY_NAME: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` AMBIGUITY_NAME
-    
-        Name for ambiguity driver.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    def __init__(self, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float): ...
-    def getAmbiguityDriver(self) -> org.orekit.utils.ParameterDriver:
-        """
-            Get the driver for phase ambiguity.
-        
-            Returns:
-                the driver for phase ambiguity
-        
-        
-        """
-        ...
-    def getWavelength(self) -> float:
-        """
-            Get the wavelength.
-        
-            Returns:
-                wavelength (m)
-        
-        
-        """
-        ...
-
 class InterSatellitesWindUpFactory:
     """
     public class InterSatellitesWindUpFactory extends :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -706,100 +774,118 @@ class MeasurementCombinationFactory:
         """
         ...
 
-class OneWayGNSSPhase(org.orekit.estimation.measurements.AbstractMeasurement['OneWayGNSSPhase']):
+class OnBoardCommonParametersWithDerivatives(org.orekit.estimation.measurements.CommonParametersWithDerivatives):
     """
-    public class OneWayGNSSPhase extends :class:`~org.orekit.estimation.measurements.AbstractMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`>
+    public class OnBoardCommonParametersWithDerivatives extends :class:`~org.orekit.estimation.measurements.CommonParametersWithDerivatives`
     
-        One-way GNSS phase measurement.
-    
-        This class can be used in precise orbit determination applications for modeling a phase measurement between a GNSS
-        satellite (emitter) and a LEO satellite (receiver).
-    
-        The one-way GNSS phase measurement assumes knowledge of the orbit and the clock offset of the emitting GNSS satellite.
-        For instance, it is possible to use a SP3 file or a GNSS navigation message to recover the satellite's orbit and clock.
-    
-        This class is very similar to :class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase` measurement class.
-        However, using the one-way GNSS phase measurement, the orbit and clock of the emitting GNSS satellite are **NOT**
-        estimated simultaneously with LEO satellite coordinates.
+        Common intermediate parameters used to estimate measurements where receiver is a satellite.
     
         Since:
-            10.3
-    """
-    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
-    
-        Type of the measurement.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
+            12.1
     """
-    AMBIGUITY_NAME: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` AMBIGUITY_NAME
-    
-        Name for ambiguity driver.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, absoluteDate: org.orekit.time.AbsoluteDate, double2: float, double3: float, double4: float, double5: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
-    def getAmbiguityDriver(self) -> org.orekit.utils.ParameterDriver:
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, map: typing.Union[java.util.Map[str, int], typing.Mapping[str, int]], gradient: org.hipparchus.analysis.differentiation.Gradient, gradient2: org.hipparchus.analysis.differentiation.Gradient, gradient3: org.hipparchus.analysis.differentiation.Gradient, gradient4: org.hipparchus.analysis.differentiation.Gradient, gradient5: org.hipparchus.analysis.differentiation.Gradient, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient], timeStampedFieldPVCoordinates2: org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]): ...
+    def getLocalOffset(self) -> org.hipparchus.analysis.differentiation.Gradient:
         """
-            Get the driver for phase ambiguity.
+            Get local clock offset.
         
             Returns:
-                the driver for phase ambiguity
+                local clock offset
         
         
         """
         ...
-    def getWavelength(self) -> float:
+    def getLocalRate(self) -> org.hipparchus.analysis.differentiation.Gradient:
         """
-            Get the wavelength.
+            Get local clock rate.
         
             Returns:
-                wavelength (m)
+                local clock rate
+        
+        
+        """
+        ...
+    def getRemoteOffset(self) -> org.hipparchus.analysis.differentiation.Gradient:
+        """
+            Get remote clock offset.
+        
+            Returns:
+                remote clock offset
+        
+        
+        """
+        ...
+    def getRemotePV(self) -> org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.analysis.differentiation.Gradient]: ...
+    def getRemoteRate(self) -> org.hipparchus.analysis.differentiation.Gradient:
+        """
+            Get remote clock rate.
+        
+            Returns:
+                remote clock rate
         
         
         """
         ...
 
-class OneWayGNSSRange(org.orekit.estimation.measurements.AbstractMeasurement['OneWayGNSSRange']):
+class OnBoardCommonParametersWithoutDerivatives(org.orekit.estimation.measurements.CommonParametersWithoutDerivatives):
     """
-    public class OneWayGNSSRange extends :class:`~org.orekit.estimation.measurements.AbstractMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRange`>
+    public class OnBoardCommonParametersWithoutDerivatives extends :class:`~org.orekit.estimation.measurements.CommonParametersWithoutDerivatives`
     
-        One-way GNSS range measurement.
-    
-        This class can be used in precise orbit determination applications for modeling a range measurement between a GNSS
-        satellite (emitter) and a LEO satellite (receiver).
-    
-        The one-way GNSS range measurement assumes knowledge of the orbit and the clock offset of the emitting GNSS satellite.
-        For instance, it is possible to use a SP3 file or a GNSS navigation message to recover the satellite's orbit and clock.
-    
-        This class is very similar to :class:`~org.orekit.estimation.measurements.InterSatellitesRange` measurement class.
-        However, using the one-way GNSS range measurement, the orbit and clock of the emitting GNSS satellite are **NOT**
-        estimated simultaneously with LEO satellite coordinates.
+        Common intermediate parameters used to estimate measurements where receiver is a satellite.
     
         Since:
-            10.3
+            12.1
     """
-    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
-    
-        Type of the measurement.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, absoluteDate: org.orekit.time.AbsoluteDate, double2: float, double3: float, double4: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, double: float, double2: float, double3: float, double4: float, double5: float, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates, timeStampedPVCoordinates2: org.orekit.utils.TimeStampedPVCoordinates): ...
+    def getLocalOffset(self) -> float:
+        """
+            Get local clock offset.
+        
+            Returns:
+                local clock offset
+        
+        
+        """
+        ...
+    def getLocalRate(self) -> float:
+        """
+            Get local clock rate.
+        
+            Returns:
+                local clock rate
+        
+        
+        """
+        ...
+    def getRemoteOffset(self) -> float:
+        """
+            Get remote clock offset.
+        
+            Returns:
+                remote clock offset
+        
+        
+        """
+        ...
+    def getRemotePV(self) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Get remote satellite position/velocity.
+        
+            Returns:
+                remote satellite position/velocity
+        
+        
+        """
+        ...
+    def getRemoteRate(self) -> float:
+        """
+            Get remote clock rate.
+        
+            Returns:
+                remote clock rate
+        
+        
+        """
+        ...
 
 class Phase(org.orekit.estimation.measurements.GroundReceiverMeasurement['Phase']):
     """
@@ -828,8 +914,10 @@ class Phase(org.orekit.estimation.measurements.GroundReceiverMeasurement['Phase'
     """
     AMBIGUITY_NAME: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` AMBIGUITY_NAME
+    :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` AMBIGUITY_NAME
     
+        Deprecated.
+        as of 12.1 not used anymore
         Name for ambiguity driver.
     
         Also see:
@@ -837,8 +925,11 @@ class Phase(org.orekit.estimation.measurements.GroundReceiverMeasurement['Phase'
     
     
     """
+    @typing.overload
     def __init__(self, groundStation: org.orekit.estimation.measurements.GroundStation, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
-    def getAmbiguityDriver(self) -> org.orekit.utils.ParameterDriver:
+    @typing.overload
+    def __init__(self, groundStation: org.orekit.estimation.measurements.GroundStation, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, ambiguityCache: AmbiguityCache): ...
+    def getAmbiguityDriver(self) -> AmbiguityDriver:
         """
             Get the driver for phase ambiguity.
         
@@ -871,7 +962,13 @@ class PhaseBuilder(org.orekit.estimation.measurements.generation.AbstractMeasure
         Since:
             10.1
     """
+    @typing.overload
     def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def __init__(self, correlatedRandomVectorGenerator: org.hipparchus.random.CorrelatedRandomVectorGenerator, groundStation: org.orekit.estimation.measurements.GroundStation, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, ambiguityCache: AmbiguityCache): ...
+    @typing.overload
+    def build(self, absoluteDate: org.orekit.time.AbsoluteDate, spacecraftStateArray: typing.Union[typing.List[org.orekit.propagation.SpacecraftState], jpype.JArray]) -> org.orekit.estimation.measurements.ObservedMeasurement: ...
+    @typing.overload
     def build(self, absoluteDate: org.orekit.time.AbsoluteDate, map: typing.Union[java.util.Map[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator], typing.Mapping[org.orekit.estimation.measurements.ObservableSatellite, org.orekit.propagation.sampling.OrekitStepInterpolator]]) -> Phase: ...
 
 class WindUpFactory:
@@ -982,6 +1079,22 @@ class AbstractDualFrequencyCombination(MeasurementCombination):
         """
         ...
 
+_AbstractInterSatellitesMeasurement__T = typing.TypeVar('_AbstractInterSatellitesMeasurement__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+class AbstractInterSatellitesMeasurement(AbstractOnBoardMeasurement[_AbstractInterSatellitesMeasurement__T], typing.Generic[_AbstractInterSatellitesMeasurement__T]):
+    """
+    public abstract class AbstractInterSatellitesMeasurement<T extends :class:`~org.orekit.estimation.measurements.ObservedMeasurement`<T>> extends :class:`~org.orekit.estimation.measurements.gnss.AbstractOnBoardMeasurement`<T>
+    
+        Base class for measurement between two satellites that are both estimated.
+    
+        The measurement is considered to be a signal emitted from a remote satellite and received by a local satellite. Its
+        value is the number of cycles between emission and reception. The motion of both spacecraft during the signal flight
+        time are taken into account. The date of the measurement corresponds to the reception on ground of the emitted signal.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite): ...
+
 class AbstractLambdaMethod(IntegerLeastSquareSolver):
     """
     public abstract class AbstractLambdaMethod extends :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.gnss.IntegerLeastSquareSolver`
@@ -1019,6 +1132,28 @@ class AbstractLambdaMethod(IntegerLeastSquareSolver):
         """
         ...
 
+_AbstractOneWayGNSSMeasurement__T = typing.TypeVar('_AbstractOneWayGNSSMeasurement__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+class AbstractOneWayGNSSMeasurement(AbstractOnBoardMeasurement[_AbstractOneWayGNSSMeasurement__T], typing.Generic[_AbstractOneWayGNSSMeasurement__T]):
+    """
+    public abstract class AbstractOneWayGNSSMeasurement<T extends :class:`~org.orekit.estimation.measurements.ObservedMeasurement`<T>> extends :class:`~org.orekit.estimation.measurements.gnss.AbstractOnBoardMeasurement`<T>
+    
+        Base class for one-way GNSS measurement.
+    
+        This class can be used in precise orbit determination applications for modeling a range measurement between a GNSS
+        satellite (emitter) and a LEO satellite (receiver).
+    
+        The one-way GNSS range measurement assumes knowledge of the orbit and the clock offset of the emitting GNSS satellite.
+        For instance, it is possible to use a SP3 file or a GNSS navigation message to recover the satellite's orbit and clock.
+    
+        This class is very similar to :class:`~org.orekit.estimation.measurements.gnss.AbstractInterSatellitesMeasurement`
+        measurement class. However, using the one-way GNSS range measurement, the orbit and clock of the emitting GNSS satellite
+        are **NOT** estimated simultaneously with LEO satellite coordinates.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], quadraticClockModel: org.orekit.estimation.measurements.QuadraticClockModel, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+
 class AbstractSingleFrequencyCombination(MeasurementCombination):
     """
     public abstract class AbstractSingleFrequencyCombination extends :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.gnss.MeasurementCombination`
@@ -1075,7 +1210,7 @@ class AbstractSingleFrequencyCombination(MeasurementCombination):
         """
         ...
 
-class InterSatellitesWindUp(AbstractWindUp[InterSatellitesPhase]):
+class InterSatellitesWindUp(AbstractWindUp['InterSatellitesPhase']):
     """
     public class InterSatellitesWindUp extends :class:`~org.orekit.estimation.measurements.gnss.AbstractWindUp`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
     
@@ -1292,6 +1427,90 @@ class GeometryFreeCycleSlipDetector(AbstractCycleSlipDetector):
     """
     def __init__(self, double: float, double2: float, int: int): ...
 
+class InterSatellitesOneWayRangeRate(AbstractInterSatellitesMeasurement['InterSatellitesOneWayRangeRate']):
+    """
+    public class InterSatellitesOneWayRangeRate extends :class:`~org.orekit.estimation.measurements.gnss.AbstractInterSatellitesMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate`>
+    
+        One way range-rate measurement between two satellites.
+    
+        Since:
+            12.1
+    """
+    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
+    
+        Type of the measurement.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def __init__(self, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float): ...
+
+class InterSatellitesPhase(AbstractInterSatellitesMeasurement['InterSatellitesPhase']):
+    """
+    public class InterSatellitesPhase extends :class:`~org.orekit.estimation.measurements.gnss.AbstractInterSatellitesMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
+    
+        Phase measurement between two satellites.
+    
+        The measurement is considered to be a signal emitted from a remote satellite and received by a local satellite. Its
+        value is the number of cycles between emission and reception. The motion of both spacecraft during the signal flight
+        time are taken into account. The date of the measurement corresponds to the reception on ground of the emitted signal.
+    
+        Since:
+            10.3
+    """
+    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
+    
+        Type of the measurement.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    AMBIGUITY_NAME: typing.ClassVar[str] = ...
+    """
+    :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` AMBIGUITY_NAME
+    
+        Deprecated.
+        as of 12.1 not used anymore
+        Name for ambiguity driver.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float): ...
+    @typing.overload
+    def __init__(self, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, observableSatellite2: org.orekit.estimation.measurements.ObservableSatellite, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float, ambiguityCache: AmbiguityCache): ...
+    def getAmbiguityDriver(self) -> org.orekit.utils.ParameterDriver:
+        """
+            Get the driver for phase ambiguity.
+        
+            Returns:
+                the driver for phase ambiguity
+        
+        
+        """
+        ...
+    def getWavelength(self) -> float:
+        """
+            Get the wavelength.
+        
+            Returns:
+                wavelength (m)
+        
+        
+        """
+        ...
+
 class IonosphereFreeCombination(AbstractDualFrequencyCombination):
     """
     public class IonosphereFreeCombination extends :class:`~org.orekit.estimation.measurements.gnss.AbstractDualFrequencyCombination`
@@ -1401,6 +1620,145 @@ class NarrowLaneCombination(AbstractDualFrequencyCombination):
     """
     ...
 
+class OneWayGNSSPhase(AbstractOneWayGNSSMeasurement['OneWayGNSSPhase']):
+    """
+    public class OneWayGNSSPhase extends :class:`~org.orekit.estimation.measurements.gnss.AbstractOneWayGNSSMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`>
+    
+        One-way GNSS phase measurement.
+    
+        This class can be used in precise orbit determination applications for modeling a phase measurement between a GNSS
+        satellite (emitter) and a LEO satellite (receiver).
+    
+        The one-way GNSS phase measurement assumes knowledge of the orbit and the clock offset of the emitting GNSS satellite.
+        For instance, it is possible to use a SP3 file or a GNSS navigation message to recover the satellite's orbit and clock.
+    
+        This class is very similar to :class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase` measurement class.
+        However, using the one-way GNSS phase measurement, the orbit and clock of the emitting GNSS satellite are **NOT**
+        estimated simultaneously with LEO satellite coordinates.
+    
+        Since:
+            10.3
+    """
+    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
+    
+        Type of the measurement.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    AMBIGUITY_NAME: typing.ClassVar[str] = ...
+    """
+    :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` AMBIGUITY_NAME
+    
+        Deprecated.
+        as of 12.1 not used anymore
+        Name for ambiguity driver.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, absoluteDate: org.orekit.time.AbsoluteDate, double2: float, double3: float, double4: float, double5: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], string: str, quadraticClockModel: org.orekit.estimation.measurements.QuadraticClockModel, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite, ambiguityCache: AmbiguityCache): ...
+    def getAmbiguityDriver(self) -> AmbiguityDriver:
+        """
+            Get the driver for phase ambiguity.
+        
+            Returns:
+                the driver for phase ambiguity
+        
+        
+        """
+        ...
+    def getWavelength(self) -> float:
+        """
+            Get the wavelength.
+        
+            Returns:
+                wavelength (m)
+        
+        
+        """
+        ...
+
+class OneWayGNSSRange(AbstractOneWayGNSSMeasurement['OneWayGNSSRange']):
+    """
+    public class OneWayGNSSRange extends :class:`~org.orekit.estimation.measurements.gnss.AbstractOneWayGNSSMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRange`>
+    
+        One-way GNSS range measurement.
+    
+        This class can be used in precise orbit determination applications for modeling a range measurement between a GNSS
+        satellite (emitter) and a LEO satellite (receiver).
+    
+        The one-way GNSS range measurement assumes knowledge of the orbit and the clock offset of the emitting GNSS satellite.
+        For instance, it is possible to use a SP3 file or a GNSS navigation message to recover the satellite's orbit and clock.
+    
+        This class is very similar to :class:`~org.orekit.estimation.measurements.InterSatellitesRange` measurement class.
+        However, using the one-way GNSS range measurement, the orbit and clock of the emitting GNSS satellite are **NOT**
+        estimated simultaneously with LEO satellite coordinates.
+    
+        Since:
+            10.3
+    """
+    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
+    
+        Type of the measurement.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, absoluteDate: org.orekit.time.AbsoluteDate, double2: float, double3: float, double4: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], quadraticClockModel: org.orekit.estimation.measurements.QuadraticClockModel, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+
+class OneWayGNSSRangeRate(AbstractOneWayGNSSMeasurement['OneWayGNSSRangeRate']):
+    """
+    public class OneWayGNSSRangeRate extends :class:`~org.orekit.estimation.measurements.gnss.AbstractOneWayGNSSMeasurement`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate`>
+    
+        One-way GNSS range rate measurement.
+    
+        This class can be used in precise orbit determination applications for modeling a range rate measurement between a GNSS
+        satellite (emitter) and a LEO satellite (receiver).
+    
+        The one-way GNSS range rate measurement assumes knowledge of the orbit and the clock offset of the emitting GNSS
+        satellite. For instance, it is possible to use a SP3 file or a GNSS navigation message to recover the satellite's orbit
+        and clock.
+    
+        This class is very similar to :class:`~org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate`
+        measurement class. However, using the one-way GNSS range measurement, the orbit and clock of the emitting GNSS satellite
+        are **NOT** estimated simultaneously with LEO satellite coordinates.
+    
+        Since:
+            12.1
+    """
+    MEASUREMENT_TYPE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.estimation.measurements.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` MEASUREMENT_TYPE
+    
+        Type of the measurement.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, absoluteDate: org.orekit.time.AbsoluteDate, double2: float, double3: float, double4: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], quadraticClockModel: org.orekit.estimation.measurements.QuadraticClockModel, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, observableSatellite: org.orekit.estimation.measurements.ObservableSatellite): ...
+
 class PhaseMinusCodeCombination(AbstractSingleFrequencyCombination):
     """
     public class PhaseMinusCodeCombination extends :class:`~org.orekit.estimation.measurements.gnss.AbstractSingleFrequencyCombination`
@@ -1508,10 +1866,15 @@ class __module_protocol__(Protocol):
 
     AbstractCycleSlipDetector: typing.Type[AbstractCycleSlipDetector]
     AbstractDualFrequencyCombination: typing.Type[AbstractDualFrequencyCombination]
+    AbstractInterSatellitesMeasurement: typing.Type[AbstractInterSatellitesMeasurement]
     AbstractLambdaMethod: typing.Type[AbstractLambdaMethod]
+    AbstractOnBoardMeasurement: typing.Type[AbstractOnBoardMeasurement]
+    AbstractOneWayGNSSMeasurement: typing.Type[AbstractOneWayGNSSMeasurement]
     AbstractSingleFrequencyCombination: typing.Type[AbstractSingleFrequencyCombination]
     AbstractWindUp: typing.Type[AbstractWindUp]
     AmbiguityAcceptance: typing.Type[AmbiguityAcceptance]
+    AmbiguityCache: typing.Type[AmbiguityCache]
+    AmbiguityDriver: typing.Type[AmbiguityDriver]
     AmbiguitySolver: typing.Type[AmbiguitySolver]
     CombinationType: typing.Type[CombinationType]
     CombinedObservationData: typing.Type[CombinedObservationData]
@@ -1526,6 +1889,7 @@ class __module_protocol__(Protocol):
     IntegerLeastSquareComparator: typing.Type[IntegerLeastSquareComparator]
     IntegerLeastSquareSolution: typing.Type[IntegerLeastSquareSolution]
     IntegerLeastSquareSolver: typing.Type[IntegerLeastSquareSolver]
+    InterSatellitesOneWayRangeRate: typing.Type[InterSatellitesOneWayRangeRate]
     InterSatellitesPhase: typing.Type[InterSatellitesPhase]
     InterSatellitesWindUp: typing.Type[InterSatellitesWindUp]
     InterSatellitesWindUpFactory: typing.Type[InterSatellitesWindUpFactory]
@@ -1536,8 +1900,11 @@ class __module_protocol__(Protocol):
     MelbourneWubbenaCombination: typing.Type[MelbourneWubbenaCombination]
     ModifiedLambdaMethod: typing.Type[ModifiedLambdaMethod]
     NarrowLaneCombination: typing.Type[NarrowLaneCombination]
+    OnBoardCommonParametersWithDerivatives: typing.Type[OnBoardCommonParametersWithDerivatives]
+    OnBoardCommonParametersWithoutDerivatives: typing.Type[OnBoardCommonParametersWithoutDerivatives]
     OneWayGNSSPhase: typing.Type[OneWayGNSSPhase]
     OneWayGNSSRange: typing.Type[OneWayGNSSRange]
+    OneWayGNSSRangeRate: typing.Type[OneWayGNSSRangeRate]
     Phase: typing.Type[Phase]
     PhaseBuilder: typing.Type[PhaseBuilder]
     PhaseMinusCodeCombination: typing.Type[PhaseMinusCodeCombination]
diff --git a/org-stubs/orekit/estimation/measurements/modifiers/__init__.pyi b/org-stubs/orekit/estimation/measurements/modifiers/__init__.pyi
index ba49c542d37a62765c2f9c13bf2523b3e95d0dd5..1354beb52d1feea031bb255626c4fd00b1da87d5 100644
--- a/org-stubs/orekit/estimation/measurements/modifiers/__init__.pyi
+++ b/org-stubs/orekit/estimation/measurements/modifiers/__init__.pyi
@@ -107,8 +107,12 @@ class AberrationModifier(org.orekit.estimation.measurements.EstimationModifier[o
 
 class AbstractAmbiguityModifier:
     """
-    public class AbstractAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class AbstractAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
     
+        Deprecated.
+        as of 12.1 ambiguity is managed directly by raw measurements :class:`~org.orekit.estimation.measurements.gnss.Phase`,
+        :class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase` and
+        :class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`
         Base class for phase ambiguity modifier.
     
         Since:
@@ -170,11 +174,14 @@ class AngularIonosphericDelayModifier(org.orekit.estimation.measurements.Estimat
     """
     public class AngularIonosphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.AngularAzEl`>
     
-        Class modifying theoretical angular measurement with ionospheric delay. The effect of ionospheric correction on the
-        angular measurement is computed through the computation of the ionospheric delay. The spacecraft state is shifted by the
-        computed delay time and elevation and azimuth are computed again with the new spacecraft state. The ionospheric delay
-        depends on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the ray is not affected
-        by ionosphere charged particles.
+        Class modifying theoretical angular measurement with ionospheric delay.
+    
+        The effect of ionospheric correction on the angular measurement is computed through the computation of the ionospheric
+        delay. The spacecraft state is shifted by the computed delay time and elevation and azimuth are computed again with the
+        new spacecraft state.
+    
+        The ionospheric delay depends on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the
+        ray is not affected by ionosphere charged particles.
     
         Since 10.0, state derivatives and ionospheric parameters derivates are computed using automatic differentiation.
     
@@ -204,18 +211,27 @@ class AngularRadioRefractionModifier(org.orekit.estimation.measurements.Estimati
 
 class AngularTroposphericDelayModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.AngularAzEl]):
     """
-    public class AngularTroposphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.AngularAzEl`>
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class AngularTroposphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.AngularAzEl`>
+    
+        Deprecated.
+        as of 12.1, :class:`~org.orekit.estimation.measurements.modifiers.AngularRadioRefractionModifier` shall be used to
+        handle tropospheric effect on angular measurements
+        Class modifying theoretical angular measurement with tropospheric delay.
     
-        Class modifying theoretical angular measurement with tropospheric delay. The effect of tropospheric correction on the
-        angular is computed through the computation of the tropospheric delay.The spacecraft state is shifted by the computed
-        delay time and elevation and azimuth are computed again with the new spacecraft state. In general, for GNSS, VLBI, ...
-        there is hardly any frequency dependence in the delay. For SLR techniques however, the frequency dependence is
-        sensitive.
+        The effect of tropospheric correction on the angular is computed through the computation of the tropospheric delay.The
+        spacecraft state is shifted by the computed delay time and elevation and azimuth are computed again with the new
+        spacecraft state.
+    
+        In general, for GNSS, VLBI, ... there is hardly any frequency dependence in the delay. For SLR techniques however, the
+        frequency dependence is sensitive.
     
         Since:
             8.0
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.AngularAzEl]) -> None: ...
 
@@ -366,58 +382,6 @@ class ModifierGradientConverter(org.orekit.propagation.integration.AbstractGradi
     """
     def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, int: int, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
 
-class OnBoardAntennaInterSatellitesPhaseModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]):
-    """
-    public class OnBoardAntennaInterSatellitesPhaseModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
-    
-        On-board antenna offset effect on inter-satellites phase measurements.
-    
-        Since:
-            10.3
-    """
-    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]) -> None: ...
-
-class OnBoardAntennaInterSatellitesRangeModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.InterSatellitesRange]):
-    """
-    public class OnBoardAntennaInterSatellitesRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.InterSatellitesRange`>
-    
-        On-board antenna offset effect on inter-satellites range measurements.
-    
-        Since:
-            9.0
-    """
-    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.InterSatellitesRange]) -> None: ...
-
-class OnBoardAntennaOneWayGNSSPhaseModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase]):
-    """
-    public class OnBoardAntennaOneWayGNSSPhaseModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`>
-    
-        On-board antenna offset effect on one-way GNSS phase measurements.
-    
-        Since:
-            10.3
-    """
-    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase]) -> None: ...
-
-class OnBoardAntennaOneWayGNSSRangeModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSRange]):
-    """
-    public class OnBoardAntennaOneWayGNSSRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRange`>
-    
-        On-board antenna offset effect on one-way GNSS range measurements.
-    
-        Since:
-            10.3
-    """
-    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.OneWayGNSSRange]) -> None: ...
-
 class OnBoardAntennaTurnAroundRangeModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.TurnAroundRange]):
     """
     public class OnBoardAntennaTurnAroundRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.TurnAroundRange`>
@@ -445,6 +409,41 @@ class OutlierFilter(org.orekit.estimation.measurements.EstimationModifier[_Outli
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_OutlierFilter__T]) -> None: ...
 
+class ParametricModelEffect:
+    """
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.FunctionalInterface?is` public interface ParametricModelEffect
+    
+        Functional interface for parametric models.
+    
+        Since:
+            11.2
+    """
+    def evaluate(self, groundStation: org.orekit.estimation.measurements.GroundStation, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
+        """
+            Evaluate the parametric model effect.
+        
+            Parameters:
+                station (:class:`~org.orekit.estimation.measurements.GroundStation`): station
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state
+        
+            Returns:
+                the measurement error due to parametric model
+        
+        
+        """
+        ...
+
+class ParametricModelEffectGradient:
+    """
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.FunctionalInterface?is` public interface ParametricModelEffectGradient
+    
+        Functional interface for parametric models.
+    
+        Since:
+            11.2
+    """
+    def evaluate(self, groundStation: org.orekit.estimation.measurements.GroundStation, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[org.hipparchus.analysis.differentiation.Gradient], gradientArray: typing.Union[typing.List[org.hipparchus.analysis.differentiation.Gradient], jpype.JArray]) -> org.hipparchus.analysis.differentiation.Gradient: ...
+
 _PhaseCentersGroundReceiverBaseModifier__T = typing.TypeVar('_PhaseCentersGroundReceiverBaseModifier__T', bound=org.orekit.estimation.measurements.GroundReceiverMeasurement)  # <T>
 class PhaseCentersGroundReceiverBaseModifier(typing.Generic[_PhaseCentersGroundReceiverBaseModifier__T]):
     """
@@ -459,6 +458,20 @@ class PhaseCentersGroundReceiverBaseModifier(typing.Generic[_PhaseCentersGroundR
     def oneWayDistanceModification(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_PhaseCentersGroundReceiverBaseModifier__T]) -> float: ...
     def twoWayDistanceModification(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_PhaseCentersGroundReceiverBaseModifier__T]) -> float: ...
 
+_PhaseCentersInterSatellitesBaseModifier__T = typing.TypeVar('_PhaseCentersInterSatellitesBaseModifier__T', bound=org.orekit.estimation.measurements.AbstractMeasurement)  # <T>
+class PhaseCentersInterSatellitesBaseModifier(typing.Generic[_PhaseCentersInterSatellitesBaseModifier__T]):
+    """
+    public class PhaseCentersInterSatellitesBaseModifier<T extends :class:`~org.orekit.estimation.measurements.AbstractMeasurement`<T>> extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        On-board antenna offset effect on inter-satellites phase measurements.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
+    def oneWayDistanceModification(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_PhaseCentersInterSatellitesBaseModifier__T]) -> float: ...
+    def twoWayDistanceModification(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.InterSatellitesRange]) -> float: ...
+
 class PhaseCentersOffsetComputer:
     """
     public class PhaseCentersOffsetComputer extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -484,31 +497,18 @@ class PhaseCentersOffsetComputer:
         """
         ...
 
-class PhaseCentersPhaseModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.Phase]):
-    """
-    public class PhaseCentersPhaseModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.Phase`>
-    
-        Ground and on-board antennas offsets effect on phase measurements.
-    
-        Since:
-            12.0
-    """
-    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.Phase]) -> None: ...
-
-class PhaseCentersRangeModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.Range]):
+_PhaseCentersOneWayGNSSBaseModifier__T = typing.TypeVar('_PhaseCentersOneWayGNSSBaseModifier__T', bound=org.orekit.estimation.measurements.AbstractMeasurement)  # <T>
+class PhaseCentersOneWayGNSSBaseModifier(typing.Generic[_PhaseCentersOneWayGNSSBaseModifier__T]):
     """
-    public class PhaseCentersRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.Range`>
+    public class PhaseCentersOneWayGNSSBaseModifier<T extends :class:`~org.orekit.estimation.measurements.AbstractMeasurement`<T>> extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
     
-        Ground and on-board antennas offsets effect on range measurements.
+        On-board antenna offset effect on inter-satellites phase measurements.
     
         Since:
-            12.0
+            12.1
     """
-    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.Range]) -> None: ...
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    def oneWayDistanceModification(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_PhaseCentersOneWayGNSSBaseModifier__T]) -> float: ...
 
 class PhaseIonosphericDelayModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.Phase]):
     """
@@ -535,7 +535,10 @@ class PhaseTroposphericDelayModifier(org.orekit.estimation.measurements.Estimati
         Since:
             10.2
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.gnss.Phase]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.Phase]) -> None: ...
@@ -549,9 +552,11 @@ class RangeModifierUtil:
         Since:
             11.2
     """
-    _modify__T = typing.TypeVar('_modify__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    _modify_0__T = typing.TypeVar('_modify_0__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    _modify_1__T = typing.TypeVar('_modify_1__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    @typing.overload
     @staticmethod
-    def modify(estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[_modify__T], parameterDriversProvider: typing.Union[org.orekit.utils.ParameterDriversProvider, typing.Callable], abstractGradientConverter: org.orekit.propagation.integration.AbstractGradientConverter, groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union['ParametricModelEffect', typing.Callable], parametricModelEffectGradient: typing.Union['ParametricModelEffectGradient', typing.Callable]) -> None:
+    def modify(estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[_modify_0__T], parameterDriversProvider: typing.Union[org.orekit.utils.ParameterDriversProvider, typing.Callable], abstractGradientConverter: org.orekit.propagation.integration.AbstractGradientConverter, groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable], parametricModelEffectGradient: typing.Union[ParametricModelEffectGradient, typing.Callable]) -> None:
         """
             Apply a modifier to an estimated measurement.
         
@@ -560,29 +565,39 @@ class RangeModifierUtil:
                 station (:class:`~org.orekit.utils.ParameterDriversProvider`): ground station
                 converter (:class:`~org.orekit.propagation.integration.AbstractGradientConverter`): gradient converter
                 parametricModel (:class:`~org.orekit.estimation.measurements.GroundStation`): parametric modifier model
-                modelEffect (org.orekit.estimation.measurements.modifiers.ParametricModelEffect): model effect
-                modelEffectGradient (org.orekit.estimation.measurements.modifiers.ParametricModelEffectGradient): model effect gradient
+                modelEffect (:class:`~org.orekit.estimation.measurements.modifiers.ParametricModelEffect`): model effect
+                modelEffectGradient (:class:`~org.orekit.estimation.measurements.modifiers.ParametricModelEffectGradient`): model effect gradient
+                modifier (:class:`~org.orekit.estimation.measurements.EstimationModifier`<T> modifier): applied modifier
         
         
         """
         ...
-    _modifyWithoutDerivatives__T = typing.TypeVar('_modifyWithoutDerivatives__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    @typing.overload
     @staticmethod
-    def modifyWithoutDerivatives(estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_modifyWithoutDerivatives__T], groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union['ParametricModelEffect', typing.Callable]) -> None:
+    def modify(estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[_modify_1__T], parameterDriversProvider: typing.Union[org.orekit.utils.ParameterDriversProvider, typing.Callable], abstractGradientConverter: org.orekit.propagation.integration.AbstractGradientConverter, groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable], parametricModelEffectGradient: typing.Union[ParametricModelEffectGradient, typing.Callable], estimationModifier: org.orekit.estimation.measurements.EstimationModifier[_modify_1__T]) -> None: ...
+    _modifyWithoutDerivatives_0__T = typing.TypeVar('_modifyWithoutDerivatives_0__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    _modifyWithoutDerivatives_1__T = typing.TypeVar('_modifyWithoutDerivatives_1__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    @typing.overload
+    @staticmethod
+    def modifyWithoutDerivatives(estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_modifyWithoutDerivatives_0__T], groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable]) -> None:
         """
             Apply a modifier to an estimated measurement.
         
             Parameters:
                 estimated (:class:`~org.orekit.estimation.measurements.EstimatedMeasurementBase`<T> estimated): estimated measurement to modify
                 station (:class:`~org.orekit.estimation.measurements.GroundStation`): ground station
-                modelEffect (org.orekit.estimation.measurements.modifiers.ParametricModelEffect): model effect
+                modelEffect (:class:`~org.orekit.estimation.measurements.modifiers.ParametricModelEffect`): model effect
+                modifier (:class:`~org.orekit.estimation.measurements.EstimationModifier`<T> modifier): applied modifier
         
             Since:
-                12.0
+                12.1
         
         
         """
         ...
+    @typing.overload
+    @staticmethod
+    def modifyWithoutDerivatives(estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_modifyWithoutDerivatives_1__T], groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable], estimationModifier: org.orekit.estimation.measurements.EstimationModifier[_modifyWithoutDerivatives_1__T]) -> None: ...
 
 class RangeRateModifierUtil:
     """
@@ -593,9 +608,11 @@ class RangeRateModifierUtil:
         Since:
             11.2
     """
-    _modify__T = typing.TypeVar('_modify__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    _modify_0__T = typing.TypeVar('_modify_0__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    _modify_1__T = typing.TypeVar('_modify_1__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    @typing.overload
     @staticmethod
-    def modify(estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[_modify__T], parameterDriversProvider: typing.Union[org.orekit.utils.ParameterDriversProvider, typing.Callable], abstractGradientConverter: org.orekit.propagation.integration.AbstractGradientConverter, groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union['ParametricModelEffect', typing.Callable], parametricModelEffectGradient: typing.Union['ParametricModelEffectGradient', typing.Callable]) -> None:
+    def modify(estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[_modify_0__T], parameterDriversProvider: typing.Union[org.orekit.utils.ParameterDriversProvider, typing.Callable], abstractGradientConverter: org.orekit.propagation.integration.AbstractGradientConverter, groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable], parametricModelEffectGradient: typing.Union[ParametricModelEffectGradient, typing.Callable]) -> None:
         """
             Apply a modifier to an estimated measurement.
         
@@ -604,26 +621,42 @@ class RangeRateModifierUtil:
                 station (:class:`~org.orekit.utils.ParameterDriversProvider`): ground station
                 converter (:class:`~org.orekit.propagation.integration.AbstractGradientConverter`): gradient converter
                 parametricModel (:class:`~org.orekit.estimation.measurements.GroundStation`): parametric modifier model
-                modelEffect (org.orekit.estimation.measurements.modifiers.ParametricModelEffect): model effect
-                modelEffectGradient (org.orekit.estimation.measurements.modifiers.ParametricModelEffectGradient): model effect gradient
+                modelEffect (:class:`~org.orekit.estimation.measurements.modifiers.ParametricModelEffect`): model effect
+                modelEffectGradient (:class:`~org.orekit.estimation.measurements.modifiers.ParametricModelEffectGradient`): model effect gradient
+                modifier (:class:`~org.orekit.estimation.measurements.EstimationModifier`<T> modifier): applied modifier
+        
+            Since:
+                12.1
         
         
         """
         ...
-    _modifyWithoutDerivatives__T = typing.TypeVar('_modifyWithoutDerivatives__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    @typing.overload
+    @staticmethod
+    def modify(estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[_modify_1__T], parameterDriversProvider: typing.Union[org.orekit.utils.ParameterDriversProvider, typing.Callable], abstractGradientConverter: org.orekit.propagation.integration.AbstractGradientConverter, groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable], parametricModelEffectGradient: typing.Union[ParametricModelEffectGradient, typing.Callable], estimationModifier: org.orekit.estimation.measurements.EstimationModifier[_modify_1__T]) -> None: ...
+    _modifyWithoutDerivatives_0__T = typing.TypeVar('_modifyWithoutDerivatives_0__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    _modifyWithoutDerivatives_1__T = typing.TypeVar('_modifyWithoutDerivatives_1__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+    @typing.overload
     @staticmethod
-    def modifyWithoutDerivatives(estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_modifyWithoutDerivatives__T], groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union['ParametricModelEffect', typing.Callable]) -> None:
+    def modifyWithoutDerivatives(estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_modifyWithoutDerivatives_0__T], groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable]) -> None:
         """
             Apply a modifier to an estimated measurement.
         
             Parameters:
                 estimated (:class:`~org.orekit.estimation.measurements.EstimatedMeasurementBase`<T> estimated): estimated measurement to modify
                 station (:class:`~org.orekit.estimation.measurements.GroundStation`): ground station
-                modelEffect (org.orekit.estimation.measurements.modifiers.ParametricModelEffect): model effect
+                modelEffect (:class:`~org.orekit.estimation.measurements.modifiers.ParametricModelEffect`): model effect
+                modifier (:class:`~org.orekit.estimation.measurements.EstimationModifier`<T> modifier): applied modifier
+        
+            Since:
+                12.1
         
         
         """
         ...
+    @typing.overload
+    @staticmethod
+    def modifyWithoutDerivatives(estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[_modifyWithoutDerivatives_1__T], groundStation: org.orekit.estimation.measurements.GroundStation, parametricModelEffect: typing.Union[ParametricModelEffect, typing.Callable], estimationModifier: org.orekit.estimation.measurements.EstimationModifier[_modifyWithoutDerivatives_1__T]) -> None: ...
 
 class TDOAIonosphericDelayModifier(org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.TDOA]):
     """
@@ -658,7 +691,10 @@ class TDOATroposphericDelayModifier(org.orekit.estimation.measurements.Estimatio
         Since:
             11.2
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.TDOA]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.TDOA]) -> None: ...
@@ -667,10 +703,13 @@ class TurnAroundRangeIonosphericDelayModifier(org.orekit.estimation.measurements
     """
     public class TurnAroundRangeIonosphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.TurnAroundRange`>
     
-        Class modifying theoretical TurnAroundRange measurement with ionospheric delay. The effect of ionospheric correction on
-        the TurnAroundRange is directly computed through the computation of the ionospheric delay. The ionospheric delay depends
-        on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the ray is not affected by
-        ionosphere charged particles.
+        Class modifying theoretical TurnAroundRange measurement with ionospheric delay.
+    
+        The effect of ionospheric correction on the TurnAroundRange is directly computed through the computation of the
+        ionospheric delay.
+    
+        The ionospheric delay depends on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the
+        ray is not affected by ionosphere charged particles.
     
         Since 10.0, state derivatives and ionospheric parameters derivates are computed using automatic differentiation.
     
@@ -686,22 +725,44 @@ class TurnAroundRangeTroposphericDelayModifier(org.orekit.estimation.measurement
     """
     public class TurnAroundRangeTroposphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.TurnAroundRange`>
     
-        Class modifying theoretical turn-around TurnAroundRange measurement with tropospheric delay. The effect of tropospheric
-        correction on the TurnAroundRange is directly computed through the computation of the tropospheric delay. In general,
-        for GNSS, VLBI, ... there is hardly any frequency dependence in the delay. For SLR techniques however, the frequency
-        dependence is sensitive.
+        Class modifying theoretical turn-around TurnAroundRange measurement with tropospheric delay.
+    
+        The effect of tropospheric correction on the TurnAroundRange is directly computed through the computation of the
+        tropospheric delay.
+    
+        In general, for GNSS, VLBI, ... there is hardly any frequency dependence in the delay. For SLR techniques however, the
+        frequency dependence is sensitive.
     
         Since:
             9.0
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.TurnAroundRange]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.TurnAroundRange]) -> None: ...
 
-class ParametricModelEffect: ...
-
-class ParametricModelEffectGradient: ...
+_AbstractRelativisticClockOnBoardRangeRateModifier__T = typing.TypeVar('_AbstractRelativisticClockOnBoardRangeRateModifier__T', bound=org.orekit.estimation.measurements.ObservedMeasurement)  # <T>
+class AbstractRelativisticClockOnBoardRangeRateModifier(AbstractRelativisticClockModifier, org.orekit.estimation.measurements.EstimationModifier[_AbstractRelativisticClockOnBoardRangeRateModifier__T], typing.Generic[_AbstractRelativisticClockOnBoardRangeRateModifier__T]):
+    """
+    public abstract class AbstractRelativisticClockOnBoardRangeRateModifier<T extends :class:`~org.orekit.estimation.measurements.ObservedMeasurement`<T>> extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractRelativisticClockModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<T>
+    
+        Class modifying theoretical range-rate measurement with relativistic frequency deviation.
+    
+        Relativistic clock correction is caused by the motion of the satellite as well as the change in the gravitational
+        potential
+    
+        Since:
+            12.1
+    
+        Also see:
+            "Teunissen, Peter, and Oliver Montenbruck, eds. Springer handbook of global navigation satellite systems. Chapter 19.2.
+            Springer, 2017."
+    """
+    def __init__(self, double: float): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
 class BistaticRangeIonosphericDelayModifier(BaseRangeIonosphericDelayModifier, org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.BistaticRange]):
     """
@@ -754,7 +815,10 @@ class BistaticRangeRateTroposphericDelayModifier(BaseRangeRateTroposphericDelayM
         Since:
             11.2
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.BistaticRangeRate]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.BistaticRangeRate]) -> None: ...
 
@@ -762,14 +826,21 @@ class BistaticRangeTroposphericDelayModifier(BaseRangeTroposphericDelayModifier,
     """
     public class BistaticRangeTroposphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.BaseRangeTroposphericDelayModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.BistaticRange`>
     
-        Class modifying theoretical bistatic range measurement with tropospheric delay. The effect of tropospheric correction on
-        the range is directly computed through the computation of the tropospheric delay. In general, for GNSS, VLBI, ... there
-        is hardly any frequency dependence in the delay. For SLR techniques however, the frequency dependence is sensitive.
+        Class modifying theoretical bistatic range measurement with tropospheric delay.
+    
+        The effect of tropospheric correction on the range is directly computed through the computation of the tropospheric
+        delay.
+    
+        In general, for GNSS, VLBI, ... there is hardly any frequency dependence in the delay. For SLR techniques however, the
+        frequency dependence is sensitive.
     
         Since:
             11.2
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.BistaticRange]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.BistaticRange]) -> None: ...
 
@@ -812,8 +883,11 @@ class DynamicOutlierFilter(OutlierFilter[_DynamicOutlierFilter__T], typing.Gener
 
 class InterSatellitesPhaseAmbiguityModifier(AbstractAmbiguityModifier, org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]):
     """
-    public class InterSatellitesPhaseAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractAmbiguityModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class InterSatellitesPhaseAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractAmbiguityModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
     
+        Deprecated.
+        as of 12.1 ambiguity is managed directly by raw measurements
+        :class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`
         Class modifying theoretical inter-satellites phase measurement with ambiguity.
     
         Since:
@@ -824,10 +898,77 @@ class InterSatellitesPhaseAmbiguityModifier(AbstractAmbiguityModifier, org.oreki
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]) -> None: ...
 
+class OnBoardAntennaInterSatellitesPhaseModifier(PhaseCentersInterSatellitesBaseModifier[org.orekit.estimation.measurements.gnss.InterSatellitesPhase], org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]):
+    """
+    public class OnBoardAntennaInterSatellitesPhaseModifier extends :class:`~org.orekit.estimation.measurements.modifiers.PhaseCentersInterSatellitesBaseModifier`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`> implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesPhase`>
+    
+        On-board antenna offset effect on inter-satellites phase measurements.
+    
+        Since:
+            10.3
+    """
+    @typing.overload
+    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    @typing.overload
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.InterSatellitesPhase]) -> None: ...
+
+class OnBoardAntennaInterSatellitesRangeModifier(PhaseCentersInterSatellitesBaseModifier[org.orekit.estimation.measurements.InterSatellitesRange], org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.InterSatellitesRange]):
+    """
+    public class OnBoardAntennaInterSatellitesRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.PhaseCentersInterSatellitesBaseModifier`<:class:`~org.orekit.estimation.measurements.InterSatellitesRange`> implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.InterSatellitesRange`>
+    
+        On-board antenna offset effect on inter-satellites range measurements.
+    
+        Since:
+            9.0
+    """
+    @typing.overload
+    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    @typing.overload
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.InterSatellitesRange]) -> None: ...
+
+class OnBoardAntennaOneWayGNSSPhaseModifier(PhaseCentersOneWayGNSSBaseModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase], org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase]):
+    """
+    public class OnBoardAntennaOneWayGNSSPhaseModifier extends :class:`~org.orekit.estimation.measurements.modifiers.PhaseCentersOneWayGNSSBaseModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`> implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`>
+    
+        On-board antenna offset effect on one-way GNSS phase measurements.
+    
+        Since:
+            10.3
+    """
+    @typing.overload
+    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    @typing.overload
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase]) -> None: ...
+
+class OnBoardAntennaOneWayGNSSRangeModifier(PhaseCentersOneWayGNSSBaseModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSRange], org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSRange]):
+    """
+    public class OnBoardAntennaOneWayGNSSRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.PhaseCentersOneWayGNSSBaseModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRange`> implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRange`>
+    
+        On-board antenna offset effect on one-way GNSS range measurements.
+    
+        Since:
+            10.3
+    """
+    @typing.overload
+    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    @typing.overload
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.OneWayGNSSRange]) -> None: ...
+
 class OneWayGNSSPhaseAmbiguityModifier(AbstractAmbiguityModifier, org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSPhase]):
     """
-    public class OneWayGNSSPhaseAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractAmbiguityModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`>
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class OneWayGNSSPhaseAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractAmbiguityModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`>
     
+        Deprecated.
+        as of 12.1 ambiguity is managed directly by raw measurements
+        :class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSPhase`
         Class modifying theoretical one-way GNSS phase measurement with ambiguity.
     
         Since:
@@ -840,8 +981,10 @@ class OneWayGNSSPhaseAmbiguityModifier(AbstractAmbiguityModifier, org.orekit.est
 
 class PhaseAmbiguityModifier(AbstractAmbiguityModifier, org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.Phase]):
     """
-    public class PhaseAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractAmbiguityModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.Phase`>
+    :class:`~org.orekit.estimation.measurements.modifiers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class PhaseAmbiguityModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractAmbiguityModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.Phase`>
     
+        Deprecated.
+        as of 12.1 ambiguity is managed directly by raw measurements :class:`~org.orekit.estimation.measurements.gnss.Phase`
         Class modifying theoretical phase measurement with ambiguity.
     
         Since:
@@ -852,14 +995,42 @@ class PhaseAmbiguityModifier(AbstractAmbiguityModifier, org.orekit.estimation.me
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.gnss.Phase]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.Phase]) -> None: ...
 
+class PhaseCentersPhaseModifier(PhaseCentersGroundReceiverBaseModifier[org.orekit.estimation.measurements.gnss.Phase], org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.gnss.Phase]):
+    """
+    public class PhaseCentersPhaseModifier extends :class:`~org.orekit.estimation.measurements.modifiers.PhaseCentersGroundReceiverBaseModifier`<:class:`~org.orekit.estimation.measurements.gnss.Phase`> implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.gnss.Phase`>
+    
+        Ground and on-board antennas offsets effect on phase measurements.
+    
+        Since:
+            12.0
+    """
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.Phase]) -> None: ...
+
+class PhaseCentersRangeModifier(PhaseCentersGroundReceiverBaseModifier[org.orekit.estimation.measurements.Range], org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.Range]):
+    """
+    public class PhaseCentersRangeModifier extends :class:`~org.orekit.estimation.measurements.modifiers.PhaseCentersGroundReceiverBaseModifier`<:class:`~org.orekit.estimation.measurements.Range`> implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.Range`>
+    
+        Ground and on-board antennas offsets effect on range measurements.
+    
+        Since:
+            12.0
+    """
+    def __init__(self, frequencyPattern: org.orekit.gnss.antenna.FrequencyPattern, frequencyPattern2: org.orekit.gnss.antenna.FrequencyPattern): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.Range]) -> None: ...
+
 class RangeIonosphericDelayModifier(BaseRangeIonosphericDelayModifier, org.orekit.estimation.measurements.EstimationModifier[org.orekit.estimation.measurements.Range]):
     """
     public class RangeIonosphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.BaseRangeIonosphericDelayModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.Range`>
     
-        Class modifying theoretical range measurement with ionospheric delay. The effect of ionospheric correction on the range
-        is directly computed through the computation of the ionospheric delay. The ionospheric delay depends on the frequency of
-        the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the ray is not affected by ionosphere charged
-        particles.
+        Class modifying theoretical range measurement with ionospheric delay.
+    
+        The effect of ionospheric correction on the range is directly computed through the computation of the ionospheric delay.
+    
+        The ionospheric delay depends on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the
+        ray is not affected by ionosphere charged particles.
     
         Since 10.0, state derivatives and ionospheric parameters derivates are computed using automatic differentiation.
     
@@ -874,10 +1045,13 @@ class RangeRateIonosphericDelayModifier(BaseRangeRateIonosphericDelayModifier, o
     """
     public class RangeRateIonosphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.BaseRangeRateIonosphericDelayModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.RangeRate`>
     
-        Class modifying theoretical range-rate measurement with ionospheric delay. The effect of ionospheric correction on the
-        range-rate is directly computed through the computation of the ionospheric delay difference with respect to time. The
-        ionospheric delay depends on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the ray
-        is not affected by ionosphere charged particles.
+        Class modifying theoretical range-rate measurement with ionospheric delay.
+    
+        The effect of ionospheric correction on the range-rate is directly computed through the computation of the ionospheric
+        delay difference with respect to time.
+    
+        The ionospheric delay depends on the frequency of the signal (GNSS, VLBI, ...). For optical measurements (e.g. SLR), the
+        ray is not affected by ionosphere charged particles.
     
         Since 10.0, state derivatives and ionospheric parameters derivates are computed using automatic differentiation.
     
@@ -892,15 +1066,21 @@ class RangeRateTroposphericDelayModifier(BaseRangeRateTroposphericDelayModifier,
     """
     public class RangeRateTroposphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.BaseRangeRateTroposphericDelayModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.RangeRate`>
     
-        Class modifying theoretical range-rate measurements with tropospheric delay. The effect of tropospheric correction on
-        the range-rate is directly computed through the computation of the tropospheric delay difference with respect to time.
+        Class modifying theoretical range-rate measurements with tropospheric delay.
+    
+        The effect of tropospheric correction on the range-rate is directly computed through the computation of the tropospheric
+        delay difference with respect to time.
+    
         In general, for GNSS, VLBI, ... there is hardly any frequency dependence in the delay. For SLR techniques however, the
         frequency dependence is sensitive.
     
         Since:
             8.0
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel, boolean: bool): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel, boolean: bool): ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.RangeRate]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.RangeRate]) -> None: ...
     _rangeRateErrorTroposphericModel_1__T = typing.TypeVar('_rangeRateErrorTroposphericModel_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -949,14 +1129,21 @@ class RangeTroposphericDelayModifier(BaseRangeTroposphericDelayModifier, org.ore
     """
     public class RangeTroposphericDelayModifier extends :class:`~org.orekit.estimation.measurements.modifiers.BaseRangeTroposphericDelayModifier` implements :class:`~org.orekit.estimation.measurements.EstimationModifier`<:class:`~org.orekit.estimation.measurements.Range`>
     
-        Class modifying theoretical range measurement with tropospheric delay. The effect of tropospheric correction on the
-        range is directly computed through the computation of the tropospheric delay. In general, for GNSS, VLBI, ... there is
-        hardly any frequency dependence in the delay. For SLR techniques however, the frequency dependence is sensitive.
+        Class modifying theoretical range measurement with tropospheric delay.
+    
+        The effect of tropospheric correction on the range is directly computed through the computation of the tropospheric
+        delay.
+    
+        In general, for GNSS, VLBI, ... there is hardly any frequency dependence in the delay. For SLR techniques however, the
+        frequency dependence is sensitive.
     
         Since:
             8.0
     """
+    @typing.overload
     def __init__(self, discreteTroposphericModel: org.orekit.models.earth.troposphere.DiscreteTroposphericModel): ...
+    @typing.overload
+    def __init__(self, troposphericModel: org.orekit.models.earth.troposphere.TroposphericModel): ...
     def modify(self, estimatedMeasurement: org.orekit.estimation.measurements.EstimatedMeasurement[org.orekit.estimation.measurements.Range]) -> None: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.Range]) -> None: ...
 
@@ -1316,6 +1503,44 @@ class ShapiroRangeModifier(AbstractShapiroBaseModifier, org.orekit.estimation.me
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.Range]) -> None: ...
 
+class RelativisticClockInterSatellitesOneWayRangeRateModifier(AbstractRelativisticClockOnBoardRangeRateModifier[org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate]):
+    """
+    public class RelativisticClockInterSatellitesOneWayRangeRateModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractRelativisticClockOnBoardRangeRateModifier`<:class:`~org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate`>
+    
+        Class modifying theoretical range-rate measurement with relativistic frequency deviation.
+    
+        Relativistic clock correction is caused by the motion of the satellite as well as the change in the gravitational
+        potential
+    
+        Since:
+            12.1
+    
+        Also see:
+            "Teunissen, Peter, and Oliver Montenbruck, eds. Springer handbook of global navigation satellite systems. Chapter 19.2.
+            Springer, 2017."
+    """
+    def __init__(self, double: float): ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.InterSatellitesOneWayRangeRate]) -> None: ...
+
+class RelativisticClockOneWayGNSSRangeRateModifier(AbstractRelativisticClockOnBoardRangeRateModifier[org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate]):
+    """
+    public class RelativisticClockOneWayGNSSRangeRateModifier extends :class:`~org.orekit.estimation.measurements.modifiers.AbstractRelativisticClockOnBoardRangeRateModifier`<:class:`~org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate`>
+    
+        Class modifying theoretical range-rate measurement with relativistic frequency deviation.
+    
+        Relativistic clock correction is caused by the motion of the satellite as well as the change in the gravitational
+        potential
+    
+        Since:
+            12.1
+    
+        Also see:
+            "Teunissen, Peter, and Oliver Montenbruck, eds. Springer handbook of global navigation satellite systems. Chapter 19.2.
+            Springer, 2017."
+    """
+    def __init__(self, double: float): ...
+    def modifyWithoutDerivatives(self, estimatedMeasurementBase: org.orekit.estimation.measurements.EstimatedMeasurementBase[org.orekit.estimation.measurements.gnss.OneWayGNSSRangeRate]) -> None: ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.estimation.measurements.modifiers")``.
@@ -1323,6 +1548,7 @@ class __module_protocol__(Protocol):
     AberrationModifier: typing.Type[AberrationModifier]
     AbstractAmbiguityModifier: typing.Type[AbstractAmbiguityModifier]
     AbstractRelativisticClockModifier: typing.Type[AbstractRelativisticClockModifier]
+    AbstractRelativisticClockOnBoardRangeRateModifier: typing.Type[AbstractRelativisticClockOnBoardRangeRateModifier]
     AbstractRelativisticJ2ClockModifier: typing.Type[AbstractRelativisticJ2ClockModifier]
     AbstractShapiroBaseModifier: typing.Type[AbstractShapiroBaseModifier]
     AngularIonosphericDelayModifier: typing.Type[AngularIonosphericDelayModifier]
@@ -1351,7 +1577,9 @@ class __module_protocol__(Protocol):
     ParametricModelEffectGradient: typing.Type[ParametricModelEffectGradient]
     PhaseAmbiguityModifier: typing.Type[PhaseAmbiguityModifier]
     PhaseCentersGroundReceiverBaseModifier: typing.Type[PhaseCentersGroundReceiverBaseModifier]
+    PhaseCentersInterSatellitesBaseModifier: typing.Type[PhaseCentersInterSatellitesBaseModifier]
     PhaseCentersOffsetComputer: typing.Type[PhaseCentersOffsetComputer]
+    PhaseCentersOneWayGNSSBaseModifier: typing.Type[PhaseCentersOneWayGNSSBaseModifier]
     PhaseCentersPhaseModifier: typing.Type[PhaseCentersPhaseModifier]
     PhaseCentersRangeModifier: typing.Type[PhaseCentersRangeModifier]
     PhaseIonosphericDelayModifier: typing.Type[PhaseIonosphericDelayModifier]
@@ -1362,10 +1590,12 @@ class __module_protocol__(Protocol):
     RangeRateModifierUtil: typing.Type[RangeRateModifierUtil]
     RangeRateTroposphericDelayModifier: typing.Type[RangeRateTroposphericDelayModifier]
     RangeTroposphericDelayModifier: typing.Type[RangeTroposphericDelayModifier]
+    RelativisticClockInterSatellitesOneWayRangeRateModifier: typing.Type[RelativisticClockInterSatellitesOneWayRangeRateModifier]
     RelativisticClockInterSatellitesPhaseModifier: typing.Type[RelativisticClockInterSatellitesPhaseModifier]
     RelativisticClockInterSatellitesRangeModifier: typing.Type[RelativisticClockInterSatellitesRangeModifier]
     RelativisticClockOneWayGNSSPhaseModifier: typing.Type[RelativisticClockOneWayGNSSPhaseModifier]
     RelativisticClockOneWayGNSSRangeModifier: typing.Type[RelativisticClockOneWayGNSSRangeModifier]
+    RelativisticClockOneWayGNSSRangeRateModifier: typing.Type[RelativisticClockOneWayGNSSRangeRateModifier]
     RelativisticClockPhaseModifier: typing.Type[RelativisticClockPhaseModifier]
     RelativisticClockRangeModifier: typing.Type[RelativisticClockRangeModifier]
     RelativisticClockRangeRateModifier: typing.Type[RelativisticClockRangeRateModifier]
diff --git a/org-stubs/orekit/estimation/sequential/__init__.pyi b/org-stubs/orekit/estimation/sequential/__init__.pyi
index 1a439ab58d117f1d9f261337f4da299616cd927c..9e1e25ee2f12cb01c61d84fb59171c8d21f0735e 100644
--- a/org-stubs/orekit/estimation/sequential/__init__.pyi
+++ b/org-stubs/orekit/estimation/sequential/__init__.pyi
@@ -8,6 +8,7 @@ else:
 import java.lang
 import java.util
 import jpype
+import org
 import org.hipparchus.analysis
 import org.hipparchus.filtering.kalman
 import org.hipparchus.filtering.kalman.extended
@@ -1275,20 +1276,80 @@ class KalmanEstimator(AbstractKalmanEstimator):
         """
         ...
 
-class KalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.NonLinearProcess[MeasurementDecorator]):
+class SemiAnalyticalKalmanEstimator(AbstractKalmanEstimator):
     """
-    public class KalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.KalmanEstimation`, :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>
+    public class SemiAnalyticalKalmanEstimator extends :class:`~org.orekit.estimation.sequential.AbstractKalmanEstimator`
+    
+        Implementation of an Extended Semi-analytical Kalman Filter (ESKF) to perform orbit determination.
+    
+        The filter uses a :class:`~org.orekit.propagation.conversion.DSSTPropagatorBuilder`.
+    
+        The estimated parameters are driven by :class:`~org.orekit.utils.ParameterDriver` objects. They are of 3 different
+        types:
+    
+          1.  **Orbital parameters**:The position and velocity of the spacecraft, or, more generally, its orbit.
+    
+    
+    These parameters are retrieved from the reference trajectory propagator builder when the filter is initialized.
+          2.  **Propagation parameters**: Some parameters modelling physical processes (SRP or drag coefficients).
     
-        Class defining the process model dynamics to use with a :class:`~org.orekit.estimation.sequential.KalmanEstimator`.
+    
+    They are also retrieved from the propagator builder during the initialization phase.
+          3.  **Measurements parameters**: Parameters related to measurements (station biases, positions etc...).
+    
+    
+    They are passed down to the filter in its constructor.
+    
+    
+        The Kalman filter implementation used is provided by the underlying mathematical library Hipparchus. All the variables
+        seen by Hipparchus (states, covariances, measurement matrices...) are normalized using a specific scale for each
+        estimated parameters or standard deviation noise for each measurement components.
     
         Since:
-            9.2
+            11.1
+    
+        Also see:
+            "Folcik Z., Orbit Determination Using Modern Filters/Smoothers and Continuous Thrust Modeling, Master of Science Thesis,
+            Department of Aeronautics and Astronautics, MIT, June, 2008.", "Cazabonne B., Bayard J., Journot M., and Cefola P. J., A
+            Semi-analytical Approach for Orbit Determination based on Extended Kalman Filter, AAS Paper 21-614, AAS/AIAA
+            Astrodynamics Specialist Conference, Big Sky, August 2021."
+    """
+    def __init__(self, matrixDecomposer: typing.Union[org.hipparchus.linear.MatrixDecomposer, typing.Callable], dSSTPropagatorBuilder: org.orekit.propagation.conversion.DSSTPropagatorBuilder, covarianceMatrixProvider: CovarianceMatrixProvider, parameterDriversList: org.orekit.utils.ParameterDriversList, covarianceMatrixProvider2: CovarianceMatrixProvider): ...
+    def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
+    def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
+        """
+            Set the observer.
+        
+            Parameters:
+                observer (:class:`~org.orekit.estimation.sequential.KalmanObserver`): the observer
+        
+        
+        """
+        ...
+
+class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.NonLinearProcess[MeasurementDecorator], SemiAnalyticalProcess):
+    """
+    public class SemiAnalyticalKalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.KalmanEstimation`, :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>, :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+    
+        Process model to use with a :class:`~org.orekit.estimation.sequential.SemiAnalyticalKalmanEstimator`.
+    
+        Since:
+            11.1
+    
+        Also see:
+            "Folcik Z., Orbit Determination Using Modern Filters/Smoothers and Continuous Thrust Modeling, Master of Science Thesis,
+            Department of Aeronautics and Astronautics, MIT, June, 2008.", "Cazabonne B., Bayard J., Journot M., and Cefola P. J., A
+            Semi-analytical Approach for Orbit Determination based on Extended Kalman Filter, AAS Paper 21-614, AAS/AIAA
+            Astrodynamics Specialist Conference, Big Sky, August 2021."
     """
-    def __init__(self, list: java.util.List[org.orekit.propagation.conversion.PropagatorBuilder], list2: java.util.List[CovarianceMatrixProvider], parameterDriversList: org.orekit.utils.ParameterDriversList, covarianceMatrixProvider: CovarianceMatrixProvider): ...
     def finalizeEstimation(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate) -> None:
         """
             Finalize estimation.
         
+            Specified by:
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.finalizeEstimation` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+        
             Parameters:
                 observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): measurement that has just been processed
                 estimate (:class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.ProcessEstimate?is`): corrected estimate
@@ -1296,7 +1357,17 @@ class KalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.Non
         
         """
         ...
-    def getBuilders(self) -> java.util.List[org.orekit.propagation.conversion.PropagatorBuilder]: ...
+    def finalizeOperationsObservationGrid(self) -> None:
+        """
+            Finalize estimation operations on the observation grid.
+        
+            Specified by:
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.finalizeOperationsObservationGrid` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+        
+        
+        """
+        ...
     def getCorrectedMeasurement(self) -> org.orekit.estimation.measurements.EstimatedMeasurement[typing.Any]:
         """
             Get the estimated measurement.
@@ -1407,12 +1478,12 @@ class KalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.Non
         
         """
         ...
-    def getEstimatedPropagators(self) -> typing.MutableSequence[org.orekit.propagation.Propagator]:
+    def getEstimatedPropagator(self) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator:
         """
-            Get the propagators estimated with the values set in the propagators builders.
+            Get the propagator estimated with the values set in the propagator builder.
         
             Returns:
-                propagators based on the current values in the builder
+                propagator based on the current values in the builder
         
         
         """
@@ -1437,6 +1508,20 @@ class KalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.Non
                 interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`
         
         
+        """
+        ...
+    def getObserver(self) -> KalmanObserver:
+        """
+            Get the observer for Kalman Filter estimations.
+        
+            Specified by:
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.getObserver` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+        
+            Returns:
+                the observer for Kalman Filter estimations
+        
+        
         """
         ...
     def getPhysicalEstimatedCovarianceMatrix(self) -> org.hipparchus.linear.RealMatrix:
@@ -1555,32 +1640,75 @@ class KalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.Non
         
         """
         ...
-    def getReferenceTrajectories(self) -> typing.MutableSequence[org.orekit.propagation.Propagator]:
+    def initializeShortPeriodicTerms(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
         """
-            Getter for the reference trajectories.
+            Initialize the short periodic terms for the Kalman Filter.
         
-            Returns:
-                the referencetrajectories
+            Specified by:
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.initializeShortPeriodicTerms` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+        
+            Parameters:
+                meanState (:class:`~org.orekit.propagation.SpacecraftState`): mean state for auxiliary elements
         
         
         """
         ...
-    def setReferenceTrajectories(self, propagatorArray: typing.Union[typing.List[org.orekit.propagation.Propagator], jpype.JArray]) -> None:
+    def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], extendedKalmanFilter: org.hipparchus.filtering.kalman.extended.ExtendedKalmanFilter[MeasurementDecorator]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
+    def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
         """
-            Setter for the reference trajectories.
+            Set the observer.
         
             Parameters:
-                referenceTrajectories (:class:`~org.orekit.propagation.Propagator`[]): the reference trajectories to be setted
+                observer (:class:`~org.orekit.estimation.sequential.KalmanObserver`): the observer
+        
+        
+        """
+        ...
+    def updateNominalSpacecraftState(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
+        """
+            Update the nominal spacecraft state.
+        
+            Specified by:
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.updateNominalSpacecraftState` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+        
+            Parameters:
+                nominal (:class:`~org.orekit.propagation.SpacecraftState`): nominal spacecraft state
+        
+        
+        """
+        ...
+    def updateReferenceTrajectory(self, dSSTPropagator: org.orekit.propagation.semianalytical.dsst.DSSTPropagator) -> None:
+        """
+            Update the reference trajectories using the propagator as input.
+        
+            Parameters:
+                propagator (:class:`~org.orekit.propagation.semianalytical.dsst.DSSTPropagator`): The new propagator to use
+        
+        
+        """
+        ...
+    def updateShortPeriods(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
+        """
+            Update the DSST short periodic terms.
+        
+            Specified by:
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.updateShortPeriods` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): current mean state
         
         
         """
         ...
 
-class SemiAnalyticalKalmanEstimator(AbstractKalmanEstimator):
+class SemiAnalyticalUnscentedKalmanEstimator(AbstractKalmanEstimator):
     """
-    public class SemiAnalyticalKalmanEstimator extends :class:`~org.orekit.estimation.sequential.AbstractKalmanEstimator`
+    public class SemiAnalyticalUnscentedKalmanEstimator extends :class:`~org.orekit.estimation.sequential.AbstractKalmanEstimator`
     
-        Implementation of an Extended Semi-analytical Kalman Filter (ESKF) to perform orbit determination.
+        Implementation of an Unscented Semi-analytical Kalman filter (USKF) to perform orbit determination.
     
         The filter uses a :class:`~org.orekit.propagation.conversion.DSSTPropagatorBuilder`.
     
@@ -1591,7 +1719,7 @@ class SemiAnalyticalKalmanEstimator(AbstractKalmanEstimator):
     
     
     These parameters are retrieved from the reference trajectory propagator builder when the filter is initialized.
-          2.  **Propagation parameters**: Some parameters modelling physical processes (SRP or drag coefficients).
+          2.  **Propagation parameters**: Some parameters modeling physical processes (SRP or drag coefficients etc...).
     
     
     They are also retrieved from the propagator builder during the initialization phase.
@@ -1602,19 +1730,16 @@ class SemiAnalyticalKalmanEstimator(AbstractKalmanEstimator):
     
     
         The Kalman filter implementation used is provided by the underlying mathematical library Hipparchus. All the variables
-        seen by Hipparchus (states, covariances, measurement matrices...) are normalized using a specific scale for each
-        estimated parameters or standard deviation noise for each measurement components.
+        seen by Hipparchus (states, covariances...) are normalized using a specific scale for each estimated parameters or
+        standard deviation noise for each measurement components.
     
-        Since:
-            11.1
+        An :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimator` object is built using the
+        :meth:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimatorBuilder.build` method of a
+        :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimatorBuilder`.
     
-        Also see:
-            "Folcik Z., Orbit Determination Using Modern Filters/Smoothers and Continuous Thrust Modeling, Master of Science Thesis,
-            Department of Aeronautics and Astronautics, MIT, June, 2008.", "Cazabonne B., Bayard J., Journot M., and Cefola P. J., A
-            Semi-analytical Approach for Orbit Determination based on Extended Kalman Filter, AAS Paper 21-614, AAS/AIAA
-            Astrodynamics Specialist Conference, Big Sky, August 2021."
+        Since:
+            11.3
     """
-    def __init__(self, matrixDecomposer: typing.Union[org.hipparchus.linear.MatrixDecomposer, typing.Callable], dSSTPropagatorBuilder: org.orekit.propagation.conversion.DSSTPropagatorBuilder, covarianceMatrixProvider: CovarianceMatrixProvider, parameterDriversList: org.orekit.utils.ParameterDriversList, covarianceMatrixProvider2: CovarianceMatrixProvider): ...
     def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
     def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
         """
@@ -1627,20 +1752,15 @@ class SemiAnalyticalKalmanEstimator(AbstractKalmanEstimator):
         """
         ...
 
-class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.extended.NonLinearProcess[MeasurementDecorator], SemiAnalyticalProcess):
+class SemiAnalyticalUnscentedKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.unscented.UnscentedProcess[MeasurementDecorator], SemiAnalyticalProcess):
     """
-    public class SemiAnalyticalKalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.KalmanEstimation`, :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>, :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
+    public class SemiAnalyticalUnscentedKalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.KalmanEstimation`, :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>, :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
     
-        Process model to use with a :class:`~org.orekit.estimation.sequential.SemiAnalyticalKalmanEstimator`.
+        Class defining the process model dynamics to use with a
+        :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimator`.
     
         Since:
-            11.1
-    
-        Also see:
-            "Folcik Z., Orbit Determination Using Modern Filters/Smoothers and Continuous Thrust Modeling, Master of Science Thesis,
-            Department of Aeronautics and Astronautics, MIT, June, 2008.", "Cazabonne B., Bayard J., Journot M., and Cefola P. J., A
-            Semi-analytical Approach for Orbit Determination based on Extended Kalman Filter, AAS Paper 21-614, AAS/AIAA
-            Astrodynamics Specialist Conference, Big Sky, August 2021."
+            11.3
     """
     def finalizeEstimation(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate) -> None:
         """
@@ -1688,6 +1808,8 @@ class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalma
         """
             Get the corrected spacecraft states.
         
+            Corrected state is osculating.
+        
             Specified by:
                 :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCorrectedSpacecraftStates` in
                 interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
@@ -1730,6 +1852,9 @@ class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalma
         """
             Get the current corrected estimate.
         
+            For the Unscented Semi-analytical Kalman Filter it corresponds to the corrected filter correction. In other words, it
+            doesn't represent an orbital state.
+        
             Returns:
                 current corrected estimate
         
@@ -1788,24 +1913,54 @@ class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalma
         
         """
         ...
-    def getEvolution(self, double: float, realVector: org.hipparchus.linear.RealVector, measurementDecorator: MeasurementDecorator) -> org.hipparchus.filtering.kalman.extended.NonLinearEvolution:
+    def getEvolution(self, double: float, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> org.hipparchus.filtering.kalman.unscented.UnscentedEvolution:
         """
         
             Specified by:
                 
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
         
         
         """
         ...
-    def getInnovation(self, measurementDecorator: MeasurementDecorator, nonLinearEvolution: org.hipparchus.filtering.kalman.extended.NonLinearEvolution, realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.RealVector:
+    def getInnovation(self, measurementDecorator: MeasurementDecorator, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.RealVector:
         """
         
             Specified by:
                 
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
+        
+        
+        """
+        ...
+    def getNumberSelectedMeasurementDrivers(self) -> int:
+        """
+            Get the number of estimated measurement parameters.
+        
+            Returns:
+                the number of estimated measurement parameters
+        
+        
+        """
+        ...
+    def getNumberSelectedOrbitalDrivers(self) -> int:
+        """
+            Get the number of estimated orbital parameters.
+        
+            Returns:
+                the number of estimated orbital parameters
+        
+        
+        """
+        ...
+    def getNumberSelectedPropagationDrivers(self) -> int:
+        """
+            Get the number of estimated propagation parameters.
+        
+            Returns:
+                the number of estimated propagation parameters
         
         
         """
@@ -1924,12 +2079,25 @@ class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalma
                 predicted measurement
         
         
+        """
+        ...
+    def getPredictedMeasurements(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> typing.MutableSequence[org.hipparchus.linear.RealVector]:
+        """
+        
+            Specified by:
+                
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
+        
+        
         """
         ...
     def getPredictedSpacecraftStates(self) -> typing.MutableSequence[org.orekit.propagation.SpacecraftState]:
         """
             Get the predicted spacecraft states.
         
+            Predicted state is osculating.
+        
             Specified by:
                 :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPredictedSpacecraftStates` in
                 interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
@@ -1954,7 +2122,7 @@ class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalma
         
         """
         ...
-    def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], extendedKalmanFilter: org.hipparchus.filtering.kalman.extended.ExtendedKalmanFilter[MeasurementDecorator]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
+    def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], unscentedKalmanFilter: org.hipparchus.filtering.kalman.unscented.UnscentedKalmanFilter[MeasurementDecorator]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
     def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
         """
             Set the observer.
@@ -1979,842 +2147,83 @@ class SemiAnalyticalKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalma
         
         """
         ...
-    def updateReferenceTrajectory(self, dSSTPropagator: org.orekit.propagation.semianalytical.dsst.DSSTPropagator) -> None:
-        """
-            Update the reference trajectories using the propagator as input.
-        
-            Parameters:
-                propagator (:class:`~org.orekit.propagation.semianalytical.dsst.DSSTPropagator`): The new propagator to use
-        
-        
-        """
-        ...
-    def updateShortPeriods(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
-        """
-            Update the DSST short periodic terms.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.updateShortPeriods` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-            Parameters:
-                state (:class:`~org.orekit.propagation.SpacecraftState`): current mean state
-        
-        
-        """
-        ...
-
-class SemiAnalyticalUnscentedKalmanEstimator(AbstractKalmanEstimator):
-    """
-    public class SemiAnalyticalUnscentedKalmanEstimator extends :class:`~org.orekit.estimation.sequential.AbstractKalmanEstimator`
-    
-        Implementation of an Unscented Semi-analytical Kalman filter (USKF) to perform orbit determination.
-    
-        The filter uses a :class:`~org.orekit.propagation.conversion.DSSTPropagatorBuilder`.
-    
-        The estimated parameters are driven by :class:`~org.orekit.utils.ParameterDriver` objects. They are of 3 different
-        types:
-    
-          1.  **Orbital parameters**:The position and velocity of the spacecraft, or, more generally, its orbit.
-    
-    
-    These parameters are retrieved from the reference trajectory propagator builder when the filter is initialized.
-          2.  **Propagation parameters**: Some parameters modeling physical processes (SRP or drag coefficients etc...).
-    
-    
-    They are also retrieved from the propagator builder during the initialization phase.
-          3.  **Measurements parameters**: Parameters related to measurements (station biases, positions etc...).
-    
-    
-    They are passed down to the filter in its constructor.
-    
-    
-        The Kalman filter implementation used is provided by the underlying mathematical library Hipparchus. All the variables
-        seen by Hipparchus (states, covariances...) are normalized using a specific scale for each estimated parameters or
-        standard deviation noise for each measurement components.
-    
-        An :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimator` object is built using the
-        :meth:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimatorBuilder.build` method of a
-        :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimatorBuilder`.
-    
-        Since:
-            11.3
-    """
-    def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
-    def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
-        """
-            Set the observer.
-        
-            Parameters:
-                observer (:class:`~org.orekit.estimation.sequential.KalmanObserver`): the observer
-        
-        
-        """
-        ...
-
-class SemiAnalyticalUnscentedKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.unscented.UnscentedProcess[MeasurementDecorator], SemiAnalyticalProcess):
-    """
-    public class SemiAnalyticalUnscentedKalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.KalmanEstimation`, :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>, :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-    
-        Class defining the process model dynamics to use with a
-        :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimator`.
-    
-        Since:
-            11.3
-    """
-    def finalizeEstimation(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate) -> None:
-        """
-            Finalize estimation.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.finalizeEstimation` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-            Parameters:
-                observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): measurement that has just been processed
-                estimate (:class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.ProcessEstimate?is`): corrected estimate
-        
-        
-        """
-        ...
-    def finalizeOperationsObservationGrid(self) -> None:
-        """
-            Finalize estimation operations on the observation grid.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.finalizeOperationsObservationGrid` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-        
-        """
-        ...
-    def getCorrectedMeasurement(self) -> org.orekit.estimation.measurements.EstimatedMeasurement[typing.Any]:
-        """
-            Get the estimated measurement.
-        
-            This estimation has been evaluated on the last corrected orbits
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCorrectedMeasurement` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                corrected measurement
-        
-        
-        """
-        ...
-    def getCorrectedSpacecraftStates(self) -> typing.MutableSequence[org.orekit.propagation.SpacecraftState]:
-        """
-            Get the corrected spacecraft states.
-        
-            Corrected state is osculating.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCorrectedSpacecraftStates` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                corrected spacecraft states
-        
-        
-        """
-        ...
-    def getCurrentDate(self) -> org.orekit.time.AbsoluteDate:
-        """
-            Get the current date.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCurrentDate` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                current date
-        
-        
-        """
-        ...
-    def getCurrentMeasurementNumber(self) -> int:
-        """
-            Get the current measurement number.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCurrentMeasurementNumber` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                current measurement number
-        
-        
-        """
-        ...
-    def getEstimate(self) -> org.hipparchus.filtering.kalman.ProcessEstimate:
-        """
-            Get the current corrected estimate.
-        
-            For the Unscented Semi-analytical Kalman Filter it corresponds to the corrected filter correction. In other words, it
-            doesn't represent an orbital state.
-        
-            Returns:
-                current corrected estimate
-        
-        
-        """
-        ...
-    def getEstimatedMeasurementsParameters(self) -> org.orekit.utils.ParameterDriversList:
-        """
-            Get the list of estimated measurements parameters.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getEstimatedMeasurementsParameters` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the list of estimated measurements parameters
-        
-        
-        """
-        ...
-    def getEstimatedOrbitalParameters(self) -> org.orekit.utils.ParameterDriversList:
-        """
-            Get the list of estimated orbital parameters.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getEstimatedOrbitalParameters` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the list of estimated orbital parameters
-        
-        
-        """
-        ...
-    def getEstimatedPropagationParameters(self) -> org.orekit.utils.ParameterDriversList:
-        """
-            Get the list of estimated propagation parameters.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getEstimatedPropagationParameters` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the list of estimated propagation parameters
-        
-        
-        """
-        ...
-    def getEstimatedPropagator(self) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator:
-        """
-            Get the propagator estimated with the values set in the propagator builder.
-        
-            Returns:
-                propagator based on the current values in the builder
-        
-        
-        """
-        ...
-    def getEvolution(self, double: float, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> org.hipparchus.filtering.kalman.unscented.UnscentedEvolution:
-        """
-        
-            Specified by:
-                
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
-        
-        
-        """
-        ...
-    def getInnovation(self, measurementDecorator: MeasurementDecorator, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.RealVector:
-        """
-        
-            Specified by:
-                
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
-        
-        
-        """
-        ...
-    def getNumberSelectedMeasurementDrivers(self) -> int:
-        """
-            Get the number of estimated measurement parameters.
-        
-            Returns:
-                the number of estimated measurement parameters
-        
-        
-        """
-        ...
-    def getNumberSelectedOrbitalDrivers(self) -> int:
-        """
-            Get the number of estimated orbital parameters.
-        
-            Returns:
-                the number of estimated orbital parameters
-        
-        
-        """
-        ...
-    def getNumberSelectedPropagationDrivers(self) -> int:
-        """
-            Get the number of estimated propagation parameters.
-        
-            Returns:
-                the number of estimated propagation parameters
-        
-        
-        """
-        ...
-    def getObserver(self) -> KalmanObserver:
-        """
-            Get the observer for Kalman Filter estimations.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.getObserver` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-            Returns:
-                the observer for Kalman Filter estimations
-        
-        
-        """
-        ...
-    def getPhysicalEstimatedCovarianceMatrix(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the "physical" estimated covariance matrix (i.e. not normalized)
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalEstimatedCovarianceMatrix` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the "physical" estimated covariance matrix
-        
-        
-        """
-        ...
-    def getPhysicalEstimatedState(self) -> org.hipparchus.linear.RealVector:
-        """
-            Get the "physical" estimated state (i.e. not normalized)
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalEstimatedState` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the "physical" estimated state
-        
-        
-        """
-        ...
-    def getPhysicalInnovationCovarianceMatrix(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the physical innovation covariance matrix.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalInnovationCovarianceMatrix` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                physical innovation covariance matrix (may be null for initial process estimate or if the measurement has been ignored)
-        
-        
-        """
-        ...
-    def getPhysicalKalmanGain(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the physical Kalman gain matrix.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalKalmanGain` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                Kalman gain matrix (may be null for initial process estimate or if the measurement has been ignored)
-        
-        
-        """
-        ...
-    def getPhysicalMeasurementJacobian(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the physical Jacobian of the measurement with respect to the state (H matrix).
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalMeasurementJacobian` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                physical Jacobian of the measurement with respect to the state (may be null for initial process estimate or if the
-                measurement has been ignored)
-        
-        
-        """
-        ...
-    def getPhysicalStateTransitionMatrix(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get physical state transition matrix between previous state and estimated (but not yet corrected) state.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalStateTransitionMatrix` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                state transition matrix between previous state and estimated state (but not yet corrected) (may be null for initial
-                process estimate)
-        
-        
-        """
-        ...
-    def getPredictedMeasurement(self) -> org.orekit.estimation.measurements.EstimatedMeasurement[typing.Any]:
-        """
-            Get the predicted measurement.
-        
-            This estimation has been evaluated on the last predicted orbits
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPredictedMeasurement` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                predicted measurement
-        
-        
-        """
-        ...
-    def getPredictedMeasurements(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> typing.MutableSequence[org.hipparchus.linear.RealVector]:
-        """
-        
-            Specified by:
-                
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
-        
-        
-        """
-        ...
-    def getPredictedSpacecraftStates(self) -> typing.MutableSequence[org.orekit.propagation.SpacecraftState]:
-        """
-            Get the predicted spacecraft states.
-        
-            Predicted state is osculating.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPredictedSpacecraftStates` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                predicted spacecraft states
-        
-        
-        """
-        ...
-    def initializeShortPeriodicTerms(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
-        """
-            Initialize the short periodic terms for the Kalman Filter.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.initializeShortPeriodicTerms` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-            Parameters:
-                meanState (:class:`~org.orekit.propagation.SpacecraftState`): mean state for auxiliary elements
-        
-        
-        """
-        ...
-    def processMeasurements(self, list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], unscentedKalmanFilter: org.hipparchus.filtering.kalman.unscented.UnscentedKalmanFilter[MeasurementDecorator]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator: ...
-    def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
-        """
-            Set the observer.
-        
-            Parameters:
-                observer (:class:`~org.orekit.estimation.sequential.KalmanObserver`): the observer
-        
-        
-        """
-        ...
-    def updateNominalSpacecraftState(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
-        """
-            Update the nominal spacecraft state.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.updateNominalSpacecraftState` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-            Parameters:
-                nominal (:class:`~org.orekit.propagation.SpacecraftState`): nominal spacecraft state
-        
-        
-        """
-        ...
-    def updateShortPeriods(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
-        """
-            Update the DSST short periodic terms.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.updateShortPeriods` in
-                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
-        
-            Parameters:
-                state (:class:`~org.orekit.propagation.SpacecraftState`): current mean state
-        
-        
-        """
-        ...
-
-class UnscentedKalmanEstimator(AbstractKalmanEstimator):
-    """
-    public class UnscentedKalmanEstimator extends :class:`~org.orekit.estimation.sequential.AbstractKalmanEstimator`
-    
-        Implementation of an Unscented Kalman filter to perform orbit determination.
-    
-        The filter uses a :class:`~org.orekit.propagation.conversion.PropagatorBuilder` to initialize its reference trajectory.
-    
-        The estimated parameters are driven by :class:`~org.orekit.utils.ParameterDriver` objects. They are of 3 different
-        types:
-    
-          1.  **Orbital parameters**:The position and velocity of the spacecraft, or, more generally, its orbit.
-    
-    
-    These parameters are retrieved from the reference trajectory propagator builder when the filter is initialized.
-          2.  **Propagation parameters**: Some parameters modelling physical processes (SRP or drag coefficients etc...).
-    
-    
-    They are also retrieved from the propagator builder during the initialization phase.
-          3.  **Measurements parameters**: Parameters related to measurements (station biases, positions etc...).
-    
-    
-    They are passed down to the filter in its constructor.
-    
-    
-        The total number of estimated parameters is m, the size of the state vector.
-    
-        The Kalman filter implementation used is provided by the underlying mathematical library Hipparchus.
-    
-        An :class:`~org.orekit.estimation.sequential.UnscentedKalmanEstimator` object is built using the
-        :meth:`~org.orekit.estimation.sequential.UnscentedKalmanEstimatorBuilder.build` method of a
-        :class:`~org.orekit.estimation.sequential.UnscentedKalmanEstimatorBuilder`. The builder is generalized to accept any
-        :class:`~org.orekit.propagation.conversion.PropagatorBuilder`. Howerver, it is absolutely not recommended to use a
-        :class:`~org.orekit.propagation.conversion.DSSTPropagatorBuilder`. A specific
-        :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimatorBuilder` is implemented and shall be
-        used.
-    
-        Since:
-            11.3
-    """
-    def estimationStep(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]) -> typing.MutableSequence[org.orekit.propagation.Propagator]:
-        """
-            Process a single measurement.
-        
-            Update the filter with the new measurement by calling the estimate method.
-        
-            Parameters:
-                observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): the measurement to process
-        
-            Returns:
-                estimated propagator
-        
-        
-        """
-        ...
-    def processMeasurements(self, iterable: typing.Union[java.lang.Iterable[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], typing.Sequence[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], typing.Set[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], typing.Callable[[], java.util.Iterator[typing.Any]]]) -> typing.MutableSequence[org.orekit.propagation.Propagator]: ...
-    def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
-        """
-            Set the observer.
-        
-            Parameters:
-                observer (:class:`~org.orekit.estimation.sequential.KalmanObserver`): the observer
-        
-        
-        """
-        ...
-
-class UnscentedKalmanModel(KalmanEstimation, org.hipparchus.filtering.kalman.unscented.UnscentedProcess[MeasurementDecorator]):
-    """
-    public class UnscentedKalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.KalmanEstimation`, :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>
-    
-        Class defining the process model dynamics to use with a
-        :class:`~org.orekit.estimation.sequential.UnscentedKalmanEstimator`.
-    
-        Since:
-            11.3
-    """
-    def finalizeEstimation(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate) -> None:
-        """
-            Finalize estimation.
-        
-            Parameters:
-                observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): measurement that has just been processed
-                estimate (:class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.ProcessEstimate?is`): corrected estimate
-        
-        
-        """
-        ...
-    def getCorrectedMeasurement(self) -> org.orekit.estimation.measurements.EstimatedMeasurement[typing.Any]:
-        """
-            Get the estimated measurement.
-        
-            This estimation has been evaluated on the last corrected orbits
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCorrectedMeasurement` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                corrected measurement
-        
-        
-        """
-        ...
-    def getCorrectedSpacecraftStates(self) -> typing.MutableSequence[org.orekit.propagation.SpacecraftState]:
-        """
-            Get the corrected spacecraft states.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCorrectedSpacecraftStates` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                corrected spacecraft states
-        
-        
-        """
-        ...
-    def getCurrentDate(self) -> org.orekit.time.AbsoluteDate:
-        """
-            Get the current date.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCurrentDate` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                current date
-        
-        
-        """
-        ...
-    def getCurrentMeasurementNumber(self) -> int:
-        """
-            Get the current measurement number.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getCurrentMeasurementNumber` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                current measurement number
-        
-        
-        """
-        ...
-    def getEstimate(self) -> org.hipparchus.filtering.kalman.ProcessEstimate:
-        """
-            Get the current corrected estimate.
-        
-            Returns:
-                current corrected estimate
-        
-        
-        """
-        ...
-    def getEstimatedMeasurementsParameters(self) -> org.orekit.utils.ParameterDriversList:
-        """
-            Get the list of estimated measurements parameters.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getEstimatedMeasurementsParameters` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the list of estimated measurements parameters
-        
-        
-        """
-        ...
-    def getEstimatedOrbitalParameters(self) -> org.orekit.utils.ParameterDriversList:
-        """
-            Get the list of estimated orbital parameters.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getEstimatedOrbitalParameters` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the list of estimated orbital parameters
-        
-        
-        """
-        ...
-    def getEstimatedPropagationParameters(self) -> org.orekit.utils.ParameterDriversList:
-        """
-            Get the list of estimated propagation parameters.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getEstimatedPropagationParameters` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the list of estimated propagation parameters
-        
-        
-        """
-        ...
-    def getEstimatedPropagators(self) -> typing.MutableSequence[org.orekit.propagation.Propagator]:
-        """
-            Get the propagators estimated with the values set in the propagators builders.
-        
-            Returns:
-                propagators based on the current values in the builder
-        
-        
-        """
-        ...
-    def getEvolution(self, double: float, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> org.hipparchus.filtering.kalman.unscented.UnscentedEvolution:
-        """
-        
-            Specified by:
-                
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
-        
-        
-        """
-        ...
-    def getInnovation(self, measurementDecorator: MeasurementDecorator, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.RealVector:
-        """
-        
-            Specified by:
-                
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
-        
-        
-        """
-        ...
-    def getPhysicalEstimatedCovarianceMatrix(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the "physical" estimated covariance matrix (i.e. not normalized)
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalEstimatedCovarianceMatrix` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the "physical" estimated covariance matrix
-        
-        
-        """
-        ...
-    def getPhysicalEstimatedState(self) -> org.hipparchus.linear.RealVector:
-        """
-            Get the "physical" estimated state (i.e. not normalized)
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalEstimatedState` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                the "physical" estimated state
-        
-        
-        """
-        ...
-    def getPhysicalInnovationCovarianceMatrix(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the physical innovation covariance matrix.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalInnovationCovarianceMatrix` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                physical innovation covariance matrix (may be null for initial process estimate or if the measurement has been ignored)
-        
-        
-        """
-        ...
-    def getPhysicalKalmanGain(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the physical Kalman gain matrix.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalKalmanGain` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                Kalman gain matrix (may be null for initial process estimate or if the measurement has been ignored)
-        
-        
-        """
-        ...
-    def getPhysicalMeasurementJacobian(self) -> org.hipparchus.linear.RealMatrix:
-        """
-            Get the physical Jacobian of the measurement with respect to the state (H matrix).
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalMeasurementJacobian` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
-        
-            Returns:
-                physical Jacobian of the measurement with respect to the state (may be null for initial process estimate or if the
-                measurement has been ignored)
-        
-        
-        """
-        ...
-    def getPhysicalStateTransitionMatrix(self) -> org.hipparchus.linear.RealMatrix:
+    def updateShortPeriods(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
         """
-            Get physical state transition matrix between previous state and estimated (but not yet corrected) state.
+            Update the DSST short periodic terms.
         
             Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPhysicalStateTransitionMatrix` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
+                :meth:`~org.orekit.estimation.sequential.SemiAnalyticalProcess.updateShortPeriods` in
+                interface :class:`~org.orekit.estimation.sequential.SemiAnalyticalProcess`
         
-            Returns:
-                state transition matrix between previous state and estimated state (but not yet corrected) (may be null for initial
-                process estimate)
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): current mean state
         
         
         """
         ...
-    def getPredictedMeasurement(self) -> org.orekit.estimation.measurements.EstimatedMeasurement[typing.Any]:
+
+class UnscentedKalmanEstimator(AbstractKalmanEstimator):
+    """
+    public class UnscentedKalmanEstimator extends :class:`~org.orekit.estimation.sequential.AbstractKalmanEstimator`
+    
+        Implementation of an Unscented Kalman filter to perform orbit determination.
+    
+        The filter uses a :class:`~org.orekit.propagation.conversion.PropagatorBuilder` to initialize its reference trajectory.
+    
+        The estimated parameters are driven by :class:`~org.orekit.utils.ParameterDriver` objects. They are of 3 different
+        types:
+    
+          1.  **Orbital parameters**:The position and velocity of the spacecraft, or, more generally, its orbit.
+    
+    
+    These parameters are retrieved from the reference trajectory propagator builder when the filter is initialized.
+          2.  **Propagation parameters**: Some parameters modelling physical processes (SRP or drag coefficients etc...).
+    
+    
+    They are also retrieved from the propagator builder during the initialization phase.
+          3.  **Measurements parameters**: Parameters related to measurements (station biases, positions etc...).
+    
+    
+    They are passed down to the filter in its constructor.
+    
+    
+        The total number of estimated parameters is m, the size of the state vector.
+    
+        The Kalman filter implementation used is provided by the underlying mathematical library Hipparchus.
+    
+        An :class:`~org.orekit.estimation.sequential.UnscentedKalmanEstimator` object is built using the
+        :meth:`~org.orekit.estimation.sequential.UnscentedKalmanEstimatorBuilder.build` method of a
+        :class:`~org.orekit.estimation.sequential.UnscentedKalmanEstimatorBuilder`. The builder is generalized to accept any
+        :class:`~org.orekit.propagation.conversion.PropagatorBuilder`. Howerver, it is absolutely not recommended to use a
+        :class:`~org.orekit.propagation.conversion.DSSTPropagatorBuilder`. A specific
+        :class:`~org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanEstimatorBuilder` is implemented and shall be
+        used.
+    
+        Since:
+            11.3
+    """
+    def estimationStep(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]) -> typing.MutableSequence[org.orekit.propagation.Propagator]:
         """
-            Get the predicted measurement.
+            Process a single measurement.
         
-            This estimation has been evaluated on the last predicted orbits
+            Update the filter with the new measurement by calling the estimate method.
         
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPredictedMeasurement` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
+            Parameters:
+                observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): the measurement to process
         
             Returns:
-                predicted measurement
-        
-        
-        """
-        ...
-    def getPredictedMeasurements(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> typing.MutableSequence[org.hipparchus.linear.RealVector]:
-        """
-        
-            Specified by:
-                
-                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
-                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
+                estimated propagator
         
         
         """
         ...
-    def getPredictedSpacecraftStates(self) -> typing.MutableSequence[org.orekit.propagation.SpacecraftState]:
+    def processMeasurements(self, iterable: typing.Union[java.lang.Iterable[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], typing.Sequence[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], typing.Set[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], typing.Callable[[], java.util.Iterator[typing.Any]]]) -> typing.MutableSequence[org.orekit.propagation.Propagator]: ...
+    def setObserver(self, kalmanObserver: typing.Union[KalmanObserver, typing.Callable]) -> None:
         """
-            Get the predicted spacecraft states.
-        
-            Specified by:
-                :meth:`~org.orekit.estimation.sequential.KalmanEstimation.getPredictedSpacecraftStates` in
-                interface :class:`~org.orekit.estimation.sequential.KalmanEstimation`
+            Set the observer.
         
-            Returns:
-                predicted spacecraft states
+            Parameters:
+                observer (:class:`~org.orekit.estimation.sequential.KalmanObserver`): the observer
         
         
         """
@@ -2991,6 +2400,127 @@ class UnivariateProcessNoise(AbstractCovarianceMatrixProvider):
         """
         ...
 
+class KalmanModel(org.orekit.estimation.sequential.KalmanEstimationCommon, org.hipparchus.filtering.kalman.extended.NonLinearProcess[MeasurementDecorator]):
+    """
+    public class KalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>
+    
+        Class defining the process model dynamics to use with a :class:`~org.orekit.estimation.sequential.KalmanEstimator`.
+    
+        Since:
+            9.2
+    """
+    def __init__(self, list: java.util.List[org.orekit.propagation.conversion.PropagatorBuilder], list2: java.util.List[CovarianceMatrixProvider], parameterDriversList: org.orekit.utils.ParameterDriversList, covarianceMatrixProvider: CovarianceMatrixProvider): ...
+    def finalizeEstimation(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate) -> None:
+        """
+            Finalize estimation.
+        
+            Parameters:
+                observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): measurement that has just been processed
+                estimate (:class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.ProcessEstimate?is`): corrected estimate
+        
+        
+        """
+        ...
+    def getEvolution(self, double: float, realVector: org.hipparchus.linear.RealVector, measurementDecorator: MeasurementDecorator) -> org.hipparchus.filtering.kalman.extended.NonLinearEvolution:
+        """
+        
+            Specified by:
+                
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`
+        
+        
+        """
+        ...
+    def getInnovation(self, measurementDecorator: MeasurementDecorator, nonLinearEvolution: org.hipparchus.filtering.kalman.extended.NonLinearEvolution, realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.RealVector:
+        """
+        
+            Specified by:
+                
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.extended.NonLinearProcess?is`
+        
+        
+        """
+        ...
+    def getReferenceTrajectories(self) -> typing.MutableSequence[org.orekit.propagation.Propagator]:
+        """
+            Getter for the reference trajectories.
+        
+            Returns:
+                the referencetrajectories
+        
+        
+        """
+        ...
+    def setReferenceTrajectories(self, propagatorArray: typing.Union[typing.List[org.orekit.propagation.Propagator], jpype.JArray]) -> None:
+        """
+            Setter for the reference trajectories.
+        
+            Parameters:
+                referenceTrajectories (:class:`~org.orekit.propagation.Propagator`[]): the reference trajectories to be setted
+        
+        
+        """
+        ...
+
+class UnscentedKalmanModel(org.orekit.estimation.sequential.KalmanEstimationCommon, org.hipparchus.filtering.kalman.unscented.UnscentedProcess[MeasurementDecorator]):
+    """
+    public class UnscentedKalmanModel extends :class:`~org.orekit.estimation.sequential.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`<:class:`~org.orekit.estimation.sequential.MeasurementDecorator`>
+    
+        Class defining the process model dynamics to use with a
+        :class:`~org.orekit.estimation.sequential.UnscentedKalmanEstimator`.
+    
+        Since:
+            11.3
+    """
+    def finalizeEstimation(self, observedMeasurement: org.orekit.estimation.measurements.ObservedMeasurement[typing.Any], processEstimate: org.hipparchus.filtering.kalman.ProcessEstimate) -> None:
+        """
+            Finalize estimation.
+        
+            Parameters:
+                observedMeasurement (:class:`~org.orekit.estimation.measurements.ObservedMeasurement`<?> observedMeasurement): measurement that has just been processed
+                estimate (:class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.ProcessEstimate?is`): corrected estimate
+        
+        
+        """
+        ...
+    def getEvolution(self, double: float, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> org.hipparchus.filtering.kalman.unscented.UnscentedEvolution:
+        """
+        
+            Specified by:
+                
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
+        
+        
+        """
+        ...
+    def getInnovation(self, measurementDecorator: MeasurementDecorator, realVector: org.hipparchus.linear.RealVector, realVector2: org.hipparchus.linear.RealVector, realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.RealVector:
+        """
+        
+            Specified by:
+                
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
+        
+        
+        """
+        ...
+    def getPredictedMeasurements(self, realVectorArray: typing.Union[typing.List[org.hipparchus.linear.RealVector], jpype.JArray], measurementDecorator: MeasurementDecorator) -> typing.MutableSequence[org.hipparchus.linear.RealVector]:
+        """
+        
+            Specified by:
+                
+                meth:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess.html?is` in
+                interface :class:`~org.orekit.estimation.sequential.https:.www.hipparchus.org.apidocs.org.hipparchus.filtering.kalman.unscented.UnscentedProcess?is`
+        
+        
+        """
+        ...
+
+class KalmanEstimationCommon: ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.estimation.sequential")``.
@@ -3000,6 +2530,7 @@ class __module_protocol__(Protocol):
     ConstantProcessNoise: typing.Type[ConstantProcessNoise]
     CovarianceMatrixProvider: typing.Type[CovarianceMatrixProvider]
     KalmanEstimation: typing.Type[KalmanEstimation]
+    KalmanEstimationCommon: typing.Type[KalmanEstimationCommon]
     KalmanEstimator: typing.Type[KalmanEstimator]
     KalmanEstimatorBuilder: typing.Type[KalmanEstimatorBuilder]
     KalmanEstimatorUtil: typing.Type[KalmanEstimatorUtil]
diff --git a/org-stubs/orekit/files/ccsds/ndm/adm/acm/__init__.pyi b/org-stubs/orekit/files/ccsds/ndm/adm/acm/__init__.pyi
index 7361e211f0c82e56fd5ffa9d5a2217e72601b8bb..2a6702bb9e731a3d321bceaeb1cb4d506f211ad8 100644
--- a/org-stubs/orekit/files/ccsds/ndm/adm/acm/__init__.pyi
+++ b/org-stubs/orekit/files/ccsds/ndm/adm/acm/__init__.pyi
@@ -1468,11 +1468,11 @@ class AttitudeDetermination(org.orekit.files.ccsds.section.CommentsContainer):
         ...
     def getRateProcessNoiseStdDev(self) -> float:
         """
-            Get process noise standard deviation if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
+            Get process noise standard deviation if :code:`rateStates` is
             :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.ANGVEL`.
         
             Returns:
-                process noise standard deviation if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
+                process noise standard deviation if :code:`rateStates` is
                 :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.ANGVEL`
         
         
@@ -1491,24 +1491,20 @@ class AttitudeDetermination(org.orekit.files.ccsds.section.CommentsContainer):
     def getSensorsUsed(self) -> java.util.List['AttitudeDeterminationSensor']: ...
     def getSigmaU(self) -> float:
         """
-            Get rate random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-            :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
+            Get rate random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
         
             Returns:
-                rate random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-                :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
+                rate random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
         
         
         """
         ...
     def getSigmaV(self) -> float:
         """
-            Get angle random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-            :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
+            Get angle random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
         
             Returns:
-                angle random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-                :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
+                angle random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
         
         
         """
@@ -1597,11 +1593,11 @@ class AttitudeDetermination(org.orekit.files.ccsds.section.CommentsContainer):
         ...
     def setRateProcessNoiseStdDev(self, double: float) -> None:
         """
-            Set process noise standard deviation if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
+            Set process noise standard deviation if :code:`rateStates` is
             :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.ANGVEL`.
         
             Parameters:
-                rateProcessNoiseStdDev (double): process noise standard deviation if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
+                rateProcessNoiseStdDev (double): process noise standard deviation if :code:`rateStates` is
                     :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.ANGVEL`
         
         
@@ -1619,24 +1615,20 @@ class AttitudeDetermination(org.orekit.files.ccsds.section.CommentsContainer):
         ...
     def setSigmaU(self, double: float) -> None:
         """
-            Set rate random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-            :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
+            Set rate random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
         
             Parameters:
-                sigmaU (double): rate random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-                    :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
+                sigmaU (double): rate random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
         
         
         """
         ...
     def setSigmaV(self, double: float) -> None:
         """
-            Set angle random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-            :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
+            Set angle random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`.
         
             Parameters:
-                sigmaV (double): angle random walk if :meth:`~org.orekit.files.ccsds.ndm.adm.acm.AttitudeDetermination.rateStates` is
-                    :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
+                sigmaV (double): angle random walk if :code:`rateStates` is :meth:`~org.orekit.files.ccsds.ndm.adm.acm.RateElementsType.GYRO_BIAS`
         
         
         """
diff --git a/org-stubs/orekit/files/ccsds/section/__init__.pyi b/org-stubs/orekit/files/ccsds/section/__init__.pyi
index 8b7dd044f84b2d39c2bf0c68a56f47a3144d96d6..12e417749831e9b418a4d60ec9c485ab25daa4a0 100644
--- a/org-stubs/orekit/files/ccsds/section/__init__.pyi
+++ b/org-stubs/orekit/files/ccsds/section/__init__.pyi
@@ -556,6 +556,7 @@ class CommentsContainer(Section):
         
         """
         ...
+    def setComments(self, list: java.util.List[str]) -> None: ...
     def validate(self, double: float) -> None:
         """
             Check is all mandatory entries have been initialized.
diff --git a/org-stubs/orekit/files/general/__init__.pyi b/org-stubs/orekit/files/general/__init__.pyi
index 53d05407fce1abf8ec4ed93585d8f0db1896c789..cc9a21f8446b2b2474abf702ebd5fbc5d308c443 100644
--- a/org-stubs/orekit/files/general/__init__.pyi
+++ b/org-stubs/orekit/files/general/__init__.pyi
@@ -7,11 +7,13 @@ else:
 
 import java.lang
 import java.util
+import org.hipparchus.geometry.euclidean.threed
 import org.orekit.attitudes
 import org.orekit.bodies
 import org.orekit.data
 import org.orekit.frames
 import org.orekit.propagation
+import org.orekit.propagation.analytical
 import org.orekit.time
 import org.orekit.utils
 import typing
@@ -198,6 +200,131 @@ class EphemerisFileWriter:
     @typing.overload
     def write(self, string: str, ephemerisFile: typing.Union[EphemerisFile[_write_1__C, _write_1__S], typing.Callable[[], java.util.Map[str, EphemerisFile.SatelliteEphemeris[org.orekit.utils.TimeStampedPVCoordinates, EphemerisFile.EphemerisSegment]]]]) -> None: ...
 
+_EphemerisSegmentPropagator__C = typing.TypeVar('_EphemerisSegmentPropagator__C', bound=org.orekit.utils.TimeStampedPVCoordinates)  # <C>
+class EphemerisSegmentPropagator(org.orekit.propagation.analytical.AbstractAnalyticalPropagator, org.orekit.propagation.BoundedPropagator, typing.Generic[_EphemerisSegmentPropagator__C]):
+    """
+    public class EphemerisSegmentPropagator<C extends :class:`~org.orekit.utils.TimeStampedPVCoordinates`> extends :class:`~org.orekit.propagation.analytical.AbstractAnalyticalPropagator` implements :class:`~org.orekit.propagation.BoundedPropagator`
+    
+        A :class:`~org.orekit.propagation.Propagator` based on a
+        :class:`~org.orekit.files.general.EphemerisFile.EphemerisSegment`.
+    
+        The :meth:`~org.orekit.files.general.EphemerisSegmentPropagator.getPVCoordinates` is implemented without using the
+        :meth:`~org.orekit.propagation.AbstractPropagator.propagate` methods so using this class as a
+        :class:`~org.orekit.utils.PVCoordinatesProvider` still behaves as expected when the ephemeris file did not have a valid
+        gravitational parameter.
+    """
+    def __init__(self, ephemerisSegment: EphemerisFile.EphemerisSegment[_EphemerisSegmentPropagator__C], attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    def getInitialState(self) -> org.orekit.propagation.SpacecraftState:
+        """
+            Description copied from class: :meth:`~org.orekit.propagation.AbstractPropagator.getInitialState`
+            Get the propagator initial state.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.getInitialState` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Overrides:
+                :meth:`~org.orekit.propagation.AbstractPropagator.getInitialState` in
+                class :class:`~org.orekit.propagation.AbstractPropagator`
+        
+            Returns:
+                initial state
+        
+        
+        """
+        ...
+    def getMaxDate(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Description copied from interface: :meth:`~org.orekit.propagation.BoundedPropagator.getMaxDate`
+            Get the last date of the range.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.BoundedPropagator.getMaxDate` in
+                interface :class:`~org.orekit.propagation.BoundedPropagator`
+        
+            Returns:
+                the last date of the range
+        
+        
+        """
+        ...
+    def getMinDate(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Description copied from interface: :meth:`~org.orekit.propagation.BoundedPropagator.getMinDate`
+            Get the first date of the range.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.BoundedPropagator.getMinDate` in
+                interface :class:`~org.orekit.propagation.BoundedPropagator`
+        
+            Returns:
+                the first date of the range
+        
+        
+        """
+        ...
+    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Description copied from interface: :meth:`~org.orekit.propagation.Propagator.getPVCoordinates`
+            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.getPVCoordinates` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                time-stamped position/velocity of the body (m and m/s)
+        
+        
+        """
+        ...
+    def getPosition(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Description copied from interface: :meth:`~org.orekit.propagation.Propagator.getPosition`
+            Get the position of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.getPosition` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPosition` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                position of the body (m and)
+        
+        
+        """
+        ...
+    def resetInitialState(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
+        """
+            Description copied from class: :meth:`~org.orekit.propagation.AbstractPropagator.resetInitialState`
+            Reset the propagator initial state.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.resetInitialState` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Overrides:
+                :meth:`~org.orekit.propagation.AbstractPropagator.resetInitialState` in
+                class :class:`~org.orekit.propagation.AbstractPropagator`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): new initial state to consider
+        
+        
+        """
+        ...
+
 class OrekitAttitudeEphemerisFile(AttitudeEphemerisFile[org.orekit.utils.TimeStampedAngularCoordinates, 'OrekitAttitudeEphemerisFile.OrekitAttitudeEphemerisSegment']):
     """
     public class OrekitAttitudeEphemerisFile extends :class:`~org.orekit.files.general.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.files.general.AttitudeEphemerisFile`<:class:`~org.orekit.utils.TimeStampedAngularCoordinates`, :class:`~org.orekit.files.general.OrekitAttitudeEphemerisFile.OrekitAttitudeEphemerisSegment`>
@@ -305,5 +432,6 @@ class __module_protocol__(Protocol):
     EphemerisFile: typing.Type[EphemerisFile]
     EphemerisFileParser: typing.Type[EphemerisFileParser]
     EphemerisFileWriter: typing.Type[EphemerisFileWriter]
+    EphemerisSegmentPropagator: typing.Type[EphemerisSegmentPropagator]
     OrekitAttitudeEphemerisFile: typing.Type[OrekitAttitudeEphemerisFile]
     OrekitEphemerisFile: typing.Type[OrekitEphemerisFile]
diff --git a/org-stubs/orekit/files/rinex/clock/__init__.pyi b/org-stubs/orekit/files/rinex/clock/__init__.pyi
index 08d203297f90cd1ca1c6e256c0ebc186abcedb44..2693b488ff788ce1439827c6a6e029359a289fe3 100644
--- a/org-stubs/orekit/files/rinex/clock/__init__.pyi
+++ b/org-stubs/orekit/files/rinex/clock/__init__.pyi
@@ -9,6 +9,7 @@ import java.io
 import java.lang
 import java.util
 import java.util.function
+import org.orekit.data
 import org.orekit.files.rinex
 import org.orekit.frames
 import org.orekit.gnss
@@ -124,6 +125,23 @@ class RinexClock:
                 observationType (:class:`~org.orekit.gnss.ObservationType`): the system observation type to set
         
         
+        """
+        ...
+    def extractClockModel(self, string: str, int: int) -> org.orekit.time.SampledClockModel:
+        """
+            Extract the clock model.
+        
+            Parameters:
+                name (:class:`~org.orekit.files.rinex.clock.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): receiver/satellite name
+                nbInterpolationPoints (int): number of points to use in interpolation
+        
+            Returns:
+                extracted clock model
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getAgencyName(self) -> str:
@@ -206,6 +224,20 @@ class RinexClock:
                 the creation time zone as a string
         
         
+        """
+        ...
+    def getEarliestEpoch(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get earliest epoch from the :meth:`~org.orekit.files.rinex.clock.RinexClock.getClockData`.
+        
+            Returns:
+                earliest epoch from the :meth:`~org.orekit.files.rinex.clock.RinexClock.getClockData`, or
+                :meth:`~org.orekit.time.AbsoluteDate.FUTURE_INFINITY` if no data has been added
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getExternalClockReference(self) -> str:
@@ -246,6 +278,20 @@ class RinexClock:
                 the frame name
         
         
+        """
+        ...
+    def getLatestEpoch(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get latest epoch from the :meth:`~org.orekit.files.rinex.clock.RinexClock.getClockData`.
+        
+            Returns:
+                latest epoch from the :meth:`~org.orekit.files.rinex.clock.RinexClock.getClockData`, or
+                :meth:`~org.orekit.time.AbsoluteDate.PAST_INFINITY` if no data has been added
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getListAppliedDCBS(self) -> java.util.List[org.orekit.files.rinex.AppliedDCBS]: ...
@@ -567,6 +613,8 @@ class RinexClock:
         
         """
         ...
+    @staticmethod
+    def splice(collection: typing.Union[java.util.Collection['RinexClock'], typing.Sequence['RinexClock'], typing.Set['RinexClock']], double: float) -> 'RinexClock': ...
     class ClockDataLine:
         def __init__(self, rinexClock: 'RinexClock', clockDataType: 'RinexClock.ClockDataType', string: str, dateComponents: org.orekit.time.DateComponents, timeComponents: org.orekit.time.TimeComponents, int: int, double: float, double2: float, double3: float, double4: float, double5: float, double6: float): ...
         def getClockAcceleration(self) -> float: ...
@@ -645,11 +693,81 @@ class RinexClockParser:
     @typing.overload
     def __init__(self, function: typing.Union[java.util.function.Function[str, org.orekit.frames.Frame], typing.Callable[[str], org.orekit.frames.Frame]], timeScales: org.orekit.time.TimeScales): ...
     @typing.overload
-    def parse(self, bufferedReader: java.io.BufferedReader, string: str) -> RinexClock: ...
+    def parse(self, bufferedReader: java.io.BufferedReader, string: str) -> RinexClock:
+        """
+            Parse an IGS clock file from a stream.
+        
+            Parameters:
+                reader (:class:`~org.orekit.files.rinex.clock.https:.docs.oracle.com.javase.8.docs.api.java.io.BufferedReader?is`): containing the clock file
+                fileName (:class:`~org.orekit.files.rinex.clock.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): file name
+        
+            Returns:
+                a parsed IGS clock file
+        
+            Also see:
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`
+        
+        """
+        ...
     @typing.overload
-    def parse(self, inputStream: java.io.InputStream) -> RinexClock: ...
+    def parse(self, inputStream: java.io.InputStream) -> RinexClock:
+        """
+            Parse an IGS clock file from an input stream using the UTF-8 charset.
+        
+            This method creates a
+            :class:`~org.orekit.files.rinex.clock.https:.docs.oracle.com.javase.8.docs.api.java.io.BufferedReader?is` from the
+            stream and as such this method may read more data than necessary from :code:`stream` and the additional data will be
+            lost. The other parse methods do not have this issue.
+        
+            Parameters:
+                stream (:class:`~org.orekit.files.rinex.clock.https:.docs.oracle.com.javase.8.docs.api.java.io.InputStream?is`): to read the IGS clock file from
+        
+            Returns:
+                a parsed IGS clock file
+        
+            Also see:
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`
+        
+            Parse an IGS clock file from a file on the local file system.
+        
+            Parameters:
+                fileName (:class:`~org.orekit.files.rinex.clock.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): file name
+        
+            Returns:
+                a parsed IGS clock file
+        
+            Also see:
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`
+        
+            Parse an IGS clock file from a :class:`~org.orekit.data.DataSource`.
+        
+            Parameters:
+                source (:class:`~org.orekit.data.DataSource`): source for clock file
+        
+            Returns:
+                a parsed IGS clock file
+        
+            Since:
+                12.1
+        
+            Also see:
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`,
+                :meth:`~org.orekit.files.rinex.clock.RinexClockParser.parse`
+        
+        
+        """
+        ...
     @typing.overload
     def parse(self, string: str) -> RinexClock: ...
+    @typing.overload
+    def parse(self, dataSource: org.orekit.data.DataSource) -> RinexClock: ...
 
 
 class __module_protocol__(Protocol):
diff --git a/org-stubs/orekit/files/rinex/navigation/__init__.pyi b/org-stubs/orekit/files/rinex/navigation/__init__.pyi
index e1f7815320a9dce9748f9e8052cbe23d3d688442..4a518fae2812d0520471938c164e79d311d1593d 100644
--- a/org-stubs/orekit/files/rinex/navigation/__init__.pyi
+++ b/org-stubs/orekit/files/rinex/navigation/__init__.pyi
@@ -1285,7 +1285,7 @@ class IonosphereKlobucharMessage(IonosphereBaseMessage):
                 α coefficients (s/radⁿ)
         
             Also see:
-                :meth:`~org.orekit.files.rinex.navigation.IonosphereKlobucharMessage.S_PER_SC_N`
+                :code:`S_PER_SC_N`
         
         
         """
@@ -1301,7 +1301,7 @@ class IonosphereKlobucharMessage(IonosphereBaseMessage):
                 β coefficients (s/radⁿ)
         
             Also see:
-                :meth:`~org.orekit.files.rinex.navigation.IonosphereKlobucharMessage.S_PER_SC_N`
+                :code:`S_PER_SC_N`
         
         
         """
@@ -1328,7 +1328,7 @@ class IonosphereKlobucharMessage(IonosphereBaseMessage):
                 alphaI (double): α coefficient to set (s/radⁿ)
         
             Also see:
-                :meth:`~org.orekit.files.rinex.navigation.IonosphereKlobucharMessage.S_PER_SC_N`
+                :code:`S_PER_SC_N`
         
         
         """
@@ -1345,7 +1345,7 @@ class IonosphereKlobucharMessage(IonosphereBaseMessage):
                 betaI (double): β coefficient to set (s/radⁿ)
         
             Also see:
-                :meth:`~org.orekit.files.rinex.navigation.IonosphereKlobucharMessage.S_PER_SC_N`
+                :code:`S_PER_SC_N`
         
         
         """
diff --git a/org-stubs/orekit/files/rinex/observation/__init__.pyi b/org-stubs/orekit/files/rinex/observation/__init__.pyi
index 7d7e49c05866c9b021326a0bb38c09585ca504a1..8a78be03e2cc452c87838d387c2d34ed6321ff26 100644
--- a/org-stubs/orekit/files/rinex/observation/__init__.pyi
+++ b/org-stubs/orekit/files/rinex/observation/__init__.pyi
@@ -228,6 +228,23 @@ class RinexObservation(org.orekit.files.rinex.RinexFile['RinexObservationHeader'
                 observationsDataSet (:class:`~org.orekit.files.rinex.observation.ObservationDataSet`): observations data set
         
         
+        """
+        ...
+    def extractClockModel(self, int: int) -> org.orekit.time.SampledClockModel:
+        """
+            Extract the receiver clock model.
+        
+            Parameters:
+                nbInterpolationPoints (int): number of points to use in interpolation
+        
+            Returns:
+                extracted clock model or null if all :meth:`~org.orekit.files.rinex.observation.ObservationDataSet.getRcvrClkOffset` are
+                zero
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getObservationDataSets(self) -> java.util.List[ObservationDataSet]: ...
@@ -460,12 +477,27 @@ class RinexObservationHeader(org.orekit.files.rinex.section.RinexBaseHeader):
         ...
     def getClkOffset(self) -> int:
         """
+            Deprecated.
+            as of 12.1, replaced by #@link :meth:`~org.orekit.files.rinex.observation.RinexObservationHeader.getClockOffsetApplied`
             Get the realtime-derived receiver clock offset.
         
             Returns:
                 realtime-derived receiver clock offset
         
         
+        """
+        ...
+    def getClockOffsetApplied(self) -> bool:
+        """
+            Get the application flag for realtime-derived receiver clock offset.
+        
+            Returns:
+                application flag for realtime-derived receiver clock offset
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getEccentricities(self) -> org.hipparchus.geometry.euclidean.twod.Vector2D:
@@ -835,12 +867,27 @@ class RinexObservationHeader(org.orekit.files.rinex.section.RinexBaseHeader):
         ...
     def setClkOffset(self, int: int) -> None:
         """
+            Deprecated.
+            as of 12.1, replaced by :meth:`~org.orekit.files.rinex.observation.RinexObservationHeader.setClockOffsetApplied`
             Set the realtime-derived receiver clock offset.
         
             Parameters:
                 clkOffset (int): realtime-derived receiver clock offset
         
         
+        """
+        ...
+    def setClockOffsetApplied(self, boolean: bool) -> None:
+        """
+            Set the application flag for realtime-derived receiver clock offset.
+        
+            Parameters:
+                clockOffsetApplied (boolean): application flag for realtime-derived receiver clock offset
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def setEccentricities(self, vector2D: org.hipparchus.geometry.euclidean.twod.Vector2D) -> None:
@@ -1144,6 +1191,19 @@ class RinexObservationWriter(java.lang.AutoCloseable):
     def __init__(self, appendable: java.lang.Appendable, string: str): ...
     def close(self) -> None: ...
     def prepareComments(self, list: java.util.List[org.orekit.files.rinex.section.RinexComment]) -> None: ...
+    def setReceiverClockModel(self, clockModel: org.orekit.time.ClockModel) -> None:
+        """
+            Set receiver clock model.
+        
+            Parameters:
+                receiverClockModel (:class:`~org.orekit.time.ClockModel`): receiver clock model
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
     def writeCompleteFile(self, rinexObservation: RinexObservation) -> None: ...
     def writeHeader(self, rinexObservationHeader: RinexObservationHeader) -> None: ...
     def writeObservationDataSet(self, observationDataSet: ObservationDataSet) -> None: ...
diff --git a/org-stubs/orekit/files/sinex/__init__.pyi b/org-stubs/orekit/files/sinex/__init__.pyi
index 3abe5d9844c7e66e3cc6cb953d2a5eef88af674d..86a5507ba5da1fdac7eed61eb339fd7cee2eafea 100644
--- a/org-stubs/orekit/files/sinex/__init__.pyi
+++ b/org-stubs/orekit/files/sinex/__init__.pyi
@@ -12,6 +12,7 @@ import org.hipparchus.util
 import org.orekit.data
 import org.orekit.frames
 import org.orekit.gnss
+import org.orekit.models.earth.displacement
 import org.orekit.time
 import org.orekit.utils
 import typing
@@ -783,6 +784,23 @@ class Station:
                 12.0
         
         
+        """
+        ...
+    def addPsdCorrectionValidAfter(self, psdCorrection: org.orekit.models.earth.displacement.PsdCorrection, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Add a Post-Seismic Deformation entry valid after a limit date.
+        
+        
+            Using :code:`addPsdCorrectionValidAfter(entry, t)` will make :code:`entry` valid in [t, +∞[ (note the closed bracket).
+        
+            Parameters:
+                entry (:class:`~org.orekit.models.earth.displacement.PsdCorrection`): Post-Seismic Deformation entry
+                earliestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date after which the entry is valid (must be different from **all** dates already used for transitions)
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def addStationEccentricitiesValidAfter(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
@@ -899,6 +917,7 @@ class Station:
         
         """
         ...
+    def getPsdTimeSpanMap(self) -> org.orekit.utils.TimeSpanMap[java.util.List[org.orekit.models.earth.displacement.PsdCorrection]]: ...
     def getSiteCode(self) -> str:
         """
             Get the site code (station identifier).
diff --git a/org-stubs/orekit/files/sp3/__init__.pyi b/org-stubs/orekit/files/sp3/__init__.pyi
index b5dfdcd0c744a3af64edf73bf5c28230c06bd4ca..f264724e4a4708598b552ff6c6807f0c26de8e93 100644
--- a/org-stubs/orekit/files/sp3/__init__.pyi
+++ b/org-stubs/orekit/files/sp3/__init__.pyi
@@ -118,13 +118,48 @@ class DataUsed(java.lang.Enum['DataUsed']):
         """
         ...
 
+class NsgfV00Filter(org.orekit.data.DataFilter):
+    """
+    public class NsgfV00Filter extends :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.data.DataFilter`
+    
+        Filter for some non-official files from CDDIS.
+    
+        Some files produced by UKRI/NERC/British Geological Survey Space Geodesy Facility (SGF) claim to be SP3c but are really
+        SP3d since they have more than 4 comments lines. This filter can be used to parse them.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.files.sp3.https:.forum.orekit.org.t.solved`
+    """
+    DEFAULT_V00_PATTERN: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DEFAULT_V00_PATTERN
+    
+        Default regular expression for NSGF V00 files.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self): ...
+    @typing.overload
+    def __init__(self, string: str, function: typing.Union[java.util.function.Function[str, str], typing.Callable[[str], str]]): ...
+    def filter(self, dataSource: org.orekit.data.DataSource) -> org.orekit.data.DataSource: ...
+
 class SP3(org.orekit.files.general.EphemerisFile['SP3Coordinate', 'SP3Segment']):
     """
     public class SP3 extends :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.files.general.EphemerisFile`<:class:`~org.orekit.files.sp3.SP3Coordinate`, :class:`~org.orekit.files.sp3.SP3Segment`>
     
         Represents a parsed SP3 orbit file.
     """
+    @typing.overload
     def __init__(self, double: float, int: int, frame: org.orekit.frames.Frame): ...
+    @typing.overload
+    def __init__(self, sP3Header: 'SP3Header', double: float, int: int, frame: org.orekit.frames.Frame): ...
     def addSatellite(self, string: str) -> None:
         """
             Add a new satellite with a given identifier to the list of stored satellites.
@@ -133,6 +168,24 @@ class SP3(org.orekit.files.general.EphemerisFile['SP3Coordinate', 'SP3Segment'])
                 satId (:class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the satellite identifier
         
         
+        """
+        ...
+    @staticmethod
+    def changeFrame(sP3: 'SP3', frame: org.orekit.frames.Frame) -> 'SP3':
+        """
+            Change the frame of an SP3 file.
+        
+            Parameters:
+                original (:class:`~org.orekit.files.sp3.SP3`): original SP3 file
+                newFrame (:class:`~org.orekit.frames.Frame`): frame to use for the changed SP3 file
+        
+            Returns:
+                changed SP3 file
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def containsSatellite(self, string: str) -> bool:
@@ -366,6 +419,24 @@ class SP3Ephemeris(org.orekit.files.general.EphemerisFile.SatelliteEphemeris[SP3
                 maxGap (double): maximum gap between segments
         
         
+        """
+        ...
+    def extractClockModel(self) -> org.orekit.time.AggregatedClockModel:
+        """
+            Extract the clock model.
+        
+            There are always 2n+1 :meth:`~org.orekit.time.AggregatedClockModel.getModels` underlying clock models when there are n
+            :meth:`~org.orekit.files.sp3.SP3Ephemeris.getSegments` in the ephemeris. This happens because there are
+            :class:`~org.orekit.utils.TimeSpanMap.Span` with :code:`null` :meth:`~org.orekit.utils.TimeSpanMap.Span.getData` before
+            the first segment, between all regular segments and after last segment.
+        
+            Returns:
+                extracted clock model
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getAvailableDerivatives(self) -> org.orekit.utils.CartesianDerivativesFilter:
@@ -1033,8 +1104,10 @@ class SP3Parser(org.orekit.files.general.EphemerisFileParser[SP3]):
     """
     SP3_FRAME_CENTER_STRING: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` SP3_FRAME_CENTER_STRING
+    :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public static final :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` SP3_FRAME_CENTER_STRING
     
+        Deprecated.
+        as of 12.1 not used anymore
         String representation of the center of ephemeris coordinate system.
     
         Also see:
@@ -1048,6 +1121,8 @@ class SP3Parser(org.orekit.files.general.EphemerisFileParser[SP3]):
     def __init__(self, double: float, int: int, function: typing.Union[java.util.function.Function[str, org.orekit.frames.Frame], typing.Callable[[str], org.orekit.frames.Frame]]): ...
     @typing.overload
     def __init__(self, double: float, int: int, function: typing.Union[java.util.function.Function[str, org.orekit.frames.Frame], typing.Callable[[str], org.orekit.frames.Frame]], timeScales: org.orekit.time.TimeScales): ...
+    @staticmethod
+    def guessFrame(string: str) -> org.orekit.frames.Frame: ...
     def parse(self, dataSource: org.orekit.data.DataSource) -> SP3:
         """
             Description copied from interface: :meth:`~org.orekit.files.general.EphemerisFileParser.parse`
@@ -1085,6 +1160,19 @@ class SP3Segment(org.orekit.files.general.EphemerisFile.EphemerisSegment[SP3Coor
                 coord (:class:`~org.orekit.files.sp3.SP3Coordinate`): the P/V coordinate of the satellite
         
         
+        """
+        ...
+    def extractClockModel(self) -> org.orekit.time.ClockModel:
+        """
+            Extract the clock model.
+        
+            Returns:
+                extracted clock model
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getAvailableDerivatives(self) -> org.orekit.utils.CartesianDerivativesFilter:
@@ -1305,6 +1393,20 @@ class SP3Utils:
     
         Velocity accuracy unit.
     
+    """
+    CLOCK_ADDITIONAL_STATE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.files.sp3.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` CLOCK_ADDITIONAL_STATE
+    
+        Additional state name for clock.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~constant`
+    
+    
     """
     CLOCK_UNIT: typing.ClassVar[org.orekit.utils.units.Unit] = ...
     """
@@ -1384,6 +1486,7 @@ class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.files.sp3")``.
 
     DataUsed: typing.Type[DataUsed]
+    NsgfV00Filter: typing.Type[NsgfV00Filter]
     SP3: typing.Type[SP3]
     SP3Coordinate: typing.Type[SP3Coordinate]
     SP3CoordinateHermiteInterpolator: typing.Type[SP3CoordinateHermiteInterpolator]
diff --git a/org-stubs/orekit/forces/__init__.pyi b/org-stubs/orekit/forces/__init__.pyi
index bea7da902de5ee550d3d7b17e867940a511db4bf..9f8945f0ab9ca1e7892a20cc0d0cb518d15aca8f 100644
--- a/org-stubs/orekit/forces/__init__.pyi
+++ b/org-stubs/orekit/forces/__init__.pyi
@@ -56,13 +56,13 @@ class BoxAndSolarArraySpacecraft(org.orekit.forces.radiation.RadiationSensitive,
         coefficients.
     """
     @typing.overload
-    def __init__(self, double: float, double2: float, double3: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double4: float, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double5: float, double6: float, double7: float, double8: float): ...
+    def __init__(self, double: float, double2: float, double3: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double4: float, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double5: float, double6: float, double7: float, double8: float): ...
     @typing.overload
     def __init__(self, list: java.util.List['Panel']): ...
     @staticmethod
     def buildBox(double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float) -> java.util.List['Panel']: ...
     @staticmethod
-    def buildPanels(double: float, double2: float, double3: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double4: float, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double5: float, double6: float, double7: float, double8: float) -> java.util.List['Panel']: ...
+    def buildPanels(double: float, double2: float, double3: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double4: float, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double5: float, double6: float, double7: float, double8: float) -> java.util.List['Panel']: ...
     _dragAcceleration_0__T = typing.TypeVar('_dragAcceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def dragAcceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_dragAcceleration_0__T], t: _dragAcceleration_0__T, fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_dragAcceleration_0__T], tArray: typing.Union[typing.List[_dragAcceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_dragAcceleration_0__T]:
@@ -237,11 +237,26 @@ class ForceModel(org.orekit.utils.ParameterDriversProvider, org.orekit.propagati
                 s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
                 adder (:class:`~org.orekit.propagation.numerical.TimeDerivativesEquations`): object where the contribution should be added
         
+        """
+        ...
+    def dependsOnAttitudeRate(self) -> bool:
+        """
+            Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date. If false, it
+            essentially means that at most the attitude's rotation is used when computing the acceleration vector. The default
+            implementation returns false as common forces do not.
+        
+            Returns:
+                true if force model depends on attitude derivatives
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Returns:
                 true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
@@ -461,7 +476,7 @@ class PointingPanel(Panel):
         Since:
             3.0
     """
-    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double: float, double2: float, double3: float, double4: float, double5: float): ...
+    def __init__(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double: float, double2: float, double3: float, double4: float, double5: float): ...
     _getNormal_0__T = typing.TypeVar('_getNormal_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def getNormal(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_getNormal_0__T]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_getNormal_0__T]:
diff --git a/org-stubs/orekit/forces/drag/__init__.pyi b/org-stubs/orekit/forces/drag/__init__.pyi
index f0999cf07405e479d710ded7d89179982ee3a720..1572620516a5c7c4616212f7d11ead386bf64d2d 100644
--- a/org-stubs/orekit/forces/drag/__init__.pyi
+++ b/org-stubs/orekit/forces/drag/__init__.pyi
@@ -30,11 +30,11 @@ class AbstractDragForceModel(org.orekit.forces.ForceModel):
             10.2
     
         Also see:
-            :class:`~org.orekit.forces.drag.DragForce`, :class:`~org.orekit.forces.drag.TimeSpanDragForce`
+            :class:`~org.orekit.forces.drag.DragForce`
     """
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -44,6 +44,19 @@ class AbstractDragForceModel(org.orekit.forces.ForceModel):
                 attitude
         
         
+        """
+        ...
+    def getAtmosphere(self) -> org.orekit.models.earth.atmosphere.Atmosphere:
+        """
+            Get the atmospheric model.
+        
+            Returns:
+                atmosphere model
+        
+            Since:
+                12.1
+        
+        
         """
         ...
 
@@ -99,6 +112,21 @@ class DragSensitive:
     
     
     """
+    def dependsOnAttitudeRate(self) -> bool:
+        """
+            Check if model depends on attitude's rotation rate or acceleration at a given, fixed date. If false, it essentially
+            means that at most the attitude's rotation is used when computing the acceleration vector. The default implementation
+            returns false as common models for orbital mechanics do not.
+        
+            Returns:
+                true if force model depends on attitude derivatives
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
     _dragAcceleration_0__T = typing.TypeVar('_dragAcceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def dragAcceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_dragAcceleration_0__T], t: _dragAcceleration_0__T, fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_dragAcceleration_0__T], tArray: typing.Union[typing.List[_dragAcceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_dragAcceleration_0__T]:
@@ -153,7 +181,10 @@ class DragForce(AbstractDragForceModel):
         DragCoefVector With DragCoefVector = {C :sub:`x` , C :sub:`y` , C :sub:`z` } and S given by the user through the
         interface :class:`~org.orekit.forces.drag.DragSensitive`
     """
+    @typing.overload
     def __init__(self, atmosphere: org.orekit.models.earth.atmosphere.Atmosphere, dragSensitive: DragSensitive): ...
+    @typing.overload
+    def __init__(self, atmosphere: org.orekit.models.earth.atmosphere.Atmosphere, dragSensitive: DragSensitive, boolean: bool): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
@@ -184,12 +215,14 @@ class DragForce(AbstractDragForceModel):
         
         """
         ...
-    def getAtmosphere(self) -> org.orekit.models.earth.atmosphere.Atmosphere:
+    def dependsOnAttitudeRate(self) -> bool:
         """
-            Get the atmospheric model.
+            Check if force model depends on attitude's rotation rate or acceleration at a given, fixed date. If false, it
+            essentially means that at most the attitude's rotation is used when computing the acceleration vector. The default
+            implementation returns false as common forces do not.
         
             Returns:
-                atmosphere model
+                true if force model depends on attitude derivatives
         
         
         """
diff --git a/org-stubs/orekit/forces/empirical/__init__.pyi b/org-stubs/orekit/forces/empirical/__init__.pyi
index de40409fe64fd33bef8f5db7fb329ad0eb84f208..1cd22eab3b5ef852bc5e9b9867582fd1a43ab167 100644
--- a/org-stubs/orekit/forces/empirical/__init__.pyi
+++ b/org-stubs/orekit/forces/empirical/__init__.pyi
@@ -149,7 +149,7 @@ class ParametricAcceleration(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
diff --git a/org-stubs/orekit/forces/gravity/__init__.pyi b/org-stubs/orekit/forces/gravity/__init__.pyi
index 4a2d5d6cfea888efcf4b3c6b02ed2fcf1c90a508..d8679f87b5c3a86d546192e4cd1f0a8736a66412 100644
--- a/org-stubs/orekit/forces/gravity/__init__.pyi
+++ b/org-stubs/orekit/forces/gravity/__init__.pyi
@@ -23,6 +23,49 @@ import typing
 
 
 
+class AbstractBodyAttraction(org.orekit.forces.ForceModel):
+    """
+    public abstract class AbstractBodyAttraction extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
+    
+        Abstract class for body attraction force model.
+    """
+    ATTRACTION_COEFFICIENT_SUFFIX: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ATTRACTION_COEFFICIENT_SUFFIX
+    
+        Suffix for parameter name for attraction coefficient enabling Jacobian processing.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def dependsOnPositionOnly(self) -> bool:
+        """
+            Check if force model depends on position only at a given, fixed date.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Returns:
+                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
+                attitude
+        
+        
+        """
+        ...
+    def getBodyName(self) -> str:
+        """
+            Getter for the body's name.
+        
+            Returns:
+                the body's name
+        
+        
+        """
+        ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+
 class DeSitterRelativity(org.orekit.forces.ForceModel):
     """
     public class DeSitterRelativity extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
@@ -91,7 +134,7 @@ class DeSitterRelativity(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -186,7 +229,7 @@ class HolmesFeatherstoneAttractionModel(org.orekit.forces.ForceModel, org.orekit
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -301,6 +344,134 @@ class HolmesFeatherstoneAttractionModel(org.orekit.forces.ForceModel, org.orekit
         """
         ...
 
+class J2OnlyPerturbation(org.orekit.forces.ForceModel):
+    """
+    public class J2OnlyPerturbation extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
+    
+        J2-only force model. This class models the oblateness part alone of the central body's potential (degree 2 and order 0),
+        whilst avoiding the computational overhead of generic NxM spherical harmonics.
+    
+        This J2 coefficient has same magnitude and opposite sign than the so-called unnormalized C20 coefficient.
+    
+        This class should not be used in combination of :class:`~org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel`,
+        otherwise the J2 term would be taken into account twice.
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, frame: org.orekit.frames.Frame): ...
+    @typing.overload
+    def __init__(self, double: float, double2: float, timeScalarFunction: org.orekit.time.TimeScalarFunction, frame: org.orekit.frames.Frame): ...
+    @typing.overload
+    def __init__(self, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider, frame: org.orekit.frames.Frame): ...
+    _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
+        """
+            Compute acceleration.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> state): current state information: date, kinematics, attitude
+                parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+        
+            Returns:
+                acceleration in same frame as state
+        
+        
+        """
+        ...
+    @typing.overload
+    def acceleration(self, spacecraftState: org.orekit.propagation.SpacecraftState, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute acceleration.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
+                parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+        
+            Returns:
+                acceleration in same frame as state
+        
+        """
+        ...
+    def dependsOnPositionOnly(self) -> bool:
+        """
+            Check if force model depends on position only at a given, fixed date.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Returns:
+                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
+                attitude
+        
+        
+        """
+        ...
+    def getFrame(self) -> org.orekit.frames.Frame:
+        """
+            Getter for frame.
+        
+            Returns:
+                frame
+        
+        
+        """
+        ...
+    _getJ2_1__T = typing.TypeVar('_getJ2_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getJ2(self, absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Return J2 at requested date.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): epoch at which J2 coefficient should be retrieved
+        
+            Returns:
+                J2 coefficient
+        
+        """
+        ...
+    @typing.overload
+    def getJ2(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getJ2_1__T]) -> _getJ2_1__T:
+        """
+            Return J2 at requested date (Field version).
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): epoch at which J2 coefficient should be retrieved
+        
+            Returns:
+                J2 coefficient
+        
+        
+        """
+        ...
+    def getMu(self) -> float:
+        """
+            Getter for mu.
+        
+            Returns:
+                mu
+        
+        
+        """
+        ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getrEq(self) -> float:
+        """
+            Getter for equatorial radius.
+        
+            Returns:
+                equatorial radius
+        
+        
+        """
+        ...
+
 class LenseThirringRelativity(org.orekit.forces.ForceModel):
     """
     public class LenseThirringRelativity extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
@@ -356,7 +527,7 @@ class LenseThirringRelativity(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -459,7 +630,7 @@ class NewtonianAttraction(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -577,7 +748,7 @@ class OceanTides(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -653,7 +824,7 @@ class Relativity(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -667,49 +838,41 @@ class Relativity(org.orekit.forces.ForceModel):
         ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
-class SingleBodyAbsoluteAttraction(org.orekit.forces.ForceModel):
+class SolidTides(org.orekit.forces.ForceModel):
     """
-    public class SingleBodyAbsoluteAttraction extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
-    
-        Body attraction force model computed as absolute acceleration towards a body.
-    
-        This force model represents the same physical principles as :class:`~org.orekit.forces.gravity.NewtonianAttraction`, but
-        has several major differences:
+    public class SolidTides extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
     
-          - the attracting body can be *away* from the integration frame center,
-          - several instances of this force model can be added when several bodies are involved,
-          - this force model is *never* automatically added by the numerical propagator
+        Solid tides force model.
     
+        Since:
+            6.1
+    """
+    DEFAULT_STEP: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_STEP
     
-        The possibility for the attracting body to be away from the frame center allows to use this force model when integrating
-        for example an interplanetary trajectory propagated in an Earth centered frame (in which case an instance of
-        :class:`~org.orekit.forces.inertia.InertialForces` must also be added to take into account the coupling effect of
-        relative frames motion).
+        Default step for tides field sampling (seconds).
     
-        The possibility to add several instances allows to use this in interplanetary trajectories or in trajectories about
-        Lagrangian points
+        Also see:
+            :meth:`~constant`
     
-        The fact this force model is *never* automatically added by the numerical propagator differs from
-        :class:`~org.orekit.forces.gravity.NewtonianAttraction` as :class:`~org.orekit.forces.gravity.NewtonianAttraction` may
-        be added automatically when propagating a trajectory represented as an :class:`~org.orekit.orbits.Orbit`, which must
-        always refer to a central body, if user did not add the :class:`~org.orekit.forces.gravity.NewtonianAttraction` or set
-        the central attraction coefficient by himself.
     
-        Also see:
-            :class:`~org.orekit.forces.inertia.InertialForces`
     """
-    ATTRACTION_COEFFICIENT_SUFFIX: typing.ClassVar[str] = ...
+    DEFAULT_POINTS: typing.ClassVar[int] = ...
     """
-    public static final :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ATTRACTION_COEFFICIENT_SUFFIX
+    public static final int DEFAULT_POINTS
     
-        Suffix for parameter name for attraction coefficient enabling Jacobian processing.
+        Default number of points tides field sampling.
     
         Also see:
             :meth:`~constant`
     
     
     """
-    def __init__(self, celestialBody: org.orekit.bodies.CelestialBody): ...
+    @typing.overload
+    def __init__(self, frame: org.orekit.frames.Frame, double: float, double2: float, tideSystem: org.orekit.forces.gravity.potential.TideSystem, boolean: bool, double3: float, int: int, iERSConventions: org.orekit.utils.IERSConventions, uT1Scale: org.orekit.time.UT1Scale, *celestialBody: org.orekit.bodies.CelestialBody): ...
+    @typing.overload
+    def __init__(self, frame: org.orekit.frames.Frame, double: float, double2: float, tideSystem: org.orekit.forces.gravity.potential.TideSystem, iERSConventions: org.orekit.utils.IERSConventions, uT1Scale: org.orekit.time.UT1Scale, *celestialBody: org.orekit.bodies.CelestialBody): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
@@ -748,7 +911,7 @@ class SingleBodyAbsoluteAttraction(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -760,24 +923,48 @@ class SingleBodyAbsoluteAttraction(org.orekit.forces.ForceModel):
         
         """
         ...
+    @typing.overload
+    def getEventDetectors(self, list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
+    @typing.overload
+    def getEventDetectors(self) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
+    _getFieldEventDetectors_0__T = typing.TypeVar('_getFieldEventDetectors_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _getFieldEventDetectors_1__T = typing.TypeVar('_getFieldEventDetectors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_0__T], list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_0__T]]: ...
+    @typing.overload
+    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_1__T]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_1__T]]: ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
-class SingleBodyRelativeAttraction(org.orekit.forces.ForceModel):
+class SingleBodyAbsoluteAttraction(AbstractBodyAttraction):
     """
-    public class SingleBodyRelativeAttraction extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
+    public class SingleBodyAbsoluteAttraction extends :class:`~org.orekit.forces.gravity.AbstractBodyAttraction`
     
-        Body attraction force model computed as relative acceleration towards frame center.
-    """
-    ATTRACTION_COEFFICIENT_SUFFIX: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ATTRACTION_COEFFICIENT_SUFFIX
+        Body attraction force model computed as absolute acceleration towards a body.
     
-        Suffix for parameter name for attraction coefficient enabling Jacobian processing.
+        This force model represents the same physical principles as :class:`~org.orekit.forces.gravity.NewtonianAttraction`, but
+        has several major differences:
     
-        Also see:
-            :meth:`~constant`
+          - the attracting body can be *away* from the integration frame center,
+          - several instances of this force model can be added when several bodies are involved,
+          - this force model is *never* automatically added by the numerical propagator
     
     
+        The possibility for the attracting body to be away from the frame center allows to use this force model when integrating
+        for example an interplanetary trajectory propagated in an Earth centered frame (in which case an instance of
+        :class:`~org.orekit.forces.inertia.InertialForces` must also be added to take into account the coupling effect of
+        relative frames motion).
+    
+        The possibility to add several instances allows to use this in interplanetary trajectories or in trajectories about
+        Lagrangian points
+    
+        The fact this force model is *never* automatically added by the numerical propagator differs from
+        :class:`~org.orekit.forces.gravity.NewtonianAttraction` as :class:`~org.orekit.forces.gravity.NewtonianAttraction` may
+        be added automatically when propagating a trajectory represented as an :class:`~org.orekit.orbits.Orbit`, which must
+        always refer to a central body, if user did not add the :class:`~org.orekit.forces.gravity.NewtonianAttraction` or set
+        the central attraction coefficient by himself.
+    
+        Also see:
+            :class:`~org.orekit.forces.inertia.InertialForces`
     """
     def __init__(self, celestialBody: org.orekit.bodies.CelestialBody): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -786,9 +973,6 @@ class SingleBodyRelativeAttraction(org.orekit.forces.ForceModel):
         """
             Compute acceleration.
         
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
-        
             Parameters:
                 s (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> s): current state information: date, kinematics, attitude
                 parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
@@ -804,9 +988,6 @@ class SingleBodyRelativeAttraction(org.orekit.forces.ForceModel):
         """
             Compute acceleration.
         
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
-        
             Parameters:
                 s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
                 parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
@@ -816,66 +997,20 @@ class SingleBodyRelativeAttraction(org.orekit.forces.ForceModel):
         
         """
         ...
-    def dependsOnPositionOnly(self) -> bool:
-        """
-            Check if force models depends on position only.
-        
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
-        
-            Returns:
-                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
-                attitude
-        
-        
-        """
-        ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
-class SolidTides(org.orekit.forces.ForceModel):
-    """
-    public class SolidTides extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
-    
-        Solid tides force model.
-    
-        Since:
-            6.1
-    """
-    DEFAULT_STEP: typing.ClassVar[float] = ...
-    """
-    public static final double DEFAULT_STEP
-    
-        Default step for tides field sampling (seconds).
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    DEFAULT_POINTS: typing.ClassVar[int] = ...
+class SingleBodyRelativeAttraction(AbstractBodyAttraction):
     """
-    public static final int DEFAULT_POINTS
-    
-        Default number of points tides field sampling.
-    
-        Also see:
-            :meth:`~constant`
-    
+    public class SingleBodyRelativeAttraction extends :class:`~org.orekit.forces.gravity.AbstractBodyAttraction`
     
+        Body attraction force model computed as relative acceleration towards frame center.
     """
-    @typing.overload
-    def __init__(self, frame: org.orekit.frames.Frame, double: float, double2: float, tideSystem: org.orekit.forces.gravity.potential.TideSystem, boolean: bool, double3: float, int: int, iERSConventions: org.orekit.utils.IERSConventions, uT1Scale: org.orekit.time.UT1Scale, *celestialBody: org.orekit.bodies.CelestialBody): ...
-    @typing.overload
-    def __init__(self, frame: org.orekit.frames.Frame, double: float, double2: float, tideSystem: org.orekit.forces.gravity.potential.TideSystem, iERSConventions: org.orekit.utils.IERSConventions, uT1Scale: org.orekit.time.UT1Scale, *celestialBody: org.orekit.bodies.CelestialBody): ...
+    def __init__(self, celestialBody: org.orekit.bodies.CelestialBody): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
         """
             Compute acceleration.
         
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
-        
             Parameters:
                 s (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> s): current state information: date, kinematics, attitude
                 parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
@@ -891,9 +1026,6 @@ class SolidTides(org.orekit.forces.ForceModel):
         """
             Compute acceleration.
         
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
-        
             Parameters:
                 s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
                 parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
@@ -903,48 +1035,12 @@ class SolidTides(org.orekit.forces.ForceModel):
         
         """
         ...
-    def dependsOnPositionOnly(self) -> bool:
-        """
-            Check if force models depends on position only.
-        
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
-        
-            Returns:
-                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
-                attitude
-        
-        
-        """
-        ...
-    @typing.overload
-    def getEventDetectors(self, list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
-    @typing.overload
-    def getEventDetectors(self) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
-    _getFieldEventDetectors_0__T = typing.TypeVar('_getFieldEventDetectors_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    _getFieldEventDetectors_1__T = typing.TypeVar('_getFieldEventDetectors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_0__T], list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_0__T]]: ...
-    @typing.overload
-    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_1__T]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_1__T]]: ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
-class ThirdBodyAttraction(org.orekit.forces.ForceModel):
+class ThirdBodyAttraction(AbstractBodyAttraction):
     """
-    public class ThirdBodyAttraction extends :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
+    public class ThirdBodyAttraction extends :class:`~org.orekit.forces.gravity.AbstractBodyAttraction`
     
         Third body attraction force model.
-    """
-    ATTRACTION_COEFFICIENT_SUFFIX: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.forces.gravity.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ATTRACTION_COEFFICIENT_SUFFIX
-    
-        Suffix for parameter name for attraction coefficient enabling Jacobian processing.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
     """
     def __init__(self, celestialBody: org.orekit.bodies.CelestialBody): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -953,9 +1049,6 @@ class ThirdBodyAttraction(org.orekit.forces.ForceModel):
         """
             Compute acceleration.
         
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
-        
             Parameters:
                 s (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> s): current state information: date, kinematics, attitude
                 parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
@@ -971,9 +1064,6 @@ class ThirdBodyAttraction(org.orekit.forces.ForceModel):
         """
             Compute acceleration.
         
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
-        
             Parameters:
                 s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
                 parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
@@ -983,21 +1073,6 @@ class ThirdBodyAttraction(org.orekit.forces.ForceModel):
         
         """
         ...
-    def dependsOnPositionOnly(self) -> bool:
-        """
-            Check if force models depends on position only.
-        
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
-        
-            Returns:
-                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
-                attitude
-        
-        
-        """
-        ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
 class ThirdBodyAttractionEpoch(ThirdBodyAttraction):
     """
@@ -1029,8 +1104,10 @@ class ThirdBodyAttractionEpoch(ThirdBodyAttraction):
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.forces.gravity")``.
 
+    AbstractBodyAttraction: typing.Type[AbstractBodyAttraction]
     DeSitterRelativity: typing.Type[DeSitterRelativity]
     HolmesFeatherstoneAttractionModel: typing.Type[HolmesFeatherstoneAttractionModel]
+    J2OnlyPerturbation: typing.Type[J2OnlyPerturbation]
     LenseThirringRelativity: typing.Type[LenseThirringRelativity]
     NewtonianAttraction: typing.Type[NewtonianAttraction]
     OceanTides: typing.Type[OceanTides]
diff --git a/org-stubs/orekit/forces/gravity/potential/__init__.pyi b/org-stubs/orekit/forces/gravity/potential/__init__.pyi
index c3f42fbbb87e29919be18f5dc684aae45bc12841..d32d0ab56835785eb886d046b8ad00a760a8b710 100644
--- a/org-stubs/orekit/forces/gravity/potential/__init__.pyi
+++ b/org-stubs/orekit/forces/gravity/potential/__init__.pyi
@@ -1353,7 +1353,7 @@ class SphericalHarmonicsProvider(TideSystemProvider):
         Two interfaces are provided to distinguish between normalized and un-normalized coefficients:
         :class:`~org.orekit.forces.gravity.potential.NormalizedSphericalHarmonicsProvider` and
         :class:`~org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider`. To account for gravity
-        pertubations all providers are capable of providing the coefficients on specific dates, using the
+        perturbations all providers are capable of providing the coefficients on specific dates, using the
         :meth:`~org.orekit.forces.gravity.potential.NormalizedSphericalHarmonicsProvider.onDate` methods.
     
         Typical usage when evaluating the geopotential:
@@ -1361,7 +1361,7 @@ class SphericalHarmonicsProvider(TideSystemProvider):
         .. code-block: java
         
              NormalizedSphericalHarmonicsProvider provider = ...;
-             NormalizedShpericalHarmonics coeffs = provider.onDate(date);
+             NormalizedSphericalHarmonics coeffs = provider.onDate(date);
              double c20 = coeffs.getNormalizedCnm(2, 0);
          
     
@@ -1436,6 +1436,22 @@ class NormalizedSphericalHarmonicsProvider(SphericalHarmonicsProvider):
         Also see:
             :class:`~org.orekit.forces.gravity.potential.GravityFields`
     """
+    def getNormalizedC20(self, absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Get the normalized coefficient of degree 2 and order 0 at a specific instance in time.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): of evaluation (may be null if model is not time-dependent)
+        
+            Returns:
+                normalized C20 on :code:`date`.
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
     def onDate(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'NormalizedSphericalHarmonicsProvider.NormalizedSphericalHarmonics':
         """
             Get the normalized spherical harmonic coefficients at a specific instance in time.
@@ -1506,6 +1522,22 @@ class UnnormalizedSphericalHarmonicsProvider(SphericalHarmonicsProvider):
         Also see:
             :class:`~org.orekit.forces.gravity.potential.GravityFields`
     """
+    def getUnnormalizedC20(self, absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Get the un-normalized coefficient of degree 2 and order 0 at a specific instance in time.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): of evaluation (may be null if model is not time-dependent)
+        
+            Returns:
+                un-normalized C20 on :code:`date`.
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
     def onDate(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics':
         """
             Get the un-normalized spherical harmonic coefficients at a specific instance in time.
diff --git a/org-stubs/orekit/forces/inertia/__init__.pyi b/org-stubs/orekit/forces/inertia/__init__.pyi
index c818173bbb4865c46e9a0dc615da2448689a7591..042b6cf7c58ddda1788741e0171a9bba4b909e9f 100644
--- a/org-stubs/orekit/forces/inertia/__init__.pyi
+++ b/org-stubs/orekit/forces/inertia/__init__.pyi
@@ -78,7 +78,7 @@ class InertialForces(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
diff --git a/org-stubs/orekit/forces/maneuvers/__init__.pyi b/org-stubs/orekit/forces/maneuvers/__init__.pyi
index 0ffefd504b14a1da3fd8c8d4dd939bb0cd999222..31c9c85ff6f8417fbfd467cb66584ebbe540db5a 100644
--- a/org-stubs/orekit/forces/maneuvers/__init__.pyi
+++ b/org-stubs/orekit/forces/maneuvers/__init__.pyi
@@ -448,7 +448,7 @@ class Maneuver(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -501,6 +501,36 @@ class Maneuver(org.orekit.forces.ForceModel):
                 the maneuver triggers
         
         
+        """
+        ...
+    _getManeuverTriggersParameters_1__T = typing.TypeVar('_getManeuverTriggersParameters_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getManeuverTriggersParameters(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
+        """
+            Extract maneuver triggers' parameters from the parameters' array called in by the ForceModel interface. Convention:
+            Propulsion parameters are given before maneuver triggers parameters
+        
+            Parameters:
+                parameters (double[]): parameters' array called in by ForceModel interface
+        
+            Returns:
+                maneuver triggers' parameters
+        
+        """
+        ...
+    @typing.overload
+    def getManeuverTriggersParameters(self, tArray: typing.Union[typing.List[_getManeuverTriggersParameters_1__T], jpype.JArray]) -> typing.MutableSequence[_getManeuverTriggersParameters_1__T]:
+        """
+            Extract maneuver triggers' parameters from the parameters' array called in by the ForceModel interface. Convention:
+            Propulsion parameters are given before maneuver triggers parameters
+        
+            Parameters:
+                parameters (T[]): parameters' array called in by ForceModel interface
+        
+            Returns:
+                maneuver triggers' parameters
+        
+        
         """
         ...
     def getName(self) -> str:
@@ -524,6 +554,36 @@ class Maneuver(org.orekit.forces.ForceModel):
                 the propulsion model
         
         
+        """
+        ...
+    _getPropulsionModelParameters_1__T = typing.TypeVar('_getPropulsionModelParameters_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getPropulsionModelParameters(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[float]:
+        """
+            Extract propulsion model parameters from the parameters' array called in by the ForceModel interface. Convention:
+            Propulsion parameters are given before maneuver triggers parameters
+        
+            Parameters:
+                parameters (double[]): parameters' array called in by ForceModel interface
+        
+            Returns:
+                propulsion model parameters
+        
+        """
+        ...
+    @typing.overload
+    def getPropulsionModelParameters(self, tArray: typing.Union[typing.List[_getPropulsionModelParameters_1__T], jpype.JArray]) -> typing.MutableSequence[_getPropulsionModelParameters_1__T]:
+        """
+            Extract propulsion model parameters from the parameters' array called in by the ForceModel interface. Convention:
+            Propulsion parameters are given before maneuver triggers parameters
+        
+            Parameters:
+                parameters (T[]): parameters' array called in by ForceModel interface
+        
+            Returns:
+                propulsion model parameters
+        
+        
         """
         ...
     _init_0__T = typing.TypeVar('_init_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -600,6 +660,10 @@ class SmallManeuverAnalyticalModel(org.orekit.propagation.analytical.AdapterProp
     @typing.overload
     def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, frame: org.orekit.frames.Frame, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double: float): ...
     @typing.overload
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, orbitType: org.orekit.orbits.OrbitType, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double: float): ...
+    @typing.overload
+    def __init__(self, spacecraftState: org.orekit.propagation.SpacecraftState, orbitType: org.orekit.orbits.OrbitType, frame: org.orekit.frames.Frame, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, double: float): ...
+    @typing.overload
     def apply(self, orbit: org.orekit.orbits.Orbit) -> org.orekit.orbits.Orbit:
         """
             Compute the effect of the maneuver on an orbit.
diff --git a/org-stubs/orekit/forces/maneuvers/jacobians/__init__.pyi b/org-stubs/orekit/forces/maneuvers/jacobians/__init__.pyi
index 4d1eaa228b39948822a1517c87b499cbec3cef26..f9c0425527bad5ef85f6f4c51b5e8b12408e4b96 100644
--- a/org-stubs/orekit/forces/maneuvers/jacobians/__init__.pyi
+++ b/org-stubs/orekit/forces/maneuvers/jacobians/__init__.pyi
@@ -51,6 +51,9 @@ class Duration(org.orekit.propagation.AdditionalStateProvider):
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Specified by:
                 :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
                 interface :class:`~org.orekit.propagation.AdditionalStateProvider`
@@ -218,6 +221,9 @@ class MedianDate(org.orekit.propagation.AdditionalStateProvider):
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Specified by:
                 :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
                 interface :class:`~org.orekit.propagation.AdditionalStateProvider`
@@ -364,6 +370,9 @@ class TriggerDate(org.orekit.propagation.AdditionalStateProvider, org.orekit.for
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Specified by:
                 :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
                 interface :class:`~org.orekit.propagation.AdditionalStateProvider`
diff --git a/org-stubs/orekit/forces/radiation/__init__.pyi b/org-stubs/orekit/forces/radiation/__init__.pyi
index a6b7ff5c75da9e9fa95c49092ecd5393de60cb4c..b20b129b9a710b4b33206e382debbe2b66702043 100644
--- a/org-stubs/orekit/forces/radiation/__init__.pyi
+++ b/org-stubs/orekit/forces/radiation/__init__.pyi
@@ -20,76 +20,6 @@ import typing
 
 
 
-class AbstractRadiationForceModel(org.orekit.forces.ForceModel):
-    """
-    public abstract class AbstractRadiationForceModel extends :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
-    
-        Base class for radiation force models.
-    
-        Since:
-            10.2
-    
-        Also see:
-            :class:`~org.orekit.forces.radiation.SolarRadiationPressure`, :class:`~org.orekit.forces.radiation.ECOM2`
-    """
-    @typing.overload
-    def addOccultingBody(self, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid) -> None:
-        """
-            Add a new occulting body.
-        
-            Central body is already considered, it shall not be added this way.
-        
-            Parameters:
-                provider (:class:`~org.orekit.utils.ExtendedPVCoordinatesProvider`): body PV provider
-                radius (double): body mean radius
-        
-            Also see:
-                :meth:`~org.orekit.forces.radiation.AbstractRadiationForceModel.addOccultingBody`
-        
-            Add a new occulting body.
-        
-            Central body is already considered, it shall not be added this way.
-        
-            Parameters:
-                occulting (:class:`~org.orekit.bodies.OneAxisEllipsoid`): occulting body to add
-        
-            Since:
-                12.0
-        
-            Also see:
-                :meth:`~org.orekit.forces.radiation.AbstractRadiationForceModel.addOccultingBody`
-        
-        
-        """
-        ...
-    @typing.overload
-    def addOccultingBody(self, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double: float) -> None: ...
-    def dependsOnPositionOnly(self) -> bool:
-        """
-            Check if force models depends on position only.
-        
-            Specified by:
-                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
-        
-            Returns:
-                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
-                attitude
-        
-        
-        """
-        ...
-    @typing.overload
-    def getEventDetectors(self, list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
-    @typing.overload
-    def getEventDetectors(self) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
-    _getFieldEventDetectors_0__T = typing.TypeVar('_getFieldEventDetectors_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    _getFieldEventDetectors_1__T = typing.TypeVar('_getFieldEventDetectors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_0__T], list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_0__T]]: ...
-    @typing.overload
-    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_1__T]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_1__T]]: ...
-    def getOccultingBodies(self) -> java.util.List[org.orekit.utils.OccultationEngine]: ...
-
 class KnockeRediffusedForceModel(org.orekit.forces.ForceModel):
     """
     public class KnockeRediffusedForceModel extends :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.ForceModel`
@@ -113,9 +43,9 @@ class KnockeRediffusedForceModel(org.orekit.forces.ForceModel):
             10.3
     """
     @typing.overload
-    def __init__(self, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, radiationSensitive: 'RadiationSensitive', double: float, double2: float): ...
+    def __init__(self, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], radiationSensitive: 'RadiationSensitive', double: float, double2: float): ...
     @typing.overload
-    def __init__(self, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, radiationSensitive: 'RadiationSensitive', double: float, double2: float, timeScale: org.orekit.time.TimeScale): ...
+    def __init__(self, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], radiationSensitive: 'RadiationSensitive', double: float, double2: float, timeScale: org.orekit.time.TimeScale): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
@@ -150,11 +80,139 @@ class KnockeRediffusedForceModel(org.orekit.forces.ForceModel):
             Returns:
                 acceleration in same frame as state
         
+        """
+        ...
+    _computeAlbedo_1__T = typing.TypeVar('_computeAlbedo_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def computeAlbedo(self, absoluteDate: org.orekit.time.AbsoluteDate, double: float) -> float:
+        """
+            Compute Earth albedo. Albedo value represents the fraction of solar radiative flux that is reflected by Earth. Its value
+            is in [0;1].
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date
+                phi (double): the equatorial latitude in rad
+        
+            Returns:
+                the albedo in [0;1]
+        
+        """
+        ...
+    @typing.overload
+    def computeAlbedo(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_computeAlbedo_1__T], t: _computeAlbedo_1__T) -> _computeAlbedo_1__T:
+        """
+            Compute Earth albedo. Albedo value represents the fraction of solar radiative flux that is reflected by Earth. Its value
+            is in [0;1].
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): the date
+                phi (T): the equatorial latitude in rad
+        
+            Returns:
+                the albedo in [0;1]
+        
+        
+        """
+        ...
+    _computeElementaryFlux_0__T = typing.TypeVar('_computeElementaryFlux_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def computeElementaryFlux(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_computeElementaryFlux_0__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_computeElementaryFlux_0__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_computeElementaryFlux_0__T], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, t: _computeElementaryFlux_0__T) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_computeElementaryFlux_0__T]:
+        """
+            Compute elementary rediffused flux on satellite.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> state): the current spacecraft state
+                elementCenter (:class:`~org.orekit.forces.radiation.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> elementCenter): the position of the considered area center
+                sunPosition (:class:`~org.orekit.forces.radiation.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> sunPosition): the position of the Sun in the spacecraft frame
+                earth (:class:`~org.orekit.bodies.OneAxisEllipsoid`): the Earth model
+                elementArea (T): the area of the current element
+        
+            Returns:
+                the rediffused flux from considered element on the spacecraft
+        
+        
+        """
+        ...
+    @typing.overload
+    def computeElementaryFlux(self, spacecraftState: org.orekit.propagation.SpacecraftState, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute elementary rediffused flux on satellite.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): the current spacecraft state
+                elementCenter (:class:`~org.orekit.forces.radiation.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): the position of the considered area center
+                sunPosition (:class:`~org.orekit.forces.radiation.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): the position of the Sun in the spacecraft frame
+                earth (:class:`~org.orekit.bodies.OneAxisEllipsoid`): the Earth model
+                elementArea (double): the area of the current element
+        
+            Returns:
+                the rediffused flux from considered element on the spacecraft
+        
+        """
+        ...
+    _computeEmissivity_1__T = typing.TypeVar('_computeEmissivity_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def computeEmissivity(self, absoluteDate: org.orekit.time.AbsoluteDate, double: float) -> float:
+        """
+            Compute Earth emisivity. Emissivity is used to compute the infrared flux that is emitted by Earth. Its value is in
+            [0;1].
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date
+                phi (double): the equatorial latitude in rad
+        
+            Returns:
+                the emissivity in [0;1]
+        
+        """
+        ...
+    @typing.overload
+    def computeEmissivity(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_computeEmissivity_1__T], t: _computeEmissivity_1__T) -> _computeEmissivity_1__T:
+        """
+            Compute Earth emisivity. Emissivity is used to compute the infrared flux that is emitted by Earth. Its value is in
+            [0;1].
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): the date
+                phi (T): the equatorial latitude in rad
+        
+            Returns:
+                the emissivity in [0;1]
+        
+        
+        """
+        ...
+    _computeSolarFlux_1__T = typing.TypeVar('_computeSolarFlux_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def computeSolarFlux(self, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D) -> float:
+        """
+            Compute total solar flux impacting Earth.
+        
+            Parameters:
+                sunPosition (:class:`~org.orekit.forces.radiation.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): the Sun position in an Earth centered frame
+        
+            Returns:
+                the total solar flux impacting Earth in J/m^3
+        
+        """
+        ...
+    @typing.overload
+    def computeSolarFlux(self, fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_computeSolarFlux_1__T]) -> _computeSolarFlux_1__T:
+        """
+            Compute total solar flux impacting Earth.
+        
+            Parameters:
+                sunPosition (:class:`~org.orekit.forces.radiation.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> sunPosition): the Sun position in an Earth centered frame
+        
+            Returns:
+                the total solar flux impacting Earth in J/m^3
+        
+        
         """
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
@@ -168,6 +226,72 @@ class KnockeRediffusedForceModel(org.orekit.forces.ForceModel):
         ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
 
+class LightFluxModel:
+    """
+    public interface LightFluxModel
+    
+        Interface describing flux models from a light source, including shadowing effects from occulting bodies. Defines the
+        flux vector itself as well as detectors for entry and exit of the different eclipse zones, if any.
+    
+        Since:
+            12.1
+    """
+    def getEclipseConditionsDetector(self) -> java.util.List[org.orekit.propagation.events.EventDetector]: ...
+    _getFieldEclipseConditionsDetector__T = typing.TypeVar('_getFieldEclipseConditionsDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    def getFieldEclipseConditionsDetector(self, field: org.hipparchus.Field[_getFieldEclipseConditionsDetector__T]) -> java.util.List[org.orekit.propagation.events.FieldEventDetector[_getFieldEclipseConditionsDetector__T]]: ...
+    _getLightFluxVector_0__T = typing.TypeVar('_getLightFluxVector_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getLightFluxVector(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_getLightFluxVector_0__T]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_getLightFluxVector_0__T]:
+        """
+            Get the light flux vector in the state's frame. Field version.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> state): state
+        
+            Returns:
+                light flux
+        
+        
+        """
+        ...
+    @typing.overload
+    def getLightFluxVector(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Get the light flux vector in the state's frame.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): state
+        
+            Returns:
+                light flux
+        
+        """
+        ...
+
+class RadiationForceModel(org.orekit.forces.ForceModel):
+    """
+    public interface RadiationForceModel extends :class:`~org.orekit.forces.ForceModel`
+    
+        Interface for radiation-related force models.
+    
+        Since:
+            12.1
+    """
+    def dependsOnPositionOnly(self) -> bool:
+        """
+            Check if force model depends on position only at a given, fixed date.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Returns:
+                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
+                attitude
+        
+        
+        """
+        ...
+
 class RadiationSensitive:
     """
     public interface RadiationSensitive
@@ -253,88 +377,121 @@ class RadiationSensitive:
         """
         ...
 
-class ECOM2(AbstractRadiationForceModel):
+class AbstractLightFluxModel(LightFluxModel):
     """
-    public class ECOM2 extends :class:`~org.orekit.forces.radiation.AbstractRadiationForceModel`
-    
-        The Empirical CODE Orbit Model 2 (ECOM2) of the Center for Orbit Determination in Europe (CODE).
-    
-        The drag acceleration is computed as follows : γ = γ :sub:`0` + D(u)e :sub:`D` + Y(u)e :sub:`Y` + B(u)e :sub:`B`
-    
-        In the above equation, γ :sub:`0` is a selectable a priori model. Since 2013, no a priori model is used for CODE IGS
-        contribution (i.e. γ :sub:`0` = 0). Moreover, u denotes the satellite's argument of latitude.
-    
-        D(u), Y(u) and B(u) are three functions of the ECOM2 model that can be represented as Fourier series. The coefficients
-        of the Fourier series are estimated during the estimation process. he ECOM2 model has user-defines upper limits *nD* and
-        *nB* for the Fourier series (i.e. *nD* for D(u) and *nB* for B(u). Y(u) is defined as a constant value).
-    
-        It exists several configurations to initialize *nD* and *nB* values. However, Arnold et al recommend to use **D2B1**
-        (i.e. *nD* = 1 and *nB* = 1) and **D4B1** (i.e. *nD* = 2 an *nB* = 1) configurations. At the opposite, in Arnold paper,
-        it is recommend to not use **D2B0** (i.e. *nD* = 1 and *nB* = 0) configuration.
-    
-        Since Orekit 11.0, it is possible to take into account the eclipses generated by Moon in the solar radiation pressure
-        force model using the :meth:`~org.orekit.forces.radiation.AbstractRadiationForceModel.addOccultingBody` method.
-    
-    
-        :code:`ECOM2 srp =` :code:`new ECOM2(1, 1, 0.0, CelestialBodyFactory.getSun(),
-        Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS);`
-    
-    
-        :code:`srp.addOccultingBody(CelestialBodyFactory.getMoon(), Constants.MOON_EQUATORIAL_RADIUS);`
-    
+    public abstract class AbstractLightFluxModel extends :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.radiation.LightFluxModel`
     
+        Abstract class for light flux models. Via the definition of the lighting ratio and the unocculted flux vector, derives
+        the final value.
     
         Since:
-            10.2
+            12.1
     
         Also see:
-            "Arnold, Daniel, et al, CODE’s new solar radiation pressure model for GNSS orbit determination, Journal of geodesy
-            89.8 (2015): 775-791.", "Tzu-Pang tseng and Michael Moore, Impact of solar radiation pressure mis-modeling on GNSS
-            satellite orbit determination, IGS Worshop, Wuhan, China, 2018."
-    """
-    ECOM_COEFFICIENT: typing.ClassVar[str] = ...
+            :class:`~org.orekit.forces.radiation.LightFluxModel`
     """
-    public static final :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ECOM_COEFFICIENT
-    
-        Parameter name for ECOM model coefficients enabling Jacobian processing.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    def __init__(self, int: int, int2: int, double: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double2: float): ...
-    _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _getLightFluxVector_0__T = typing.TypeVar('_getLightFluxVector_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
+    def getLightFluxVector(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_getLightFluxVector_0__T]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_getLightFluxVector_0__T]:
         """
-            Compute acceleration.
+            Get the light flux vector in the state's frame. Field version.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.radiation.LightFluxModel.getLightFluxVector` in
+                interface :class:`~org.orekit.forces.radiation.LightFluxModel`
         
             Parameters:
-                s (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> s): current state information: date, kinematics, attitude
-                parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+                state (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> state): state
         
             Returns:
-                acceleration in same frame as state
+                light flux
         
         
         """
         ...
     @typing.overload
-    def acceleration(self, spacecraftState: org.orekit.propagation.SpacecraftState, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+    def getLightFluxVector(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
-            Compute acceleration.
+            Get the light flux vector in the state's frame.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.radiation.LightFluxModel.getLightFluxVector` in
+                interface :class:`~org.orekit.forces.radiation.LightFluxModel`
         
             Parameters:
-                s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
-                parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+                state (:class:`~org.orekit.propagation.SpacecraftState`): state
         
             Returns:
-                acceleration in same frame as state
+                light flux
         
         """
         ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getOccultedBody(self) -> org.orekit.utils.ExtendedPositionProvider:
+        """
+            Getter for the occulted body's position provider.
+        
+            Returns:
+                occulted body
+        
+        
+        """
+        ...
+
+class AbstractRadiationForceModel(RadiationForceModel):
+    """
+    public abstract class AbstractRadiationForceModel extends :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.radiation.RadiationForceModel`
+    
+        Base class for radiation force models.
+    
+        Since:
+            10.2
+    
+        Also see:
+            :class:`~org.orekit.forces.radiation.SolarRadiationPressure`, :class:`~org.orekit.forces.radiation.ECOM2`
+    """
+    @typing.overload
+    def addOccultingBody(self, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid) -> None:
+        """
+            Add a new occulting body.
+        
+            Central body is already considered, it shall not be added this way.
+        
+            Parameters:
+                provider (:class:`~org.orekit.utils.ExtendedPVCoordinatesProvider`): body PV provider
+                radius (double): body mean radius
+        
+            Also see:
+                :meth:`~org.orekit.forces.radiation.AbstractRadiationForceModel.addOccultingBody`
+        
+            Add a new occulting body.
+        
+            Central body is already considered, it shall not be added this way.
+        
+            Parameters:
+                occulting (:class:`~org.orekit.bodies.OneAxisEllipsoid`): occulting body to add
+        
+            Since:
+                12.0
+        
+            Also see:
+                :meth:`~org.orekit.forces.radiation.AbstractRadiationForceModel.addOccultingBody`
+        
+        
+        """
+        ...
+    @typing.overload
+    def addOccultingBody(self, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double: float) -> None: ...
+    @typing.overload
+    def getEventDetectors(self, list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
+    @typing.overload
+    def getEventDetectors(self) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
+    _getFieldEventDetectors_0__T = typing.TypeVar('_getFieldEventDetectors_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _getFieldEventDetectors_1__T = typing.TypeVar('_getFieldEventDetectors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_0__T], list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_0__T]]: ...
+    @typing.overload
+    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_1__T]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_1__T]]: ...
+    def getOccultingBodies(self) -> java.util.List[org.orekit.utils.OccultationEngine]: ...
 
 class IsotropicRadiationCNES95Convention(RadiationSensitive):
     """
@@ -534,6 +691,223 @@ class IsotropicRadiationSingleCoefficient(RadiationSensitive):
         """
         ...
 
+class RadiationPressureModel(RadiationForceModel):
+    """
+    public class RadiationPressureModel extends :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.forces.radiation.RadiationForceModel`
+    
+        Class representing a light-induced radiation pressure force, by leveraging on a given flux model.
+    
+        This class should not be used in addition to :class:`~org.orekit.forces.radiation.SolarRadiationPressure`, which is
+        another way of representing the same orbital perturbation.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.forces.radiation.LightFluxModel`, :class:`~org.orekit.forces.radiation.RadiationSensitive`
+    """
+    def __init__(self, lightFluxModel: LightFluxModel, radiationSensitive: RadiationSensitive): ...
+    _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
+        """
+            Compute acceleration.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> s): current state information: date, kinematics, attitude
+                parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+        
+            Returns:
+                acceleration in same frame as state
+        
+        
+        """
+        ...
+    @typing.overload
+    def acceleration(self, spacecraftState: org.orekit.propagation.SpacecraftState, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute acceleration.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.acceleration` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
+                parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+        
+            Returns:
+                acceleration in same frame as state
+        
+        """
+        ...
+    def dependsOnPositionOnly(self) -> bool:
+        """
+            Check if force model depends on position only at a given, fixed date.
+        
+            Specified by:
+                :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
+        
+            Specified by:
+                :meth:`~org.orekit.forces.radiation.RadiationForceModel.dependsOnPositionOnly` in
+                interface :class:`~org.orekit.forces.radiation.RadiationForceModel`
+        
+            Returns:
+                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
+                attitude
+        
+        
+        """
+        ...
+    @typing.overload
+    def getEventDetectors(self, list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
+    @typing.overload
+    def getEventDetectors(self) -> java.util.stream.Stream[org.orekit.propagation.events.EventDetector]: ...
+    _getFieldEventDetectors_0__T = typing.TypeVar('_getFieldEventDetectors_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _getFieldEventDetectors_1__T = typing.TypeVar('_getFieldEventDetectors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_0__T], list: java.util.List[org.orekit.utils.ParameterDriver]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_0__T]]: ...
+    @typing.overload
+    def getFieldEventDetectors(self, field: org.hipparchus.Field[_getFieldEventDetectors_1__T]) -> java.util.stream.Stream[org.orekit.propagation.events.FieldEventDetector[_getFieldEventDetectors_1__T]]: ...
+    def getLightFluxModel(self) -> LightFluxModel:
+        """
+            Getter for light flux model.
+        
+            Returns:
+                flux model
+        
+        
+        """
+        ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getRadiationSensitive(self) -> RadiationSensitive:
+        """
+            Getter for radiation sensitive object.
+        
+            Returns:
+                radiation sensitive object
+        
+        
+        """
+        ...
+
+class CylindricallyShadowedLightFluxModel(AbstractLightFluxModel):
+    """
+    public class CylindricallyShadowedLightFluxModel extends :class:`~org.orekit.forces.radiation.AbstractLightFluxModel`
+    
+        Class defining a flux model with a single occulting body, casting a shadow whose shape is a circular cylinder
+        (equivalent to the light source being infinitely distant). It is less accurate but faster to evaluate than a conical
+        model.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.forces.radiation.AbstractLightFluxModel`, :class:`~org.orekit.forces.radiation.LightFluxModel`
+    """
+    @typing.overload
+    def __init__(self, double: float, extendedPositionProvider: typing.Union[org.orekit.utils.ExtendedPositionProvider, typing.Callable], double2: float): ...
+    @typing.overload
+    def __init__(self, extendedPositionProvider: typing.Union[org.orekit.utils.ExtendedPositionProvider, typing.Callable], double: float): ...
+    def getEclipseConditionsDetector(self) -> java.util.List[org.orekit.propagation.events.EventDetector]: ...
+    _getFieldEclipseConditionsDetector__T = typing.TypeVar('_getFieldEclipseConditionsDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    def getFieldEclipseConditionsDetector(self, field: org.hipparchus.Field[_getFieldEclipseConditionsDetector__T]) -> java.util.List[org.orekit.propagation.events.FieldEventDetector[_getFieldEclipseConditionsDetector__T]]: ...
+    def getOccultingBodyRadius(self) -> float:
+        """
+            Getter for occulting body radius.
+        
+            Returns:
+                radius
+        
+        
+        """
+        ...
+
+class ECOM2(AbstractRadiationForceModel):
+    """
+    public class ECOM2 extends :class:`~org.orekit.forces.radiation.AbstractRadiationForceModel`
+    
+        The Empirical CODE Orbit Model 2 (ECOM2) of the Center for Orbit Determination in Europe (CODE).
+    
+        The drag acceleration is computed as follows : γ = γ :sub:`0` + D(u)e :sub:`D` + Y(u)e :sub:`Y` + B(u)e :sub:`B`
+    
+        In the above equation, γ :sub:`0` is a selectable a priori model. Since 2013, no a priori model is used for CODE IGS
+        contribution (i.e. γ :sub:`0` = 0). Moreover, u denotes the satellite's argument of latitude.
+    
+        D(u), Y(u) and B(u) are three functions of the ECOM2 model that can be represented as Fourier series. The coefficients
+        of the Fourier series are estimated during the estimation process. he ECOM2 model has user-defines upper limits *nD* and
+        *nB* for the Fourier series (i.e. *nD* for D(u) and *nB* for B(u). Y(u) is defined as a constant value).
+    
+        It exists several configurations to initialize *nD* and *nB* values. However, Arnold et al recommend to use **D2B1**
+        (i.e. *nD* = 1 and *nB* = 1) and **D4B1** (i.e. *nD* = 2 an *nB* = 1) configurations. At the opposite, in Arnold paper,
+        it is recommend to not use **D2B0** (i.e. *nD* = 1 and *nB* = 0) configuration.
+    
+        Since Orekit 11.0, it is possible to take into account the eclipses generated by Moon in the solar radiation pressure
+        force model using the :meth:`~org.orekit.forces.radiation.AbstractRadiationForceModel.addOccultingBody` method.
+    
+    
+        :code:`ECOM2 srp =` :code:`new ECOM2(1, 1, 0.0, CelestialBodyFactory.getSun(),
+        Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS);`
+    
+    
+        :code:`srp.addOccultingBody(CelestialBodyFactory.getMoon(), Constants.MOON_EQUATORIAL_RADIUS);`
+    
+    
+    
+        Since:
+            10.2
+    
+        Also see:
+            "Arnold, Daniel, et al, CODE’s new solar radiation pressure model for GNSS orbit determination, Journal of geodesy
+            89.8 (2015): 775-791.", "Tzu-Pang tseng and Michael Moore, Impact of solar radiation pressure mis-modeling on GNSS
+            satellite orbit determination, IGS Worshop, Wuhan, China, 2018."
+    """
+    ECOM_COEFFICIENT: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.forces.radiation.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` ECOM_COEFFICIENT
+    
+        Parameter name for ECOM model coefficients enabling Jacobian processing.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def __init__(self, int: int, int2: int, double: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double2: float): ...
+    _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
+        """
+            Compute acceleration.
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> s): current state information: date, kinematics, attitude
+                parameters (T[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+        
+            Returns:
+                acceleration in same frame as state
+        
+        
+        """
+        ...
+    @typing.overload
+    def acceleration(self, spacecraftState: org.orekit.propagation.SpacecraftState, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute acceleration.
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): current state information: date, kinematics, attitude
+                parameters (double[]): values of the force model parameters at state date, only 1 value for each parameterDriver
+        
+            Returns:
+                acceleration in same frame as state
+        
+        """
+        ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+
 class SolarRadiationPressure(AbstractRadiationForceModel):
     """
     public class SolarRadiationPressure extends :class:`~org.orekit.forces.radiation.AbstractRadiationForceModel`
@@ -553,9 +927,9 @@ class SolarRadiationPressure(AbstractRadiationForceModel):
         :code:`srp.addOccultingBody(CelestialBodyFactory.getMoon(), Constants.MOON_EQUATORIAL_RADIUS);`
     """
     @typing.overload
-    def __init__(self, double: float, double2: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: RadiationSensitive): ...
+    def __init__(self, double: float, double2: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: RadiationSensitive): ...
     @typing.overload
-    def __init__(self, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: RadiationSensitive): ...
+    def __init__(self, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: RadiationSensitive): ...
     _acceleration_0__T = typing.TypeVar('_acceleration_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def acceleration(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_acceleration_0__T], tArray: typing.Union[typing.List[_acceleration_0__T], jpype.JArray]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_acceleration_0__T]:
@@ -584,6 +958,17 @@ class SolarRadiationPressure(AbstractRadiationForceModel):
             Returns:
                 acceleration in same frame as state
         
+        """
+        ...
+    def dependsOnPositionOnly(self) -> bool:
+        """
+            Check if force model depends on position only at a given, fixed date.
+        
+            Returns:
+                true if force model depends on position only, false if it depends on velocity, either directly or due to a dependency on
+                attitude
+        
+        
         """
         ...
     _getLightingRatio_1__T = typing.TypeVar('_getLightingRatio_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -621,16 +1006,34 @@ class SolarRadiationPressure(AbstractRadiationForceModel):
         """
         ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getRadiationSensitiveSpacecraft(self) -> RadiationSensitive:
+        """
+            Getter for radiation-sensitive spacecraft.
+        
+            Returns:
+                radiation-sensitive model
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
 
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.forces.radiation")``.
 
+    AbstractLightFluxModel: typing.Type[AbstractLightFluxModel]
     AbstractRadiationForceModel: typing.Type[AbstractRadiationForceModel]
+    CylindricallyShadowedLightFluxModel: typing.Type[CylindricallyShadowedLightFluxModel]
     ECOM2: typing.Type[ECOM2]
     IsotropicRadiationCNES95Convention: typing.Type[IsotropicRadiationCNES95Convention]
     IsotropicRadiationClassicalConvention: typing.Type[IsotropicRadiationClassicalConvention]
     IsotropicRadiationSingleCoefficient: typing.Type[IsotropicRadiationSingleCoefficient]
     KnockeRediffusedForceModel: typing.Type[KnockeRediffusedForceModel]
+    LightFluxModel: typing.Type[LightFluxModel]
+    RadiationForceModel: typing.Type[RadiationForceModel]
+    RadiationPressureModel: typing.Type[RadiationPressureModel]
     RadiationSensitive: typing.Type[RadiationSensitive]
     SolarRadiationPressure: typing.Type[SolarRadiationPressure]
diff --git a/org-stubs/orekit/frames/__init__.pyi b/org-stubs/orekit/frames/__init__.pyi
index 9b504b6ec93d7001c7715673f7981dd7295d05ec..b5c476ee797f949ab71e9a0a47004cf511d6001b 100644
--- a/org-stubs/orekit/frames/__init__.pyi
+++ b/org-stubs/orekit/frames/__init__.pyi
@@ -715,6 +715,7 @@ class FieldStaticTransform(org.orekit.time.TimeStamped, typing.Generic[_FieldSta
         
         """
         ...
+    def getFieldDate(self) -> org.orekit.time.FieldAbsoluteDate[_FieldStaticTransform__T]: ...
     _getIdentity__T = typing.TypeVar('_getIdentity__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
     def getIdentity(field: org.hipparchus.Field[_getIdentity__T]) -> 'FieldStaticTransform'[_getIdentity__T]:
@@ -732,6 +733,7 @@ class FieldStaticTransform(org.orekit.time.TimeStamped, typing.Generic[_FieldSta
         ...
     def getInverse(self) -> 'FieldStaticTransform'[_FieldStaticTransform__T]: ...
     def getRotation(self) -> org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldStaticTransform__T]: ...
+    def getStaticInverse(self) -> 'FieldStaticTransform'[_FieldStaticTransform__T]: ...
     def getTranslation(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldStaticTransform__T]: ...
     _of_0__T = typing.TypeVar('_of_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     _of_1__T = typing.TypeVar('_of_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -912,6 +914,51 @@ class Frame(java.io.Serializable):
                 a frozen version of the instance
         
         
+        """
+        ...
+    _getKinematicTransformTo_0__T = typing.TypeVar('_getKinematicTransformTo_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getKinematicTransformTo(self, frame: 'Frame', fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getKinematicTransformTo_0__T]) -> 'FieldKinematicTransform'[_getKinematicTransformTo_0__T]:
+        """
+            Get the kinematic portion of the transform from the instance to another frame. The returned transform is kinematic in
+            the sense that it includes translations and rotations, with rates, but cannot transform an acceleration vector.
+        
+            This method is often more performant than :meth:`~org.orekit.frames.Frame.getTransformTo` when accelerations are not
+            needed.
+        
+            Parameters:
+                destination (:class:`~org.orekit.frames.Frame`): destination frame to which we want to transform vectors
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): the date (*must* be non-null, which is a more stringent condition * than in
+                    :meth:`~org.orekit.frames.Frame.getKinematicTransformTo`)
+        
+            Returns:
+                kinematic transform from the instance to the destination frame
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
+    @typing.overload
+    def getKinematicTransformTo(self, frame: 'Frame', absoluteDate: org.orekit.time.AbsoluteDate) -> 'KinematicTransform':
+        """
+            Get the kinematic portion of the transform from the instance to another frame. The returned transform is kinematic in
+            the sense that it includes translations and rotations, with rates, but cannot transform an acceleration vector.
+        
+            This method is often more performant than :meth:`~org.orekit.frames.Frame.getTransformTo` when accelerations are not
+            needed.
+        
+            Parameters:
+                destination (:class:`~org.orekit.frames.Frame`): destination frame to which we want to transform vectors
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date (can be null if it is sure than no date dependent frame is used)
+        
+            Returns:
+                kinematic transform from the instance to the destination frame
+        
+            Since:
+                12.1
+        
         """
         ...
     def getName(self) -> str:
@@ -2179,6 +2226,21 @@ class StaticTransform(org.orekit.time.TimeStamped):
                 underlying elementary rotation
         
         
+        """
+        ...
+    def getStaticInverse(self) -> 'StaticTransform':
+        """
+            Get the inverse transform of the instance in static form (without rates). This enables to create a purely static
+            inverse, as inheritors such as :class:`~org.orekit.frames.Transform` may have a relatively computationally-heavy
+            #getInverse() method.
+        
+            Returns:
+                inverse static transform of the instance
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def getTranslation(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
@@ -2340,6 +2402,46 @@ class TransformProvider(java.io.Serializable):
     
         The transform provider interface is mainly used to define the transform between a frame and its parent frame.
     """
+    _getKinematicTransform_0__T = typing.TypeVar('_getKinematicTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getKinematicTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getKinematicTransform_0__T]) -> 'FieldKinematicTransform'[_getKinematicTransform_0__T]:
+        """
+            Get a transform for position and velocity, not acceleration.
+        
+            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            override it for better performance.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date.
+        
+            Returns:
+                the kinematic transform.
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
+    @typing.overload
+    def getKinematicTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'KinematicTransform':
+        """
+            Get a transform for position and velocity, not acceleration.
+        
+            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            override it for better performance.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date.
+        
+            Returns:
+                the kinematic transform.
+        
+            Since:
+                12.1
+        
+        """
+        ...
     _getStaticTransform_0__T = typing.TypeVar('_getStaticTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def getStaticTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getStaticTransform_0__T]) -> FieldStaticTransform[_getStaticTransform_0__T]:
@@ -2366,7 +2468,7 @@ class TransformProvider(java.io.Serializable):
         """
             Get a transform for only rotations and translations on the specified date.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            The default implementation calls :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
             override it for better performance.
         
             Parameters:
@@ -2625,182 +2727,181 @@ class FactoryManagedFrame(Frame):
         """
         ...
 
-_FieldTransform__T = typing.TypeVar('_FieldTransform__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldTransform(org.orekit.time.FieldTimeShiftable['FieldTransform'[_FieldTransform__T], _FieldTransform__T], FieldStaticTransform[_FieldTransform__T], typing.Generic[_FieldTransform__T]):
+_FieldKinematicTransform__T = typing.TypeVar('_FieldKinematicTransform__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldKinematicTransform(FieldStaticTransform[_FieldKinematicTransform__T], typing.Generic[_FieldKinematicTransform__T]):
     """
-    public class FieldTransform<T extends :class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.FieldTimeShiftable`<:class:`~org.orekit.frames.FieldTransform`<T>, T>, :class:`~org.orekit.frames.FieldStaticTransform`<T>
-    
-        Transformation class in three-dimensional space.
-    
-        This class represents the transformation engine between :class:`~org.orekit.frames.Frame`. It is used both to define the
-        relationship between each frame and its parent frame and to gather all individual transforms into one operation when
-        converting between frames far away from each other.
-    
-        The convention used in OREKIT is vectorial transformation. It means that a transformation is defined as a transform to
-        apply to the coordinates of a vector expressed in the old frame to obtain the same vector expressed in the new frame.
+    public interface FieldKinematicTransform<T extends :class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.frames.FieldStaticTransform`<T>
     
-        Instances of this class are guaranteed to be immutable.
-    
-        Examples
-    ----------
-    
-    
-        Example of translation from R :sub:`A` to R :sub:`B`
-    ------------------------------------------------------
-    
-    
-        We want to transform the :class:`~org.orekit.utils.FieldPVCoordinates` PV :sub:`A` to PV :sub:`B` with :
-    
-        PV :sub:`A` = ({1, 0, 0}, {2, 0, 0}, {3, 0, 0});
-    
-    
-        PV :sub:`B` = ({0, 0, 0}, {0, 0, 0}, {0, 0, 0});
+        A transform that only includes translation and rotation as well as their respective rates. It is kinematic in the sense
+        that it cannot transform an acceleration vector.
     
-        The transform to apply then is defined as follows :
+        Since:
+            12.1
     
-        .. code-block: java
+        Also see:
+            :class:`~org.orekit.frames.FieldStaticTransform`, :class:`~org.orekit.frames.FieldTransform`,
+            :class:`~org.orekit.frames.KinematicTransform`
+    """
+    _compose__T = typing.TypeVar('_compose__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def compose(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_compose__T], fieldKinematicTransform: 'FieldKinematicTransform'[_compose__T], fieldKinematicTransform2: 'FieldKinematicTransform'[_compose__T]) -> 'FieldKinematicTransform'[_compose__T]:
+        """
+            Build a transform by combining two existing ones.
         
-         Vector3D translation  = new Vector3D(-1, 0, 0);
-         Vector3D velocity     = new Vector3D(-2, 0, 0);
-         Vector3D acceleration = new Vector3D(-3, 0, 0);
+            Note that the dates of the two existing transformed are *ignored*, and the combined transform date is set to the date
+            supplied in this constructor without any attempt to shift the raw transforms. This is a design choice allowing user full
+            control of the combination.
         
-         Transform R1toR2 = new Transform(date, translation, velocity, acceleration);
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date of the transform
+                first (:class:`~org.orekit.frames.FieldKinematicTransform`<T> first): first transform applied
+                second (:class:`~org.orekit.frames.FieldKinematicTransform`<T> second): second transform applied
         
-         PVB = R1toR2.transformPVCoordinate(PVA);
-         
-    
-        Example of rotation from R :sub:`A` to R :sub:`B`
-    ---------------------------------------------------
-    
-    
-        We want to transform the :class:`~org.orekit.utils.FieldPVCoordinates` PV :sub:`A` to PV :sub:`B` with
-    
-        PV :sub:`A` = ({1, 0, 0}, { 1, 0, 0});
-    
-    
-        PV :sub:`B` = ({0, 1, 0}, {-2, 1, 0});
-    
-        The transform to apply then is defined as follows :
-    
-        .. code-block: java
+            Returns:
+                the newly created kinematic transform that has the same effect as applying :code:`first`, then :code:`second`.
         
-         Rotation rotation = new Rotation(Vector3D.PLUS_K, FastMath.PI / 2);
-         Vector3D rotationRate = new Vector3D(0, 0, -2);
+            Also see:
+                :meth:`~org.orekit.frames.FieldKinematicTransform.of`
         
-         Transform R1toR2 = new Transform(rotation, rotationRate);
         
-         PVB = R1toR2.transformPVCoordinates(PVA);
-         
-    
-        Since:
-            9.0
-    """
-    @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_FieldTransform__T], transform: 'Transform'): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D3: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldTransform: 'FieldTransform'[_FieldTransform__T], fieldTransform2: 'FieldTransform'[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldAngularCoordinates: org.orekit.utils.FieldAngularCoordinates[_FieldTransform__T]): ...
-    @typing.overload
-    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]): ...
-    def freeze(self) -> 'FieldTransform'[_FieldTransform__T]: ...
-    def getAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
-    def getAngular(self) -> org.orekit.utils.FieldAngularCoordinates[_FieldTransform__T]: ...
-    def getCartesian(self) -> org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]: ...
-    def getDate(self) -> org.orekit.time.AbsoluteDate:
         """
-            Get the date.
+        ...
+    _compositeRotationRate__T = typing.TypeVar('_compositeRotationRate__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def compositeRotationRate(fieldKinematicTransform: 'FieldKinematicTransform'[_compositeRotationRate__T], fieldKinematicTransform2: 'FieldKinematicTransform'[_compositeRotationRate__T]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_compositeRotationRate__T]:
+        """
+            Compute a composite rotation rate.
         
-            Specified by:
-                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
+            Parameters:
+                first (:class:`~org.orekit.frames.FieldKinematicTransform`<T> first): first applied transform
+                second (:class:`~org.orekit.frames.FieldKinematicTransform`<T> second): second applied transform
         
             Returns:
-                date attached to the object
+                rotation rate part of the composite transform
+        
+        
+        """
+        ...
+    _compositeVelocity__T = typing.TypeVar('_compositeVelocity__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def compositeVelocity(fieldKinematicTransform: 'FieldKinematicTransform'[_compositeVelocity__T], fieldKinematicTransform2: 'FieldKinematicTransform'[_compositeVelocity__T]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_compositeVelocity__T]:
+        """
+            Compute a composite velocity.
+        
+            Parameters:
+                first (:class:`~org.orekit.frames.FieldKinematicTransform`<T> first): first applied transform
+                second (:class:`~org.orekit.frames.FieldKinematicTransform`<T> second): second applied transform
+        
+            Returns:
+                velocity part of the composite transform
         
         
         """
         ...
-    def getFieldDate(self) -> org.orekit.time.FieldAbsoluteDate[_FieldTransform__T]: ...
     _getIdentity__T = typing.TypeVar('_getIdentity__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def getIdentity(field: org.hipparchus.Field[_getIdentity__T]) -> 'FieldTransform'[_getIdentity__T]:
+    def getIdentity(field: org.hipparchus.Field[_getIdentity__T]) -> 'FieldKinematicTransform'[_getIdentity__T]:
         """
-            Get the identity transform.
+            Get the identity kinematic transform.
         
             Parameters:
-                field (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field for the components
+                field (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field used by default
         
             Returns:
-                identity transform
+                identity transform.
         
         
         """
         ...
-    def getInverse(self) -> 'FieldTransform'[_FieldTransform__T]: ...
-    def getJacobian(self, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, tArray: typing.Union[typing.List[typing.MutableSequence[_FieldTransform__T]], jpype.JArray]) -> None:
+    def getInverse(self) -> 'FieldKinematicTransform'[_FieldKinematicTransform__T]: ...
+    def getRotationRate(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldKinematicTransform__T]: ...
+    def getVelocity(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldKinematicTransform__T]: ...
+    _of_0__T = typing.TypeVar('_of_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _of_1__T = typing.TypeVar('_of_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _of_2__T = typing.TypeVar('_of_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _of_3__T = typing.TypeVar('_of_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def of(field: org.hipparchus.Field[_of_0__T], kinematicTransform: 'KinematicTransform') -> 'FieldKinematicTransform'[_of_0__T]:
         """
-            Compute the Jacobian of the :meth:`~org.orekit.frames.FieldTransform.transformPVCoordinates` method of the transform.
+            Create a new kinematic transform from a translation and its rate.
         
-            Element :code:`jacobian[i][j]` is the derivative of Cartesian coordinate i of the transformed
-            :class:`~org.orekit.utils.FieldPVCoordinates` with respect to Cartesian coordinate j of the input
-            :class:`~org.orekit.utils.FieldPVCoordinates` in method
-            :meth:`~org.orekit.frames.FieldTransform.transformPVCoordinates`.
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): of translation.
+                pvCoordinates (:class:`~org.orekit.utils.FieldPVCoordinates`<T> pvCoordinates): translation (with rate) to apply, expressed in the old frame. That is, the opposite of the coordinates of the new origin
+                    in the old frame.
         
-            This definition implies that if we define position-velocity coordinates :code:`PV₁ =
-            transform.transformPVCoordinates(PV₀)` then their differentials dPV₁ and dPV₀ will obey the following relation
-            where J is the matrix computed by this method: :code:`dPV₁ = J × dPV₀`
+            Returns:
+                the newly created kinematic transform.
+        
+            Also see:
+                :meth:`~org.orekit.frames.FieldKinematicTransform.of`
+        
+            Create a new kinematic transform from a non-Field version.
         
             Parameters:
-                selector (:class:`~org.orekit.utils.CartesianDerivativesFilter`): selector specifying the size of the upper left corner that must be filled (either 3x3 for positions only, 6x6 for
-                    positions and velocities, 9x9 for positions, velocities and accelerations)
-                jacobian (:class:`~org.orekit.frames.FieldTransform`[][]):             placeholder matrix whose upper-left corner is to be filled with the Jacobian, the rest of the matrix remaining untouched
+                field (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field.
+                kinematicTransform (:class:`~org.orekit.frames.KinematicTransform`): non-Field kinematic transform
+        
+            Returns:
+                the newly created kinematic transform.
         
+            Also see:
+                :meth:`~org.orekit.frames.FieldKinematicTransform.of`
         
         """
         ...
-    def getRotation(self) -> org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T]: ...
-    def getRotationAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
-    def getRotationRate(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
-    def getTranslation(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
-    def getVelocity(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
-    _interpolate_0__T = typing.TypeVar('_interpolate_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    _interpolate_1__T = typing.TypeVar('_interpolate_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    _interpolate_2__T = typing.TypeVar('_interpolate_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     @staticmethod
-    def interpolate(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_interpolate_0__T], collection: typing.Union[java.util.Collection['FieldTransform'[_interpolate_0__T]], typing.Sequence['FieldTransform'[_interpolate_0__T]], typing.Set['FieldTransform'[_interpolate_0__T]]]) -> 'FieldTransform'[_interpolate_0__T]: ...
+    def of(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_of_1__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_of_1__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_of_1__T]) -> 'FieldKinematicTransform'[_of_1__T]:
+        """
+            Create a new kinematic transform from a rotation and zero, constant translation.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): of translation.
+                rotation (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldRotation?is`<T> rotation): to apply after the translation. That is after translating applying this rotation produces positions expressed in the new
+                    frame.
+                rotationRate (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> rotationRate): rate of rotation
+        
+            Returns:
+                the newly created kinematic transform.
+        
+            Also see:
+                :meth:`~org.orekit.frames.FieldKinematicTransform.of`
+        
+        """
+        ...
     @typing.overload
     @staticmethod
-    def interpolate(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_interpolate_1__T], cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter, collection: typing.Union[java.util.Collection['FieldTransform'[_interpolate_1__T]], typing.Sequence['FieldTransform'[_interpolate_1__T]], typing.Set['FieldTransform'[_interpolate_1__T]]]) -> 'FieldTransform'[_interpolate_1__T]: ...
+    def of(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_of_2__T], fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_of_2__T]) -> 'FieldKinematicTransform'[_of_2__T]: ...
     @typing.overload
     @staticmethod
-    def interpolate(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_interpolate_2__T], cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter, stream: java.util.stream.Stream['FieldTransform'[_interpolate_2__T]]) -> 'FieldTransform'[_interpolate_2__T]: ...
-    @typing.overload
-    def shiftedBy(self, double: float) -> 'FieldTransform'[_FieldTransform__T]: ...
-    @typing.overload
-    def shiftedBy(self, t: _FieldTransform__T) -> 'FieldTransform'[_FieldTransform__T]: ...
-    def staticShiftedBy(self, t: _FieldTransform__T) -> FieldStaticTransform[_FieldTransform__T]: ...
-    def toStaticTransform(self) -> FieldStaticTransform[_FieldTransform__T]: ...
-    @typing.overload
-    def transformPVCoordinates(self, fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]) -> org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]: ...
-    @typing.overload
-    def transformPVCoordinates(self, pVCoordinates: org.orekit.utils.PVCoordinates) -> org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]: ...
-    @typing.overload
-    def transformPVCoordinates(self, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTransform__T]) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTransform__T]: ...
+    def of(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_of_3__T], fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_of_3__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_of_3__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_of_3__T]) -> 'FieldKinematicTransform'[_of_3__T]:
+        """
+            Create a new kinematic transform from a translation and rotation.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): of translation.
+                pvCoordinates (:class:`~org.orekit.utils.FieldPVCoordinates`<T> pvCoordinates): translation (with rate) to apply, expressed in the old frame. That is, the opposite of the coordinates of the new origin
+                    in the old frame.
+                rotation (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldRotation?is`<T> rotation): to apply after the translation. That is after translating applying this rotation produces positions expressed in the new
+                    frame.
+                rotationRate (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> rotationRate): rate of rotation
+        
+            Returns:
+                the newly created kinematic transform.
+        
+            Also see:
+                :meth:`~org.orekit.frames.FieldKinematicTransform.compose`, :meth:`~org.orekit.frames.FieldKinematicTransform.of`,
+                :meth:`~org.orekit.frames.FieldKinematicTransform.of`
+        
+        
+        """
+        ...
     @typing.overload
-    def transformPVCoordinates(self, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTransform__T]: ...
+    def transformOnlyPV(self, fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_FieldKinematicTransform__T]) -> org.orekit.utils.FieldPVCoordinates[_FieldKinematicTransform__T]: ...
+    @typing.overload
+    def transformOnlyPV(self, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldKinematicTransform__T]) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldKinematicTransform__T]: ...
 
 class FixedTransformProvider(TransformProvider):
     """
@@ -2814,7 +2915,7 @@ class FixedTransformProvider(TransformProvider):
     def __init__(self, transform: 'Transform'): ...
     _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> 'FieldTransform'[_getTransform_0__T]:
         """
             Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
         
@@ -2906,7 +3007,7 @@ class HelmertTransformation(TransformProvider):
         """
             Get a transform for only rotations and translations on the specified date.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            The default implementation calls :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
             override it for better performance.
         
             Specified by:
@@ -2923,7 +3024,7 @@ class HelmertTransformation(TransformProvider):
         ...
     _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> 'FieldTransform'[_getTransform_0__T]:
         """
             Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
         
@@ -3167,6 +3268,11 @@ class ITRFVersion(java.lang.Enum['ITRFVersion']):
         ...
     class Converter(TransformProvider):
         def getDestination(self) -> 'ITRFVersion': ...
+        _getKinematicTransform_0__T = typing.TypeVar('_getKinematicTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+        @typing.overload
+        def getKinematicTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getKinematicTransform_0__T]) -> FieldKinematicTransform[_getKinematicTransform_0__T]: ...
+        @typing.overload
+        def getKinematicTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'KinematicTransform': ...
         def getOrigin(self) -> 'ITRFVersion': ...
         _getStaticTransform_0__T = typing.TypeVar('_getStaticTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
         @typing.overload
@@ -3175,7 +3281,7 @@ class ITRFVersion(java.lang.Enum['ITRFVersion']):
         def getStaticTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> StaticTransform: ...
         _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
         @typing.overload
-        def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]: ...
+        def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> 'FieldTransform'[_getTransform_0__T]: ...
         @typing.overload
         def getTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'Transform': ...
 
@@ -3290,7 +3396,7 @@ class InterpolatingTransformProvider(TransformProvider):
         ...
     _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> 'FieldTransform'[_getTransform_0__T]:
         """
             Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
         
@@ -3323,6 +3429,215 @@ class InterpolatingTransformProvider(TransformProvider):
         """
         ...
 
+class KinematicTransform(StaticTransform):
+    """
+    public interface KinematicTransform extends :class:`~org.orekit.frames.StaticTransform`
+    
+        A transform that only includes translation and rotation as well as their respective rates. It is kinematic in the sense
+        that it cannot transform an acceleration vector.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.frames.StaticTransform`, :class:`~org.orekit.frames.Transform`
+    """
+    @staticmethod
+    def compose(absoluteDate: org.orekit.time.AbsoluteDate, kinematicTransform: 'KinematicTransform', kinematicTransform2: 'KinematicTransform') -> 'KinematicTransform':
+        """
+            Build a transform by combining two existing ones.
+        
+            Note that the dates of the two existing transformed are *ignored*, and the combined transform date is set to the date
+            supplied in this constructor without any attempt to shift the raw transforms. This is a design choice allowing user full
+            control of the combination.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date of the transform
+                first (:class:`~org.orekit.frames.KinematicTransform`): first transform applied
+                second (:class:`~org.orekit.frames.KinematicTransform`): second transform applied
+        
+            Returns:
+                the newly created kinematic transform that has the same effect as applying :code:`first`, then :code:`second`.
+        
+            Also see:
+                :meth:`~org.orekit.frames.KinematicTransform.of`
+        
+        
+        """
+        ...
+    @staticmethod
+    def compositeRotationRate(kinematicTransform: 'KinematicTransform', kinematicTransform2: 'KinematicTransform') -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute a composite rotation rate.
+        
+            Parameters:
+                first (:class:`~org.orekit.frames.KinematicTransform`): first applied transform
+                second (:class:`~org.orekit.frames.KinematicTransform`): second applied transform
+        
+            Returns:
+                rotation rate part of the composite transform
+        
+        
+        """
+        ...
+    @staticmethod
+    def compositeVelocity(kinematicTransform: 'KinematicTransform', kinematicTransform2: 'KinematicTransform') -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute a composite velocity.
+        
+            Parameters:
+                first (:class:`~org.orekit.frames.KinematicTransform`): first applied transform
+                second (:class:`~org.orekit.frames.KinematicTransform`): second applied transform
+        
+            Returns:
+                velocity part of the composite transform
+        
+        
+        """
+        ...
+    @staticmethod
+    def getIdentity() -> 'KinematicTransform':
+        """
+            Get the identity kinematic transform.
+        
+            Returns:
+                identity transform.
+        
+        
+        """
+        ...
+    def getInverse(self) -> 'KinematicTransform':
+        """
+            Get the inverse transform of the instance.
+        
+            Specified by:
+                :meth:`~org.orekit.frames.StaticTransform.getInverse` in interface :class:`~org.orekit.frames.StaticTransform`
+        
+            Returns:
+                inverse transform of the instance
+        
+        
+        """
+        ...
+    def getRotationRate(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Get the first time derivative of the rotation.
+        
+            The norm represents the angular rate.
+        
+            Returns:
+                First time derivative of the rotation
+        
+            Also see:
+                :meth:`~org.orekit.frames.StaticTransform.getRotation`
+        
+        
+        """
+        ...
+    def getVelocity(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Get the first time derivative of the translation.
+        
+            Returns:
+                first time derivative of the translation
+        
+            Also see:
+                :meth:`~org.orekit.frames.StaticTransform.getTranslation`
+        
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def of(absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D) -> 'KinematicTransform':
+        """
+            Create a new kinematic transform from a rotation and zero, constant translation.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): of translation.
+                rotation (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Rotation?is`): to apply after the translation. That is after translating applying this rotation produces positions expressed in the new
+                    frame.
+                rotationRate (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): rate of rotation
+        
+            Returns:
+                the newly created kinematic transform.
+        
+            Also see:
+                :meth:`~org.orekit.frames.KinematicTransform.of`
+        
+            Create a new kinematic transform from a translation and rotation.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): of translation.
+                pvCoordinates (:class:`~org.orekit.utils.PVCoordinates`): translation (with rate) to apply, expressed in the old frame. That is, the opposite of the coordinates of the new origin
+                    in the old frame.
+                rotation (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Rotation?is`): to apply after the translation. That is after translating applying this rotation produces positions expressed in the new
+                    frame.
+                rotationRate (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): rate of rotation
+        
+            Returns:
+                the newly created kinematic transform.
+        
+            Also see:
+                :meth:`~org.orekit.frames.KinematicTransform.compose`, :meth:`~org.orekit.frames.KinematicTransform.of`,
+                :meth:`~org.orekit.frames.KinematicTransform.of`
+        
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def of(absoluteDate: org.orekit.time.AbsoluteDate, pVCoordinates: org.orekit.utils.PVCoordinates) -> 'KinematicTransform':
+        """
+            Create a new kinematic transform from a translation and its rate.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): of translation.
+                pvCoordinates (:class:`~org.orekit.utils.PVCoordinates`): translation (with rate) to apply, expressed in the old frame. That is, the opposite of the coordinates of the new origin
+                    in the old frame.
+        
+            Returns:
+                the newly created kinematic transform.
+        
+            Also see:
+                :meth:`~org.orekit.frames.KinematicTransform.of`
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def of(absoluteDate: org.orekit.time.AbsoluteDate, pVCoordinates: org.orekit.utils.PVCoordinates, rotation: org.hipparchus.geometry.euclidean.threed.Rotation, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D) -> 'KinematicTransform': ...
+    @typing.overload
+    def transformOnlyPV(self, pVCoordinates: org.orekit.utils.PVCoordinates) -> org.orekit.utils.PVCoordinates:
+        """
+            Transform :class:`~org.orekit.utils.PVCoordinates`, without the acceleration vector.
+        
+            Parameters:
+                pv (:class:`~org.orekit.utils.PVCoordinates`): the position-velocity couple to transform.
+        
+            Returns:
+                transformed position-velocity
+        
+            Transform :class:`~org.orekit.utils.TimeStampedPVCoordinates`, without the acceleration vector.
+        
+            In order to allow the user more flexibility, this method does *not* check for consistency between the transform
+            :meth:`~org.orekit.time.TimeStamped.getDate` and the time-stamped position-velocity
+            :meth:`~org.orekit.utils.TimeStampedPVCoordinates.getDate`. The returned value will always have the same
+            :meth:`~org.orekit.utils.TimeStampedPVCoordinates.getDate` as the input argument, regardless of the instance
+            :meth:`~org.orekit.time.TimeStamped.getDate`.
+        
+            Parameters:
+                pv (:class:`~org.orekit.utils.TimeStampedPVCoordinates`): the position-velocity couple to transform.
+        
+            Returns:
+                transformed position-velocity
+        
+        
+        """
+        ...
+    @typing.overload
+    def transformOnlyPV(self, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates) -> org.orekit.utils.TimeStampedPVCoordinates: ...
+
 class L1Frame(Frame):
     """
     public class L1Frame extends :class:`~org.orekit.frames.Frame`
@@ -3372,7 +3687,7 @@ class L1TransformProvider(TransformProvider):
         """
             Get a transform for only rotations and translations on the specified date.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            The default implementation calls :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
             override it for better performance.
         
             Specified by:
@@ -3389,7 +3704,7 @@ class L1TransformProvider(TransformProvider):
         ...
     _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> 'FieldTransform'[_getTransform_0__T]:
         """
             Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
         
@@ -3868,7 +4183,7 @@ class ShiftingTransformProvider(TransformProvider):
         """
             Get a transform for only rotations and translations on the specified date.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            The default implementation calls :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
             override it for better performance.
         
             Specified by:
@@ -3895,7 +4210,7 @@ class ShiftingTransformProvider(TransformProvider):
         ...
     _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> 'FieldTransform'[_getTransform_0__T]:
         """
             Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
         
@@ -4261,6 +4576,42 @@ class TopocentricFrame(Frame, org.orekit.utils.PVCoordinatesProvider):
                 :meth:`~org.orekit.frames.TopocentricFrame.getNorth`
         
         
+        """
+        ...
+    _getTopocentricPosition_0__T = typing.TypeVar('_getTopocentricPosition_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def getTopocentricPosition(fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_getTopocentricPosition_0__T]) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_getTopocentricPosition_0__T]:
+        """
+            Get the topocentric position from :class:`~org.orekit.utils.FieldTrackingCoordinates`.
+        
+            Parameters:
+                coords (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> coords): The coordinates that are to be converted.
+        
+            Returns:
+                The topocentric coordinates.
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def getTopocentricPosition(trackingCoordinates: org.orekit.utils.TrackingCoordinates) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Get the topocentric position from :class:`~org.orekit.utils.TrackingCoordinates`.
+        
+            Parameters:
+                coords (:class:`~org.orekit.utils.TrackingCoordinates`): The coordinates that are to be converted.
+        
+            Returns:
+                The topocentric coordinates.
+        
+            Since:
+                12.1
+        
         """
         ...
     _getTrackingCoordinates_0__T = typing.TypeVar('_getTrackingCoordinates_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -4347,54 +4698,182 @@ class TopocentricFrame(Frame, org.orekit.utils.PVCoordinatesProvider):
         """
         ...
 
-class Transform(org.orekit.time.TimeShiftable['Transform'], java.io.Serializable, StaticTransform):
+class TwoBodiesBaryFrame(Frame):
     """
-    public class Transform extends :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeShiftable`<:class:`~org.orekit.frames.Transform`>, :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.frames.StaticTransform`
-    
-        Transformation class in three dimensional space.
-    
-        This class represents the transformation engine between :class:`~org.orekit.frames.Frame`. It is used both to define the
-        relationship between each frame and its parent frame and to gather all individual transforms into one operation when
-        converting between frames far away from each other.
-    
-        The convention used in OREKIT is vectorial transformation. It means that a transformation is defined as a transform to
-        apply to the coordinates of a vector expressed in the old frame to obtain the same vector expressed in the new frame.
-    
-        Instances of this class are guaranteed to be immutable.
-    
-        Examples
-    ----------
-    
-    
-        Example of translation from R :sub:`A` to R :sub:`B`
-    ------------------------------------------------------
-    
+    public class TwoBodiesBaryFrame extends :class:`~org.orekit.frames.Frame`
     
-        We want to transform the :class:`~org.orekit.utils.PVCoordinates` PV :sub:`A` to PV :sub:`B` with :
+        Class creating the inertial barycenter frame from two bodies.
     
-        PV :sub:`A` = ({1, 0, 0}, {2, 0, 0}, {3, 0, 0});
+        Since:
+            10.2
     
+        Also see:
+            :meth:`~serialized`
+    """
+    def __init__(self, celestialBody: org.orekit.bodies.CelestialBody, celestialBody2: org.orekit.bodies.CelestialBody): ...
+
+class UpdatableFrame(Frame):
+    """
+    public class UpdatableFrame extends :class:`~org.orekit.frames.Frame`
     
-        PV :sub:`B` = ({0, 0, 0}, {0, 0, 0}, {0, 0, 0});
+        Frame whose transform from its parent can be updated.
     
-        The transform to apply then is defined as follows :
+        This class allows to control the relative position of two parts of the global frames tree using any two frames in each
+        part as control handles. Consider the following simplified frames tree as an example:
     
         .. code-block: java
         
-         Vector3D translation  = new Vector3D(-1, 0, 0);
-         Vector3D velocity     = new Vector3D(-2, 0, 0);
-         Vector3D acceleration = new Vector3D(-3, 0, 0);
-        
-         Transform R1toR2 = new Transform(date, translation, velocity, acceleration);
+                      GCRF
+                        |
+          --------------------------------
+          |             |                |
+         Sun        satellite          Earth
+                        |                |
+                on-board antenna   ground station
+                                         |
+                                  tracking antenna
+         
+    
+        Tracking measurements really correspond to the link between the ground and on-board antennas. This is tightly linked to
+        the transform between these two frames, however neither frame is the direct parent frame of the other one: the path
+        involves four intermediate frames. When we process a measurement, what we really want to update is the transform that
+        defines the satellite frame with respect to its parent GCRF frame.
+    
+        In order to implement the above case, the satellite frame is defined as an instance of this class and its
+        :meth:`~org.orekit.frames.UpdatableFrame.updateTransform` would be called each time we want to adjust the frame, i.e.
+        each time we get a new measurement between the two antennas.
+    
+        Also see:
+            :meth:`~serialized`
+    """
+    @typing.overload
+    def __init__(self, frame: Frame, transform: 'Transform', string: str): ...
+    @typing.overload
+    def __init__(self, frame: Frame, transform: 'Transform', string: str, boolean: bool): ...
+    def updateTransform(self, frame: Frame, frame2: Frame, transform: 'Transform', absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Update the transform from parent frame implicitly according to two other frames.
         
-         PVB = R1toR2.transformPVCoordinates(PVA);
+            This method allows to control the relative position of two parts of the global frames tree using any two frames in each
+            part as control handles. Consider the following simplified frames tree as an example:
+        
+            .. code-block: java
+            
+                          GCRF
+                            |
+              --------------------------------
+              |             |                |
+             Sun        satellite          Earth
+                            |                |
+                    on-board antenna   ground station
+                                             |
+                                      tracking antenna
+             
+        
+            Tracking measurements really correspond to the link between the ground and on-board antennas. This is tightly linked to
+            the transform between these two frames, however neither frame is the direct parent frame of the other one: the path
+            involves four intermediate frames. When we process a measurement, what we really want to update is the transform that
+            defines the satellite frame with respect to its parent GCRF frame. This is the purpose of this method. This update is
+            done by the following call, where :code:`measurementTransform` represents the measurement as a simple translation
+            transform between the two antenna frames:
+        
+            .. code-block: java
+            
+             satellite.updateTransform(onBoardAntenna, trackingAntenna,
+                                       measurementTransform, date);
+             
+        
+            One way to represent the behavior of the method is to consider the sub-tree rooted at the instance on one hand
+            (satellite and on-board antenna in the example above) and the tree containing all the other frames on the other hand
+            (GCRF, Sun, Earth, ground station, tracking antenna). Both tree are considered as two solid sets linked together by a
+            flexible spring, which is the transform we want to update. The method stretches the spring to make sure the transform
+            between the two specified frames (one in each tree part) matches the specified transform.
+        
+            Parameters:
+                f1 (:class:`~org.orekit.frames.Frame`): first control frame (may be the instance itself)
+                f2 (:class:`~org.orekit.frames.Frame`): second control frame (may be the instance itself)
+                f1Tof2 (:class:`~org.orekit.frames.Transform`): desired transform from first to second control frame
+                date (:class:`~org.orekit.time.AbsoluteDate`): date of the transform
+        
+        
+        """
+        ...
+
+class VersionedITRF(Frame):
+    """
+    public class VersionedITRF extends :class:`~org.orekit.frames.Frame`
+    
+        Specific version of International Terrestrial Reference Frame.
+    
+        This class represents an ITRF with a specific version, regardless of the version of the underlying
+        :class:`~org.orekit.frames.EOPEntry`.
+    
+        Since:
+            9.2
+    
+        Also see:
+            :meth:`~serialized`
+    """
+    def getITRFVersion(self) -> ITRFVersion:
+        """
+            Get the ITRF version.
+        
+            Returns:
+                ITRF version
+        
+        
+        """
+        ...
+
+_FieldTransform__T = typing.TypeVar('_FieldTransform__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldTransform(org.orekit.time.FieldTimeShiftable['FieldTransform'[_FieldTransform__T], _FieldTransform__T], FieldKinematicTransform[_FieldTransform__T], typing.Generic[_FieldTransform__T]):
+    """
+    public class FieldTransform<T extends :class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.FieldTimeShiftable`<:class:`~org.orekit.frames.FieldTransform`<T>, T>, :class:`~org.orekit.frames.FieldKinematicTransform`<T>
+    
+        Transformation class in three-dimensional space.
+    
+        This class represents the transformation engine between :class:`~org.orekit.frames.Frame`. It is used both to define the
+        relationship between each frame and its parent frame and to gather all individual transforms into one operation when
+        converting between frames far away from each other.
+    
+        The convention used in OREKIT is vectorial transformation. It means that a transformation is defined as a transform to
+        apply to the coordinates of a vector expressed in the old frame to obtain the same vector expressed in the new frame.
+    
+        Instances of this class are guaranteed to be immutable.
+    
+        Examples
+    ----------
+    
+    
+        Example of translation from R :sub:`A` to R :sub:`B`
+    ------------------------------------------------------
+    
+    
+        We want to transform the :class:`~org.orekit.utils.FieldPVCoordinates` PV :sub:`A` to PV :sub:`B` with :
+    
+        PV :sub:`A` = ({1, 0, 0}, {2, 0, 0}, {3, 0, 0});
+    
+    
+        PV :sub:`B` = ({0, 0, 0}, {0, 0, 0}, {0, 0, 0});
+    
+        The transform to apply then is defined as follows :
+    
+        .. code-block: java
+        
+         Vector3D translation  = new Vector3D(-1, 0, 0);
+         Vector3D velocity     = new Vector3D(-2, 0, 0);
+         Vector3D acceleration = new Vector3D(-3, 0, 0);
+        
+         Transform R1toR2 = new Transform(date, translation, velocity, acceleration);
+        
+         PVB = R1toR2.transformPVCoordinate(PVA);
          
     
         Example of rotation from R :sub:`A` to R :sub:`B`
     ---------------------------------------------------
     
     
-        We want to transform the :class:`~org.orekit.utils.PVCoordinates` PV :sub:`A` to PV :sub:`B` with
+        We want to transform the :class:`~org.orekit.utils.FieldPVCoordinates` PV :sub:`A` to PV :sub:`B` with
     
         PV :sub:`A` = ({1, 0, 0}, { 1, 0, 0});
     
@@ -4413,748 +4892,853 @@ class Transform(org.orekit.time.TimeShiftable['Transform'], java.io.Serializable
          PVB = R1toR2.transformPVCoordinates(PVA);
          
     
-        Also see:
-            :meth:`~serialized`
-    """
-    IDENTITY: typing.ClassVar['Transform'] = ...
-    """
-    public static final :class:`~org.orekit.frames.Transform` IDENTITY
-    
-        Identity transform.
-    
+        Since:
+            9.0
     """
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation): ...
+    def __init__(self, field: org.hipparchus.Field[_FieldTransform__T], transform: 'Transform'): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D3: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldRotation: org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, transform: 'Transform', transform2: 'Transform'): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, angularCoordinates: org.orekit.utils.AngularCoordinates): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T], fieldVector3D3: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, pVCoordinates: org.orekit.utils.PVCoordinates): ...
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldTransform: 'FieldTransform'[_FieldTransform__T], fieldTransform2: 'FieldTransform'[_FieldTransform__T]): ...
     @typing.overload
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, pVCoordinates: org.orekit.utils.PVCoordinates, angularCoordinates: org.orekit.utils.AngularCoordinates): ...
-    def freeze(self) -> 'Transform':
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldAngularCoordinates: org.orekit.utils.FieldAngularCoordinates[_FieldTransform__T]): ...
+    @typing.overload
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTransform__T], fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]): ...
+    def freeze(self) -> 'FieldTransform'[_FieldTransform__T]: ...
+    def getAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
+    def getAngular(self) -> org.orekit.utils.FieldAngularCoordinates[_FieldTransform__T]: ...
+    def getCartesian(self) -> org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]: ...
+    def getDate(self) -> org.orekit.time.AbsoluteDate:
         """
-            Get a frozen transform.
+            Get the date.
         
-            This method creates a copy of the instance but frozen in time, i.e. with velocity, acceleration and rotation rate forced
-            to zero.
+            Specified by:
+                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
         
             Returns:
-                a new transform, without any time-dependent parts
+                date attached to the object
         
         
         """
         ...
-    def getAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+    def getFieldDate(self) -> org.orekit.time.FieldAbsoluteDate[_FieldTransform__T]: ...
+    _getIdentity__T = typing.TypeVar('_getIdentity__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def getIdentity(field: org.hipparchus.Field[_getIdentity__T]) -> 'FieldTransform'[_getIdentity__T]:
         """
-            Get the second time derivative of the translation.
+            Get the identity transform.
+        
+            Parameters:
+                field (:class:`~org.orekit.frames.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field for the components
         
             Returns:
-                second time derivative of the translation
+                identity transform
         
-            Also see:
-                :meth:`~org.orekit.frames.Transform.getCartesian`, :meth:`~org.orekit.frames.Transform.getTranslation`,
-                :meth:`~org.orekit.frames.Transform.getVelocity`
+        
+        """
+        ...
+    def getInverse(self) -> 'FieldTransform'[_FieldTransform__T]: ...
+    def getJacobian(self, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, tArray: typing.Union[typing.List[typing.MutableSequence[_FieldTransform__T]], jpype.JArray]) -> None:
+        """
+            Compute the Jacobian of the :meth:`~org.orekit.frames.FieldTransform.transformPVCoordinates` method of the transform.
+        
+            Element :code:`jacobian[i][j]` is the derivative of Cartesian coordinate i of the transformed
+            :class:`~org.orekit.utils.FieldPVCoordinates` with respect to Cartesian coordinate j of the input
+            :class:`~org.orekit.utils.FieldPVCoordinates` in method
+            :meth:`~org.orekit.frames.FieldTransform.transformPVCoordinates`.
+        
+            This definition implies that if we define position-velocity coordinates :code:`PV₁ =
+            transform.transformPVCoordinates(PV₀)` then their differentials dPV₁ and dPV₀ will obey the following relation
+            where J is the matrix computed by this method: :code:`dPV₁ = J × dPV₀`
+        
+            Parameters:
+                selector (:class:`~org.orekit.utils.CartesianDerivativesFilter`): selector specifying the size of the upper left corner that must be filled (either 3x3 for positions only, 6x6 for
+                    positions and velocities, 9x9 for positions, velocities and accelerations)
+                jacobian (:class:`~org.orekit.frames.FieldTransform`[][]):             placeholder matrix whose upper-left corner is to be filled with the Jacobian, the rest of the matrix remaining untouched
         
         
         """
         ...
-    def getAngular(self) -> org.orekit.utils.AngularCoordinates:
+    def getRotation(self) -> org.hipparchus.geometry.euclidean.threed.FieldRotation[_FieldTransform__T]: ...
+    def getRotationAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
+    def getRotationRate(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
+    def getTranslation(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
+    def getVelocity(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldTransform__T]: ...
+    _interpolate_0__T = typing.TypeVar('_interpolate_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _interpolate_1__T = typing.TypeVar('_interpolate_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _interpolate_2__T = typing.TypeVar('_interpolate_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def interpolate(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_interpolate_0__T], collection: typing.Union[java.util.Collection['FieldTransform'[_interpolate_0__T]], typing.Sequence['FieldTransform'[_interpolate_0__T]], typing.Set['FieldTransform'[_interpolate_0__T]]]) -> 'FieldTransform'[_interpolate_0__T]: ...
+    @typing.overload
+    @staticmethod
+    def interpolate(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_interpolate_1__T], cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter, collection: typing.Union[java.util.Collection['FieldTransform'[_interpolate_1__T]], typing.Sequence['FieldTransform'[_interpolate_1__T]], typing.Set['FieldTransform'[_interpolate_1__T]]]) -> 'FieldTransform'[_interpolate_1__T]: ...
+    @typing.overload
+    @staticmethod
+    def interpolate(fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_interpolate_2__T], cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter, stream: java.util.stream.Stream['FieldTransform'[_interpolate_2__T]]) -> 'FieldTransform'[_interpolate_2__T]: ...
+    @typing.overload
+    def shiftedBy(self, double: float) -> 'FieldTransform'[_FieldTransform__T]: ...
+    @typing.overload
+    def shiftedBy(self, t: _FieldTransform__T) -> 'FieldTransform'[_FieldTransform__T]: ...
+    def staticShiftedBy(self, t: _FieldTransform__T) -> FieldStaticTransform[_FieldTransform__T]: ...
+    def toStaticTransform(self) -> FieldStaticTransform[_FieldTransform__T]: ...
+    @typing.overload
+    def transformPVCoordinates(self, fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]) -> org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]: ...
+    @typing.overload
+    def transformPVCoordinates(self, pVCoordinates: org.orekit.utils.PVCoordinates) -> org.orekit.utils.FieldPVCoordinates[_FieldTransform__T]: ...
+    @typing.overload
+    def transformPVCoordinates(self, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTransform__T]) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTransform__T]: ...
+    @typing.overload
+    def transformPVCoordinates(self, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTransform__T]: ...
+
+class GTODProvider(EOPBasedTransformProvider):
+    """
+    public class GTODProvider extends :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.frames.EOPBasedTransformProvider`
+    
+        Greenwich True Of Date Frame, also known as True of Date Rotating frame (TDR) or Greenwich Rotating Coordinate frame
+        (GCR).
+    
+        This frame handles the sidereal time according to IAU-82 model.
+    
+        Its parent frame is the :code:`TODProvider`.
+    
+        The pole motion is not applied here.
+    
+        Also see:
+            :meth:`~serialized`
+    """
+    def getEOPHistory(self) -> EOPHistory:
         """
-            Get the underlying elementary angular part.
+            Get the EOP history.
         
-            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
-            returns this unique elementary rotation with its derivative.
+            Specified by:
+                :meth:`~org.orekit.frames.EOPBasedTransformProvider.getEOPHistory` in
+                interface :class:`~org.orekit.frames.EOPBasedTransformProvider`
         
             Returns:
-                underlying elementary angular part
+                EOP history
         
-            Also see:
-                :meth:`~org.orekit.frames.Transform.getRotation`, :meth:`~org.orekit.frames.Transform.getRotationRate`,
-                :meth:`~org.orekit.frames.Transform.getRotationAcceleration`
+        
+        """
+        ...
+    _getKinematicTransform_0__T = typing.TypeVar('_getKinematicTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getKinematicTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getKinematicTransform_0__T]) -> FieldKinematicTransform[_getKinematicTransform_0__T]:
+        """
+            Get a transform for position and velocity, not acceleration.
+        
+            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            override it for better performance.
+        
+            Specified by:
+                :meth:`~org.orekit.frames.TransformProvider.getKinematicTransform` in
+                interface :class:`~org.orekit.frames.TransformProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date.
+        
+            Returns:
+                the kinematic transform.
         
         
         """
         ...
-    def getCartesian(self) -> org.orekit.utils.PVCoordinates:
+    @typing.overload
+    def getKinematicTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> KinematicTransform:
         """
-            Get the underlying elementary Cartesian part.
+            Get a transform for position and velocity, not acceleration.
         
-            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
-            returns this unique elementary translation with its derivative.
+            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            override it for better performance.
+        
+            Specified by:
+                :meth:`~org.orekit.frames.TransformProvider.getKinematicTransform` in
+                interface :class:`~org.orekit.frames.TransformProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date.
         
             Returns:
-                underlying elementary Cartesian part
+                the kinematic transform.
+        
+        """
+        ...
+    def getNonInterpolatingProvider(self) -> 'GTODProvider':
+        """
+            Get a version of the provider that does *not* cache tidal corrections.
+        
+            This method removes the performance enhancing interpolation features that are used by default in EOP-based provider, in
+            order to focus on accuracy. The interpolation features are intended to save processing time by avoiding doing tidal
+            correction evaluation at each time step and caching some results. This method can be used to avoid this (it is
+            automatically called by :meth:`~org.orekit.frames.FramesFactory.getNonInterpolatingTransform`, when very high accuracy
+            is desired, or for testing purposes. It should be used with care, as doing the full computation is *really* costly.
+        
+            Specified by:
+                :meth:`~org.orekit.frames.EOPBasedTransformProvider.getNonInterpolatingProvider` in
+                interface :class:`~org.orekit.frames.EOPBasedTransformProvider`
+        
+            Returns:
+                version of the provider that does *not* cache tidal corrections
         
             Also see:
-                :meth:`~org.orekit.frames.Transform.getTranslation`, :meth:`~org.orekit.frames.Transform.getVelocity`
+                :meth:`~org.orekit.frames.FramesFactory.getNonInterpolatingTransform`
         
         
         """
         ...
-    def getDate(self) -> org.orekit.time.AbsoluteDate:
+    _getStaticTransform_0__T = typing.TypeVar('_getStaticTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getStaticTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getStaticTransform_0__T]) -> FieldStaticTransform[_getStaticTransform_0__T]:
         """
-            Get the date.
+            Get a transform for only rotations and translations on the specified date.
+        
+            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            override it for better performance.
+        
+            Specified by:
+                :meth:`~org.orekit.frames.TransformProvider.getStaticTransform` in
+                interface :class:`~org.orekit.frames.TransformProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date.
+        
+            Returns:
+                the static transform.
+        
+        
+        """
+        ...
+    @typing.overload
+    def getStaticTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> StaticTransform:
+        """
+            Get a transform for only rotations and translations on the specified date.
+        
+            The default implementation calls :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
+            override it for better performance.
+        
+            Specified by:
+                :meth:`~org.orekit.frames.TransformProvider.getStaticTransform` in
+                interface :class:`~org.orekit.frames.TransformProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date.
+        
+            Returns:
+                the static transform.
+        
+        """
+        ...
+    _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+        """
+            Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
+                :meth:`~org.orekit.frames.TransformProvider.getTransform` in interface :class:`~org.orekit.frames.TransformProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                date attached to the object
+                transform at specified date
         
         
         """
         ...
-    def getInverse(self) -> 'Transform':
+    @typing.overload
+    def getTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'Transform':
         """
-            Get the inverse transform of the instance.
+            Get the :class:`~org.orekit.frames.Transform` corresponding to specified date.
         
             Specified by:
-                :meth:`~org.orekit.frames.StaticTransform.getInverse` in interface :class:`~org.orekit.frames.StaticTransform`
+                :meth:`~org.orekit.frames.TransformProvider.getTransform` in interface :class:`~org.orekit.frames.TransformProvider`
         
-            Returns:
-                inverse transform of the instance
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
+            Returns:
+                transform at specified date
         
         """
         ...
-    def getJacobian(self, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]) -> None:
+
+class LazyLoadedFrames(AbstractFrames):
+    """
+    public class LazyLoadedFrames extends :class:`~org.orekit.frames.AbstractFrames`
+    
+        This class lazily loads auxiliary data when it is needed by a requested frame. It is designed to match the behavior of
+        :class:`~org.orekit.frames.FramesFactory` in Orekit 10.0.
+    
+        Since:
+            10.1
+    
+        Also see:
+            :class:`~org.orekit.frames.LazyLoadedEop`
+    """
+    def __init__(self, lazyLoadedEop: LazyLoadedEop, timeScales: org.orekit.time.TimeScales, celestialBodies: org.orekit.bodies.CelestialBodies): ...
+    def addDefaultEOP1980HistoryLoaders(self, string: str, string2: str, string3: str, string4: str, string5: str, string6: str) -> None:
         """
-            Compute the Jacobian of the :meth:`~org.orekit.frames.Transform.transformPVCoordinates` method of the transform.
-        
-            Element :code:`jacobian[i][j]` is the derivative of Cartesian coordinate i of the transformed
-            :class:`~org.orekit.utils.PVCoordinates` with respect to Cartesian coordinate j of the input
-            :class:`~org.orekit.utils.PVCoordinates` in method :meth:`~org.orekit.frames.Transform.transformPVCoordinates`.
-        
-            This definition implies that if we define position-velocity coordinates
+            Add the default loaders EOP history (IAU 1980 precession/nutation).
         
-            .. code-block: java
-            
-             PV₁ = transform.transformPVCoordinates(PV₀), then
-             
+            The default loaders look for IERS EOP C04 and bulletins B files. They correspond to
+            :meth:`~org.orekit.utils.IERSConventions.IERS_1996` conventions.
         
-            their differentials dPV₁ and dPV₀ will obey the following relation where J is the matrix computed by this method:
+            Parameters:
+                rapidDataColumnsSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported rapid data columns EOP files names (may be null if the default IERS file names are
+                    used)
+                xmlSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported XML EOP files names (may be null if the default IERS file names are used)
+                eopC04SupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported EOP C04 files names (may be null if the default IERS file names are used)
+                bulletinBSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin B files names (may be null if the default IERS file names are used)
+                bulletinASupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin A files names (may be null if the default IERS file names are used)
+                csvSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported csv files names (may be null if the default IERS file names are used)
         
-            .. code-block: java
-            
-             dPV₁ = J × dPV₀
-             
+            Since:
+                12.0
         
-            Parameters:
-                selector (:class:`~org.orekit.utils.CartesianDerivativesFilter`): selector specifying the size of the upper left corner that must be filled (either 3x3 for positions only, 6x6 for
-                    positions and velocities, 9x9 for positions, velocities and accelerations)
-                jacobian (double[][]):             placeholder matrix whose upper-left corner is to be filled with the Jacobian, the rest of the matrix remaining untouched
+            Also see:
+                :class:`~org.orekit.frames.https:.datacenter.iers.org.products.eop`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP2000HistoryLoaders`
         
         
         """
         ...
-    def getRotation(self) -> org.hipparchus.geometry.euclidean.threed.Rotation:
+    def addDefaultEOP2000HistoryLoaders(self, string: str, string2: str, string3: str, string4: str, string5: str, string6: str) -> None:
         """
-            Get the underlying elementary rotation.
+            Add the default loaders for EOP history (IAU 2000/2006 precession/nutation).
         
-            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
-            returns this unique elementary rotation.
+            The default loaders look for IERS EOP C04 and bulletins B files. They correspond to both
+            :meth:`~org.orekit.utils.IERSConventions.IERS_2003` and :meth:`~org.orekit.utils.IERSConventions.IERS_2010` conventions.
         
-            Specified by:
-                :meth:`~org.orekit.frames.StaticTransform.getRotation` in interface :class:`~org.orekit.frames.StaticTransform`
+            Parameters:
+                rapidDataColumnsSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported rapid data columns EOP files names (may be null if the default IERS file names are
+                    used)
+                xmlSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported XML EOP files names (may be null if the default IERS file names are used)
+                eopC04SupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported EOP C04 files names (may be null if the default IERS file names are used)
+                bulletinBSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin B files names (may be null if the default IERS file names are used)
+                bulletinASupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin A files names (may be null if the default IERS file names are used)
+                csvSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported csv files names (may be null if the default IERS file names are used)
         
-            Returns:
-                underlying elementary rotation
+            Since:
+                12.0
         
             Also see:
-                :meth:`~org.orekit.frames.Transform.getAngular`, :meth:`~org.orekit.frames.Transform.getRotationRate`,
-                :meth:`~org.orekit.frames.Transform.getRotationAcceleration`
+                :class:`~org.orekit.frames.https:.datacenter.iers.org.products.eop`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders`
         
         
         """
         ...
-    def getRotationAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+    def addEOPHistoryLoader(self, iERSConventions: org.orekit.utils.IERSConventions, eopHistoryLoader: typing.Union[EopHistoryLoader, typing.Callable]) -> None:
         """
-            Get the second time derivative of the rotation.
+            Add a loader for Earth Orientation Parameters history.
         
-            Returns:
-                Second time derivative of the rotation
+            Parameters:
+                conventions (:class:`~org.orekit.utils.IERSConventions`): IERS conventions to which EOP history applies
+                loader (:class:`~org.orekit.frames.EopHistoryLoader`): custom loader to add for the EOP history
         
             Also see:
-                :meth:`~org.orekit.frames.Transform.getAngular`, :meth:`~org.orekit.frames.Transform.getRotation`,
-                :meth:`~org.orekit.frames.Transform.getRotationRate`
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders`
         
         
         """
         ...
-    def getRotationRate(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+    def clearEOPHistoryLoaders(self) -> None:
         """
-            Get the first time derivative of the rotation.
-        
-            The norm represents the angular rate.
-        
-            Returns:
-                First time derivative of the rotation
+            Clear loaders for Earth Orientation Parameters history.
         
             Also see:
-                :meth:`~org.orekit.frames.Transform.getAngular`, :meth:`~org.orekit.frames.Transform.getRotation`,
-                :meth:`~org.orekit.frames.Transform.getRotationAcceleration`
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader`,
+                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders`
         
         
         """
         ...
-    def getTranslation(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+    def getEOPHistory(self, iERSConventions: org.orekit.utils.IERSConventions, boolean: bool) -> EOPHistory:
         """
-            Get the underlying elementary translation.
+            Get Earth Orientation Parameters history.
         
-            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
-            returns this unique elementary translation.
+            If no :class:`~org.orekit.frames.EopHistoryLoader` has been added by calling
+            :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader` or if
+            :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders` has been called afterwards, the
+            :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders` and
+            :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP2000HistoryLoaders` methods will be called automatically with
+            supported file names parameters all set to null, in order to get the default loaders configuration.
         
-            Specified by:
-                :meth:`~org.orekit.frames.StaticTransform.getTranslation` in interface :class:`~org.orekit.frames.StaticTransform`
+            Parameters:
+                conventions (:class:`~org.orekit.utils.IERSConventions`): conventions for which EOP history is requested
+                simpleEOP (boolean): if true, tidal effects are ignored when interpolating EOP
         
             Returns:
-                underlying elementary translation
-        
-            Also see:
-                :meth:`~org.orekit.frames.Transform.getCartesian`, :meth:`~org.orekit.frames.Transform.getVelocity`,
-                :meth:`~org.orekit.frames.Transform.getAcceleration`
+                Earth Orientation Parameters history
         
         
         """
         ...
-    def getVelocity(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+    def setEOPContinuityThreshold(self, double: float) -> None:
         """
-            Get the first time derivative of the translation.
+            Set the threshold to check EOP continuity.
         
-            Returns:
-                first time derivative of the translation
+            The default threshold (used if this method is never called) is 5 Julian days. If after loading EOP entries some holes
+            between entries exceed this threshold, an exception will be triggered.
         
-            Also see:
-                :meth:`~org.orekit.frames.Transform.getCartesian`, :meth:`~org.orekit.frames.Transform.getTranslation`,
-                :meth:`~org.orekit.frames.Transform.getAcceleration`
+            One case when calling this method is really useful is for applications that use a single Bulletin A, as these bulletins
+            have a roughly one month wide hole for the first bulletin of each month, which contains older final data in addition to
+            the rapid data and the predicted data.
+        
+            Parameters:
+                threshold (double): threshold to use for checking EOP continuity (in seconds)
         
         
         """
         ...
+
+class Transform(org.orekit.time.TimeShiftable['Transform'], java.io.Serializable, KinematicTransform):
+    """
+    public class Transform extends :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeShiftable`<:class:`~org.orekit.frames.Transform`>, :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.frames.KinematicTransform`
+    
+        Transformation class in three dimensional space.
+    
+        This class represents the transformation engine between :class:`~org.orekit.frames.Frame`. It is used both to define the
+        relationship between each frame and its parent frame and to gather all individual transforms into one operation when
+        converting between frames far away from each other.
+    
+        The convention used in OREKIT is vectorial transformation. It means that a transformation is defined as a transform to
+        apply to the coordinates of a vector expressed in the old frame to obtain the same vector expressed in the new frame.
+    
+        Instances of this class are guaranteed to be immutable.
+    
+        Examples
+    ----------
+    
+    
+        Example of translation from R :sub:`A` to R :sub:`B`
+    ------------------------------------------------------
+    
+    
+        We want to transform the :class:`~org.orekit.utils.PVCoordinates` PV :sub:`A` to PV :sub:`B` with :
+    
+        PV :sub:`A` = ({1, 0, 0}, {2, 0, 0}, {3, 0, 0});
+    
+    
+        PV :sub:`B` = ({0, 0, 0}, {0, 0, 0}, {0, 0, 0});
+    
+        The transform to apply then is defined as follows :
+    
+        .. code-block: java
+        
+         Vector3D translation  = new Vector3D(-1, 0, 0);
+         Vector3D velocity     = new Vector3D(-2, 0, 0);
+         Vector3D acceleration = new Vector3D(-3, 0, 0);
+        
+         Transform R1toR2 = new Transform(date, translation, velocity, acceleration);
+        
+         PVB = R1toR2.transformPVCoordinates(PVA);
+         
+    
+        Example of rotation from R :sub:`A` to R :sub:`B`
+    ---------------------------------------------------
+    
+    
+        We want to transform the :class:`~org.orekit.utils.PVCoordinates` PV :sub:`A` to PV :sub:`B` with
+    
+        PV :sub:`A` = ({1, 0, 0}, { 1, 0, 0});
+    
+    
+        PV :sub:`B` = ({0, 1, 0}, {-2, 1, 0});
+    
+        The transform to apply then is defined as follows :
+    
+        .. code-block: java
+        
+         Rotation rotation = new Rotation(Vector3D.PLUS_K, FastMath.PI / 2);
+         Vector3D rotationRate = new Vector3D(0, 0, -2);
+        
+         Transform R1toR2 = new Transform(rotation, rotationRate);
+        
+         PVB = R1toR2.transformPVCoordinates(PVA);
+         
+    
+        Also see:
+            :meth:`~serialized`
+    """
+    IDENTITY: typing.ClassVar['Transform'] = ...
+    """
+    public static final :class:`~org.orekit.frames.Transform` IDENTITY
+    
+        Identity transform.
+    
+    """
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, rotation: org.hipparchus.geometry.euclidean.threed.Rotation, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, rotation: org.hipparchus.geometry.euclidean.threed.Rotation): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
     @typing.overload
-    def interpolate(self, absoluteDate: org.orekit.time.AbsoluteDate, stream: java.util.stream.Stream['Transform']) -> 'Transform': ...
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D3: org.hipparchus.geometry.euclidean.threed.Vector3D): ...
     @typing.overload
-    @staticmethod
-    def interpolate(absoluteDate: org.orekit.time.AbsoluteDate, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter, collection: typing.Union[java.util.Collection['Transform'], typing.Sequence['Transform'], typing.Set['Transform']]) -> 'Transform': ...
-    def shiftedBy(self, double: float) -> 'Transform':
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, transform: 'Transform', transform2: 'Transform'): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, angularCoordinates: org.orekit.utils.AngularCoordinates): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, pVCoordinates: org.orekit.utils.PVCoordinates): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, pVCoordinates: org.orekit.utils.PVCoordinates, angularCoordinates: org.orekit.utils.AngularCoordinates): ...
+    def freeze(self) -> 'Transform':
         """
-            Get a time-shifted instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeShiftable.shiftedBy` in interface :class:`~org.orekit.time.TimeShiftable`
+            Get a frozen transform.
         
-            Parameters:
-                dt (double): time shift in seconds
+            This method creates a copy of the instance but frozen in time, i.e. with velocity, acceleration and rotation rate forced
+            to zero.
         
             Returns:
-                a new instance, shifted with respect to instance (which is not changed)
+                a new transform, without any time-dependent parts
         
         
         """
         ...
-    def staticShiftedBy(self, double: float) -> StaticTransform:
+    def getAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
-            Shift the transform in time considering all rates, then return only the translation and rotation portion of the
-            transform.
-        
-            Parameters:
-                dt (double): time shift in seconds.
+            Get the second time derivative of the translation.
         
             Returns:
-                shifted transform as a static transform. It is static in the sense that it can only be used to transform directions and
-                positions, but not velocities or accelerations.
+                second time derivative of the translation
         
             Also see:
-                :meth:`~org.orekit.frames.Transform.shiftedBy`
+                :meth:`~org.orekit.frames.Transform.getCartesian`, :meth:`~org.orekit.frames.Transform.getTranslation`,
+                :meth:`~org.orekit.frames.Transform.getVelocity`
         
         
         """
         ...
-    def toStaticTransform(self) -> StaticTransform:
+    def getAngular(self) -> org.orekit.utils.AngularCoordinates:
         """
-            Create a so-called static transform from the instance.
+            Get the underlying elementary angular part.
+        
+            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
+            returns this unique elementary rotation with its derivative.
         
             Returns:
-                static part of the transform. It is static in the sense that it can only be used to transform directions and positions,
-                but not velocities or accelerations.
+                underlying elementary angular part
         
             Also see:
-                :class:`~org.orekit.frames.StaticTransform`
+                :meth:`~org.orekit.frames.Transform.getRotation`, :meth:`~org.orekit.frames.Transform.getRotationRate`,
+                :meth:`~org.orekit.frames.Transform.getRotationAcceleration`
         
         
         """
         ...
-    _transformPVCoordinates_0__T = typing.TypeVar('_transformPVCoordinates_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    _transformPVCoordinates_2__T = typing.TypeVar('_transformPVCoordinates_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def transformPVCoordinates(self, fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_transformPVCoordinates_0__T]) -> org.orekit.utils.FieldPVCoordinates[_transformPVCoordinates_0__T]:
+    def getCartesian(self) -> org.orekit.utils.PVCoordinates:
         """
-            Transform :class:`~org.orekit.utils.FieldPVCoordinates` including kinematic effects.
-        
-            Parameters:
-                pv (:class:`~org.orekit.utils.FieldPVCoordinates`<T> pv): position-velocity to transform.
-        
-            Returns:
-                transformed position-velocity
-        
-            Transform :class:`~org.orekit.utils.TimeStampedFieldPVCoordinates` including kinematic effects.
-        
-            In order to allow the user more flexibility, this method does *not* check for consistency between the transform
-            :meth:`~org.orekit.frames.Transform.getDate` and the time-stamped position-velocity
-            :meth:`~org.orekit.utils.TimeStampedFieldPVCoordinates.getDate`. The returned value will always have the same
-            :meth:`~org.orekit.utils.TimeStampedFieldPVCoordinates.getDate` as the input argument, regardless of the instance
-            :meth:`~org.orekit.frames.Transform.getDate`.
+            Get the underlying elementary Cartesian part.
         
-            Parameters:
-                pv (:class:`~org.orekit.utils.TimeStampedFieldPVCoordinates`<T> pv): time-stamped position-velocity to transform.
+            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
+            returns this unique elementary translation with its derivative.
         
             Returns:
-                transformed time-stamped position-velocity
+                underlying elementary Cartesian part
         
-            Since:
-                7.0
+            Also see:
+                :meth:`~org.orekit.frames.Transform.getTranslation`, :meth:`~org.orekit.frames.Transform.getVelocity`
         
         
         """
         ...
-    @typing.overload
-    def transformPVCoordinates(self, pVCoordinates: org.orekit.utils.PVCoordinates) -> org.orekit.utils.PVCoordinates:
+    def getDate(self) -> org.orekit.time.AbsoluteDate:
         """
-            Transform :class:`~org.orekit.utils.PVCoordinates` including kinematic effects.
+            Get the date.
         
-            Parameters:
-                pva (:class:`~org.orekit.utils.PVCoordinates`): the position-velocity-acceleration triplet to transform.
+            Specified by:
+                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
         
             Returns:
-                transformed position-velocity-acceleration
+                date attached to the object
         
-            Transform :class:`~org.orekit.utils.TimeStampedPVCoordinates` including kinematic effects.
         
-            In order to allow the user more flexibility, this method does *not* check for consistency between the transform
-            :meth:`~org.orekit.frames.Transform.getDate` and the time-stamped position-velocity
-            :meth:`~org.orekit.utils.TimeStampedPVCoordinates.getDate`. The returned value will always have the same
-            :meth:`~org.orekit.utils.TimeStampedPVCoordinates.getDate` as the input argument, regardless of the instance
-            :meth:`~org.orekit.frames.Transform.getDate`.
+        """
+        ...
+    def getInverse(self) -> 'Transform':
+        """
+            Get the inverse transform of the instance.
         
-            Parameters:
-                pv (:class:`~org.orekit.utils.TimeStampedPVCoordinates`): time-stamped position-velocity to transform.
+            Specified by:
+                :meth:`~org.orekit.frames.KinematicTransform.getInverse` in interface :class:`~org.orekit.frames.KinematicTransform`
+        
+            Specified by:
+                :meth:`~org.orekit.frames.StaticTransform.getInverse` in interface :class:`~org.orekit.frames.StaticTransform`
         
             Returns:
-                transformed time-stamped position-velocity
+                inverse transform of the instance
         
-            Since:
-                7.0
         
         """
         ...
-    @typing.overload
-    def transformPVCoordinates(self, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_transformPVCoordinates_2__T]) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_transformPVCoordinates_2__T]: ...
-    @typing.overload
-    def transformPVCoordinates(self, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates) -> org.orekit.utils.TimeStampedPVCoordinates: ...
-
-class TwoBodiesBaryFrame(Frame):
-    """
-    public class TwoBodiesBaryFrame extends :class:`~org.orekit.frames.Frame`
-    
-        Class creating the inertial barycenter frame from two bodies.
-    
-        Since:
-            10.2
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    def __init__(self, celestialBody: org.orekit.bodies.CelestialBody, celestialBody2: org.orekit.bodies.CelestialBody): ...
-
-class UpdatableFrame(Frame):
-    """
-    public class UpdatableFrame extends :class:`~org.orekit.frames.Frame`
-    
-        Frame whose transform from its parent can be updated.
-    
-        This class allows to control the relative position of two parts of the global frames tree using any two frames in each
-        part as control handles. Consider the following simplified frames tree as an example:
-    
-        .. code-block: java
-        
-                      GCRF
-                        |
-          --------------------------------
-          |             |                |
-         Sun        satellite          Earth
-                        |                |
-                on-board antenna   ground station
-                                         |
-                                  tracking antenna
-         
-    
-        Tracking measurements really correspond to the link between the ground and on-board antennas. This is tightly linked to
-        the transform between these two frames, however neither frame is the direct parent frame of the other one: the path
-        involves four intermediate frames. When we process a measurement, what we really want to update is the transform that
-        defines the satellite frame with respect to its parent GCRF frame.
-    
-        In order to implement the above case, the satellite frame is defined as an instance of this class and its
-        :meth:`~org.orekit.frames.UpdatableFrame.updateTransform` would be called each time we want to adjust the frame, i.e.
-        each time we get a new measurement between the two antennas.
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    @typing.overload
-    def __init__(self, frame: Frame, transform: Transform, string: str): ...
-    @typing.overload
-    def __init__(self, frame: Frame, transform: Transform, string: str, boolean: bool): ...
-    def updateTransform(self, frame: Frame, frame2: Frame, transform: Transform, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+    def getJacobian(self, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, doubleArray: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]) -> None:
         """
-            Update the transform from parent frame implicitly according to two other frames.
+            Compute the Jacobian of the :meth:`~org.orekit.frames.Transform.transformPVCoordinates` method of the transform.
         
-            This method allows to control the relative position of two parts of the global frames tree using any two frames in each
-            part as control handles. Consider the following simplified frames tree as an example:
+            Element :code:`jacobian[i][j]` is the derivative of Cartesian coordinate i of the transformed
+            :class:`~org.orekit.utils.PVCoordinates` with respect to Cartesian coordinate j of the input
+            :class:`~org.orekit.utils.PVCoordinates` in method :meth:`~org.orekit.frames.Transform.transformPVCoordinates`.
+        
+            This definition implies that if we define position-velocity coordinates
         
             .. code-block: java
             
-                          GCRF
-                            |
-              --------------------------------
-              |             |                |
-             Sun        satellite          Earth
-                            |                |
-                    on-board antenna   ground station
-                                             |
-                                      tracking antenna
+             PV₁ = transform.transformPVCoordinates(PV₀), then
              
         
-            Tracking measurements really correspond to the link between the ground and on-board antennas. This is tightly linked to
-            the transform between these two frames, however neither frame is the direct parent frame of the other one: the path
-            involves four intermediate frames. When we process a measurement, what we really want to update is the transform that
-            defines the satellite frame with respect to its parent GCRF frame. This is the purpose of this method. This update is
-            done by the following call, where :code:`measurementTransform` represents the measurement as a simple translation
-            transform between the two antenna frames:
+            their differentials dPV₁ and dPV₀ will obey the following relation where J is the matrix computed by this method:
         
             .. code-block: java
             
-             satellite.updateTransform(onBoardAntenna, trackingAntenna,
-                                       measurementTransform, date);
+             dPV₁ = J × dPV₀
              
         
-            One way to represent the behavior of the method is to consider the sub-tree rooted at the instance on one hand
-            (satellite and on-board antenna in the example above) and the tree containing all the other frames on the other hand
-            (GCRF, Sun, Earth, ground station, tracking antenna). Both tree are considered as two solid sets linked together by a
-            flexible spring, which is the transform we want to update. The method stretches the spring to make sure the transform
-            between the two specified frames (one in each tree part) matches the specified transform.
-        
             Parameters:
-                f1 (:class:`~org.orekit.frames.Frame`): first control frame (may be the instance itself)
-                f2 (:class:`~org.orekit.frames.Frame`): second control frame (may be the instance itself)
-                f1Tof2 (:class:`~org.orekit.frames.Transform`): desired transform from first to second control frame
-                date (:class:`~org.orekit.time.AbsoluteDate`): date of the transform
-        
-        
-        """
-        ...
-
-class VersionedITRF(Frame):
-    """
-    public class VersionedITRF extends :class:`~org.orekit.frames.Frame`
-    
-        Specific version of International Terrestrial Reference Frame.
-    
-        This class represents an ITRF with a specific version, regardless of the version of the underlying
-        :class:`~org.orekit.frames.EOPEntry`.
-    
-        Since:
-            9.2
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    def getITRFVersion(self) -> ITRFVersion:
-        """
-            Get the ITRF version.
-        
-            Returns:
-                ITRF version
+                selector (:class:`~org.orekit.utils.CartesianDerivativesFilter`): selector specifying the size of the upper left corner that must be filled (either 3x3 for positions only, 6x6 for
+                    positions and velocities, 9x9 for positions, velocities and accelerations)
+                jacobian (double[][]):             placeholder matrix whose upper-left corner is to be filled with the Jacobian, the rest of the matrix remaining untouched
         
         
         """
         ...
-
-class GTODProvider(EOPBasedTransformProvider):
-    """
-    public class GTODProvider extends :class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.frames.EOPBasedTransformProvider`
-    
-        Greenwich True Of Date Frame, also known as True of Date Rotating frame (TDR) or Greenwich Rotating Coordinate frame
-        (GCR).
-    
-        This frame handles the sidereal time according to IAU-82 model.
-    
-        Its parent frame is the :code:`TODProvider`.
-    
-        The pole motion is not applied here.
-    
-        Also see:
-            :meth:`~serialized`
-    """
-    def getEOPHistory(self) -> EOPHistory:
+    def getRotation(self) -> org.hipparchus.geometry.euclidean.threed.Rotation:
         """
-            Get the EOP history.
+            Get the underlying elementary rotation.
+        
+            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
+            returns this unique elementary rotation.
         
             Specified by:
-                :meth:`~org.orekit.frames.EOPBasedTransformProvider.getEOPHistory` in
-                interface :class:`~org.orekit.frames.EOPBasedTransformProvider`
+                :meth:`~org.orekit.frames.StaticTransform.getRotation` in interface :class:`~org.orekit.frames.StaticTransform`
         
             Returns:
-                EOP history
+                underlying elementary rotation
+        
+            Also see:
+                :meth:`~org.orekit.frames.Transform.getAngular`, :meth:`~org.orekit.frames.Transform.getRotationRate`,
+                :meth:`~org.orekit.frames.Transform.getRotationAcceleration`
         
         
         """
         ...
-    def getNonInterpolatingProvider(self) -> 'GTODProvider':
+    def getRotationAcceleration(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
-            Get a version of the provider that does *not* cache tidal corrections.
-        
-            This method removes the performance enhancing interpolation features that are used by default in EOP-based provider, in
-            order to focus on accuracy. The interpolation features are intended to save processing time by avoiding doing tidal
-            correction evaluation at each time step and caching some results. This method can be used to avoid this (it is
-            automatically called by :meth:`~org.orekit.frames.FramesFactory.getNonInterpolatingTransform`, when very high accuracy
-            is desired, or for testing purposes. It should be used with care, as doing the full computation is *really* costly.
-        
-            Specified by:
-                :meth:`~org.orekit.frames.EOPBasedTransformProvider.getNonInterpolatingProvider` in
-                interface :class:`~org.orekit.frames.EOPBasedTransformProvider`
+            Get the second time derivative of the rotation.
         
             Returns:
-                version of the provider that does *not* cache tidal corrections
+                Second time derivative of the rotation
         
             Also see:
-                :meth:`~org.orekit.frames.FramesFactory.getNonInterpolatingTransform`
+                :meth:`~org.orekit.frames.Transform.getAngular`, :meth:`~org.orekit.frames.Transform.getRotation`,
+                :meth:`~org.orekit.frames.Transform.getRotationRate`
         
         
         """
         ...
-    _getStaticTransform_0__T = typing.TypeVar('_getStaticTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getStaticTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getStaticTransform_0__T]) -> FieldStaticTransform[_getStaticTransform_0__T]:
+    def getRotationRate(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
-            Get a transform for only rotations and translations on the specified date.
+            Get the first time derivative of the rotation.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
-            override it for better performance.
+            The norm represents the angular rate.
         
             Specified by:
-                :meth:`~org.orekit.frames.TransformProvider.getStaticTransform` in
-                interface :class:`~org.orekit.frames.TransformProvider`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date.
+                :meth:`~org.orekit.frames.KinematicTransform.getRotationRate` in
+                interface :class:`~org.orekit.frames.KinematicTransform`
         
             Returns:
-                the static transform.
+                First time derivative of the rotation
+        
+            Also see:
+                :meth:`~org.orekit.frames.Transform.getAngular`, :meth:`~org.orekit.frames.Transform.getRotation`,
+                :meth:`~org.orekit.frames.Transform.getRotationAcceleration`
         
         
         """
         ...
-    @typing.overload
-    def getStaticTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> StaticTransform:
+    def getTranslation(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
-            Get a transform for only rotations and translations on the specified date.
+            Get the underlying elementary translation.
         
-            The default implementation returns :meth:`~org.orekit.frames.TransformProvider.getTransform` but implementations may
-            override it for better performance.
+            A transform can be uniquely represented as an elementary translation followed by an elementary rotation. This method
+            returns this unique elementary translation.
         
             Specified by:
-                :meth:`~org.orekit.frames.TransformProvider.getStaticTransform` in
-                interface :class:`~org.orekit.frames.TransformProvider`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date.
+                :meth:`~org.orekit.frames.StaticTransform.getTranslation` in interface :class:`~org.orekit.frames.StaticTransform`
         
             Returns:
-                the static transform.
+                underlying elementary translation
+        
+            Also see:
+                :meth:`~org.orekit.frames.Transform.getCartesian`, :meth:`~org.orekit.frames.Transform.getVelocity`,
+                :meth:`~org.orekit.frames.Transform.getAcceleration`
+        
         
         """
         ...
-    _getTransform_0__T = typing.TypeVar('_getTransform_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getTransform(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getTransform_0__T]) -> FieldTransform[_getTransform_0__T]:
+    def getVelocity(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
-            Get the :class:`~org.orekit.frames.FieldTransform` corresponding to specified date.
+            Get the first time derivative of the translation.
         
             Specified by:
-                :meth:`~org.orekit.frames.TransformProvider.getTransform` in interface :class:`~org.orekit.frames.TransformProvider`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+                :meth:`~org.orekit.frames.KinematicTransform.getVelocity` in interface :class:`~org.orekit.frames.KinematicTransform`
         
             Returns:
-                transform at specified date
+                first time derivative of the translation
+        
+            Also see:
+                :meth:`~org.orekit.frames.Transform.getCartesian`, :meth:`~org.orekit.frames.Transform.getTranslation`,
+                :meth:`~org.orekit.frames.Transform.getAcceleration`
         
         
         """
         ...
     @typing.overload
-    def getTransform(self, absoluteDate: org.orekit.time.AbsoluteDate) -> Transform:
+    def interpolate(self, absoluteDate: org.orekit.time.AbsoluteDate, stream: java.util.stream.Stream['Transform']) -> 'Transform': ...
+    @typing.overload
+    @staticmethod
+    def interpolate(absoluteDate: org.orekit.time.AbsoluteDate, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter, collection: typing.Union[java.util.Collection['Transform'], typing.Sequence['Transform'], typing.Set['Transform']]) -> 'Transform': ...
+    def shiftedBy(self, double: float) -> 'Transform':
         """
-            Get the :class:`~org.orekit.frames.Transform` corresponding to specified date.
+            Get a time-shifted instance.
         
             Specified by:
-                :meth:`~org.orekit.frames.TransformProvider.getTransform` in interface :class:`~org.orekit.frames.TransformProvider`
+                :meth:`~org.orekit.time.TimeShiftable.shiftedBy` in interface :class:`~org.orekit.time.TimeShiftable`
         
             Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                dt (double): time shift in seconds
         
             Returns:
-                transform at specified date
+                a new instance, shifted with respect to instance (which is not changed)
+        
         
         """
         ...
-
-class LazyLoadedFrames(AbstractFrames):
-    """
-    public class LazyLoadedFrames extends :class:`~org.orekit.frames.AbstractFrames`
-    
-        This class lazily loads auxiliary data when it is needed by a requested frame. It is designed to match the behavior of
-        :class:`~org.orekit.frames.FramesFactory` in Orekit 10.0.
-    
-        Since:
-            10.1
-    
-        Also see:
-            :class:`~org.orekit.frames.LazyLoadedEop`
-    """
-    def __init__(self, lazyLoadedEop: LazyLoadedEop, timeScales: org.orekit.time.TimeScales, celestialBodies: org.orekit.bodies.CelestialBodies): ...
-    def addDefaultEOP1980HistoryLoaders(self, string: str, string2: str, string3: str, string4: str, string5: str, string6: str) -> None:
+    def staticShiftedBy(self, double: float) -> StaticTransform:
         """
-            Add the default loaders EOP history (IAU 1980 precession/nutation).
-        
-            The default loaders look for IERS EOP C04 and bulletins B files. They correspond to
-            :meth:`~org.orekit.utils.IERSConventions.IERS_1996` conventions.
+            Shift the transform in time considering all rates, then return only the translation and rotation portion of the
+            transform.
         
             Parameters:
-                rapidDataColumnsSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported rapid data columns EOP files names (may be null if the default IERS file names are
-                    used)
-                xmlSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported XML EOP files names (may be null if the default IERS file names are used)
-                eopC04SupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported EOP C04 files names (may be null if the default IERS file names are used)
-                bulletinBSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin B files names (may be null if the default IERS file names are used)
-                bulletinASupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin A files names (may be null if the default IERS file names are used)
-                csvSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported csv files names (may be null if the default IERS file names are used)
+                dt (double): time shift in seconds.
         
-            Since:
-                12.0
+            Returns:
+                shifted transform as a static transform. It is static in the sense that it can only be used to transform directions and
+                positions, but not velocities or accelerations.
         
             Also see:
-                :class:`~org.orekit.frames.https:.datacenter.iers.org.products.eop`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP2000HistoryLoaders`
+                :meth:`~org.orekit.frames.Transform.shiftedBy`
         
         
         """
         ...
-    def addDefaultEOP2000HistoryLoaders(self, string: str, string2: str, string3: str, string4: str, string5: str, string6: str) -> None:
+    def toStaticTransform(self) -> StaticTransform:
         """
-            Add the default loaders for EOP history (IAU 2000/2006 precession/nutation).
-        
-            The default loaders look for IERS EOP C04 and bulletins B files. They correspond to both
-            :meth:`~org.orekit.utils.IERSConventions.IERS_2003` and :meth:`~org.orekit.utils.IERSConventions.IERS_2010` conventions.
-        
-            Parameters:
-                rapidDataColumnsSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported rapid data columns EOP files names (may be null if the default IERS file names are
-                    used)
-                xmlSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported XML EOP files names (may be null if the default IERS file names are used)
-                eopC04SupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported EOP C04 files names (may be null if the default IERS file names are used)
-                bulletinBSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin B files names (may be null if the default IERS file names are used)
-                bulletinASupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported bulletin A files names (may be null if the default IERS file names are used)
-                csvSupportedNames (:class:`~org.orekit.frames.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): regular expression for supported csv files names (may be null if the default IERS file names are used)
+            Create a so-called static transform from the instance.
         
-            Since:
-                12.0
+            Returns:
+                static part of the transform. It is static in the sense that it can only be used to transform directions and positions,
+                but not velocities or accelerations.
         
             Also see:
-                :class:`~org.orekit.frames.https:.datacenter.iers.org.products.eop`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders`
+                :class:`~org.orekit.frames.StaticTransform`
         
         
         """
         ...
-    def addEOPHistoryLoader(self, iERSConventions: org.orekit.utils.IERSConventions, eopHistoryLoader: typing.Union[EopHistoryLoader, typing.Callable]) -> None:
+    _transformPVCoordinates_0__T = typing.TypeVar('_transformPVCoordinates_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _transformPVCoordinates_2__T = typing.TypeVar('_transformPVCoordinates_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def transformPVCoordinates(self, fieldPVCoordinates: org.orekit.utils.FieldPVCoordinates[_transformPVCoordinates_0__T]) -> org.orekit.utils.FieldPVCoordinates[_transformPVCoordinates_0__T]:
         """
-            Add a loader for Earth Orientation Parameters history.
+            Transform :class:`~org.orekit.utils.FieldPVCoordinates` including kinematic effects.
         
             Parameters:
-                conventions (:class:`~org.orekit.utils.IERSConventions`): IERS conventions to which EOP history applies
-                loader (:class:`~org.orekit.frames.EopHistoryLoader`): custom loader to add for the EOP history
+                pv (:class:`~org.orekit.utils.FieldPVCoordinates`<T> pv): position-velocity to transform.
         
-            Also see:
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders`
+            Returns:
+                transformed position-velocity
         
+            Transform :class:`~org.orekit.utils.TimeStampedFieldPVCoordinates` including kinematic effects.
         
-        """
-        ...
-    def clearEOPHistoryLoaders(self) -> None:
-        """
-            Clear loaders for Earth Orientation Parameters history.
+            In order to allow the user more flexibility, this method does *not* check for consistency between the transform
+            :meth:`~org.orekit.frames.Transform.getDate` and the time-stamped position-velocity
+            :meth:`~org.orekit.utils.TimeStampedFieldPVCoordinates.getDate`. The returned value will always have the same
+            :meth:`~org.orekit.utils.TimeStampedFieldPVCoordinates.getDate` as the input argument, regardless of the instance
+            :meth:`~org.orekit.frames.Transform.getDate`.
         
-            Also see:
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader`,
-                :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders`
+            Parameters:
+                pv (:class:`~org.orekit.utils.TimeStampedFieldPVCoordinates`<T> pv): time-stamped position-velocity to transform.
+        
+            Returns:
+                transformed time-stamped position-velocity
+        
+            Since:
+                7.0
         
         
         """
         ...
-    def getEOPHistory(self, iERSConventions: org.orekit.utils.IERSConventions, boolean: bool) -> EOPHistory:
+    @typing.overload
+    def transformPVCoordinates(self, pVCoordinates: org.orekit.utils.PVCoordinates) -> org.orekit.utils.PVCoordinates:
         """
-            Get Earth Orientation Parameters history.
-        
-            If no :class:`~org.orekit.frames.EopHistoryLoader` has been added by calling
-            :meth:`~org.orekit.frames.LazyLoadedFrames.addEOPHistoryLoader` or if
-            :meth:`~org.orekit.frames.LazyLoadedFrames.clearEOPHistoryLoaders` has been called afterwards, the
-            :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP1980HistoryLoaders` and
-            :meth:`~org.orekit.frames.LazyLoadedFrames.addDefaultEOP2000HistoryLoaders` methods will be called automatically with
-            supported file names parameters all set to null, in order to get the default loaders configuration.
+            Transform :class:`~org.orekit.utils.PVCoordinates` including kinematic effects.
         
             Parameters:
-                conventions (:class:`~org.orekit.utils.IERSConventions`): conventions for which EOP history is requested
-                simpleEOP (boolean): if true, tidal effects are ignored when interpolating EOP
+                pva (:class:`~org.orekit.utils.PVCoordinates`): the position-velocity-acceleration triplet to transform.
         
             Returns:
-                Earth Orientation Parameters history
-        
-        
-        """
-        ...
-    def setEOPContinuityThreshold(self, double: float) -> None:
-        """
-            Set the threshold to check EOP continuity.
+                transformed position-velocity-acceleration
         
-            The default threshold (used if this method is never called) is 5 Julian days. If after loading EOP entries some holes
-            between entries exceed this threshold, an exception will be triggered.
+            Transform :class:`~org.orekit.utils.TimeStampedPVCoordinates` including kinematic effects.
         
-            One case when calling this method is really useful is for applications that use a single Bulletin A, as these bulletins
-            have a roughly one month wide hole for the first bulletin of each month, which contains older final data in addition to
-            the rapid data and the predicted data.
+            In order to allow the user more flexibility, this method does *not* check for consistency between the transform
+            :meth:`~org.orekit.frames.Transform.getDate` and the time-stamped position-velocity
+            :meth:`~org.orekit.utils.TimeStampedPVCoordinates.getDate`. The returned value will always have the same
+            :meth:`~org.orekit.utils.TimeStampedPVCoordinates.getDate` as the input argument, regardless of the instance
+            :meth:`~org.orekit.frames.Transform.getDate`.
         
             Parameters:
-                threshold (double): threshold to use for checking EOP continuity (in seconds)
+                pv (:class:`~org.orekit.utils.TimeStampedPVCoordinates`): time-stamped position-velocity to transform.
+        
+            Returns:
+                transformed time-stamped position-velocity
         
+            Since:
+                7.0
         
         """
         ...
+    @typing.overload
+    def transformPVCoordinates(self, timeStampedFieldPVCoordinates: org.orekit.utils.TimeStampedFieldPVCoordinates[_transformPVCoordinates_2__T]) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_transformPVCoordinates_2__T]: ...
+    @typing.overload
+    def transformPVCoordinates(self, timeStampedPVCoordinates: org.orekit.utils.TimeStampedPVCoordinates) -> org.orekit.utils.TimeStampedPVCoordinates: ...
 
 
 class __module_protocol__(Protocol):
@@ -5171,6 +5755,7 @@ class __module_protocol__(Protocol):
     EclipticProvider: typing.Type[EclipticProvider]
     EopHistoryLoader: typing.Type[EopHistoryLoader]
     FactoryManagedFrame: typing.Type[FactoryManagedFrame]
+    FieldKinematicTransform: typing.Type[FieldKinematicTransform]
     FieldPoleCorrection: typing.Type[FieldPoleCorrection]
     FieldStaticTransform: typing.Type[FieldStaticTransform]
     FieldTransform: typing.Type[FieldTransform]
@@ -5185,6 +5770,7 @@ class __module_protocol__(Protocol):
     ITRFVersionLoader: typing.Type[ITRFVersionLoader]
     InterpolatingTransformProvider: typing.Type[InterpolatingTransformProvider]
     ItrfVersionProvider: typing.Type[ItrfVersionProvider]
+    KinematicTransform: typing.Type[KinematicTransform]
     L1Frame: typing.Type[L1Frame]
     L1TransformProvider: typing.Type[L1TransformProvider]
     L2Frame: typing.Type[L2Frame]
diff --git a/org-stubs/orekit/gnss/__init__.pyi b/org-stubs/orekit/gnss/__init__.pyi
index f6ef5ede652b3cf65b05ce5fc175ded29f10eaa6..ca738a0c585e3aa524884fd40c21c01c390d115e 100644
--- a/org-stubs/orekit/gnss/__init__.pyi
+++ b/org-stubs/orekit/gnss/__init__.pyi
@@ -10,6 +10,7 @@ import java.lang
 import java.util
 import org.orekit.bodies
 import org.orekit.data
+import org.orekit.frames
 import org.orekit.gnss.antenna
 import org.orekit.gnss.attitude
 import org.orekit.gnss.metric
@@ -214,167 +215,70 @@ class DOPComputer:
         """
         ...
 
-class Frequency(java.lang.Enum['Frequency']):
+class IGSUtils:
     """
-    public enum Frequency extends :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.orekit.gnss.Frequency`>
+    public class IGSUtils extends :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
     
-        Enumerate for GNSS frequencies.
+        Utility for IGS files.
     
         Since:
-            9.2
-    """
-    G01: typing.ClassVar['Frequency'] = ...
-    G02: typing.ClassVar['Frequency'] = ...
-    G05: typing.ClassVar['Frequency'] = ...
-    R01: typing.ClassVar['Frequency'] = ...
-    R02: typing.ClassVar['Frequency'] = ...
-    R03: typing.ClassVar['Frequency'] = ...
-    R04: typing.ClassVar['Frequency'] = ...
-    R06: typing.ClassVar['Frequency'] = ...
-    E01: typing.ClassVar['Frequency'] = ...
-    E05: typing.ClassVar['Frequency'] = ...
-    E07: typing.ClassVar['Frequency'] = ...
-    E08: typing.ClassVar['Frequency'] = ...
-    E06: typing.ClassVar['Frequency'] = ...
-    C01: typing.ClassVar['Frequency'] = ...
-    C02: typing.ClassVar['Frequency'] = ...
-    C05: typing.ClassVar['Frequency'] = ...
-    C06: typing.ClassVar['Frequency'] = ...
-    C07: typing.ClassVar['Frequency'] = ...
-    C08: typing.ClassVar['Frequency'] = ...
-    B01: typing.ClassVar['Frequency'] = ...
-    B02: typing.ClassVar['Frequency'] = ...
-    B03: typing.ClassVar['Frequency'] = ...
-    B1C: typing.ClassVar['Frequency'] = ...
-    B1A: typing.ClassVar['Frequency'] = ...
-    B2A: typing.ClassVar['Frequency'] = ...
-    B2B: typing.ClassVar['Frequency'] = ...
-    B08: typing.ClassVar['Frequency'] = ...
-    B3A: typing.ClassVar['Frequency'] = ...
-    J01: typing.ClassVar['Frequency'] = ...
-    J02: typing.ClassVar['Frequency'] = ...
-    J05: typing.ClassVar['Frequency'] = ...
-    J06: typing.ClassVar['Frequency'] = ...
-    I05: typing.ClassVar['Frequency'] = ...
-    I09: typing.ClassVar['Frequency'] = ...
-    S01: typing.ClassVar['Frequency'] = ...
-    S05: typing.ClassVar['Frequency'] = ...
-    F0: typing.ClassVar[float] = ...
-    """
-    public static final double F0
-    
-        Common frequency F0 in MHz (10.23 MHz).
-    
-        Also see:
-            :meth:`~constant`
-    
-    
+            12.1
     """
-    def getMHzFrequency(self) -> float:
-        """
-            Get the value of the frequency in MHz.
-        
-            Returns:
-                value of the frequency in MHz
-        
-            Also see:
-                :meth:`~org.orekit.gnss.Frequency.F0`, :meth:`~org.orekit.gnss.Frequency.getRatio`,
-                :meth:`~org.orekit.gnss.Frequency.getWavelength`
-        
-        
-        """
-        ...
-    def getName(self) -> str:
-        """
-            Get the RINEX name for the frequency.
-        
-            Returns:
-                RINEX name for the frequency
-        
-        
-        """
-        ...
-    def getRatio(self) -> float:
-        """
-            Get the ratio f/f0, where :meth:`~org.orekit.gnss.Frequency.F0` is the common frequency.
-        
-            Returns:
-                ratio f/f0, where :meth:`~org.orekit.gnss.Frequency.F0` is the common frequency
-        
-            Also see:
-                :meth:`~org.orekit.gnss.Frequency.F0`, :meth:`~org.orekit.gnss.Frequency.getMHzFrequency`
-        
-        
-        """
-        ...
-    def getSatelliteSystem(self) -> 'SatelliteSystem':
+    @staticmethod
+    def frameName(frame: org.orekit.frames.Frame) -> str:
         """
-            Get the satellite system for which this frequency is defined.
-        
-            Returns:
-                satellite system for which this frequency is defined
+            Guess a frame name.
         
+            If the frame is not compatible with :meth:`~org.orekit.gnss.IGSUtils.guessFrame`, an exception will be triggered
         
-        """
-        ...
-    def getWavelength(self) -> float:
-        """
-            Get the wavelength in meters.
+            Parameters:
+                frame (:class:`~org.orekit.frames.Frame`): frame from which we want the name
         
             Returns:
-                wavelength in meters
+                name compatible with :meth:`~org.orekit.gnss.IGSUtils.guessFrame`
         
             Since:
-                10.1
-        
-            Also see:
-                :meth:`~org.orekit.gnss.Frequency.getMHzFrequency`
+                12.1
         
         
         """
         ...
-    _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
-    @typing.overload
-    @staticmethod
-    def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
     @typing.overload
     @staticmethod
-    def valueOf(string: str) -> 'Frequency':
+    def guessFrame(string: str) -> org.orekit.frames.Frame:
         """
-            Returns the enum constant of this type with the specified name. The string must match *exactly* an identifier used to
-            declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+            Default string to :class:`~org.orekit.frames.Frame` conversion for :class:`~org.orekit.files.sp3.SP3Parser` or
+            :class:`~org.orekit.files.rinex.clock.RinexClockParser`.
         
-            Parameters:
-                name (:class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+            Various frame names are supported:
         
-            Returns:
-                the enum constant with the specified name
-        
-            Raises:
-                :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
-                :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+              - IGS##, or ITR##, or ITRF##, or SLR##, where ## is a two digits number, then this number will be used to build the
+                appropriate :class:`~org.orekit.frames.ITRFVersion`
+              - GCRF (left or right justified) for GCRF inertial frame
+              - EME00 or EME2K for EME2000 inertial frame
+              - for all other names (for example if name is UNDEF or WGS84), then a default :meth:`~org.orekit.frames.Frames.getITRF`
+                frame will be selected
         
         
-        """
-        ...
-    @staticmethod
-    def values() -> typing.MutableSequence['Frequency']:
-        """
-            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
-            iterate over the constants as follows:
+            Note that using inertial frames in classical products like SP3 files is non-standard, it is supported by Orekit, but may
+            not be supported by other programs, so they should be used with caution when writing files.
         
-            .. code-block: java
-            
-            for (Frequency c : Frequency.values())
-                System.out.println(c);
-            
+            Parameters:
+                frames (:class:`~org.orekit.frames.Frames`): frames factory
+                name (:class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): of the frame.
         
             Returns:
-                an array containing the constants of this enum type, in the order they are declared
+                guessed frame
+        
+            Since:
+                12.1
         
         
         """
         ...
+    @typing.overload
+    @staticmethod
+    def guessFrame(frames: org.orekit.frames.Frames, string: str) -> org.orekit.frames.Frame: ...
 
 class MeasurementType(java.lang.Enum['MeasurementType']):
     """
@@ -834,7 +738,7 @@ class ObservationType(java.lang.Enum['ObservationType']):
     SB: typing.ClassVar['ObservationType'] = ...
     SC: typing.ClassVar['ObservationType'] = ...
     SD: typing.ClassVar['ObservationType'] = ...
-    def getFrequency(self, satelliteSystem: 'SatelliteSystem') -> Frequency:
+    def getFrequency(self, satelliteSystem: 'SatelliteSystem') -> 'Frequency':
         """
             Get the frequency for a specified satellite system.
         
@@ -910,6 +814,42 @@ class ObservationType(java.lang.Enum['ObservationType']):
         """
         ...
 
+class RadioWave:
+    """
+    public interface RadioWave
+    
+        Top level interface for radio waves.
+    
+        Since:
+            12.1
+    """
+    def getFrequency(self) -> float:
+        """
+            Get the value of the frequency in Hz.
+        
+            Returns:
+                value of the frequency in Hz
+        
+            Also see:
+                :meth:`~org.orekit.gnss.RadioWave.getWavelength`
+        
+        
+        """
+        ...
+    def getWavelength(self) -> float:
+        """
+            Get the wavelength in meters.
+        
+            Returns:
+                wavelength in meters
+        
+            Also see:
+                :meth:`~org.orekit.gnss.RadioWave.getFrequency`
+        
+        
+        """
+        ...
+
 class SEMParser(org.orekit.data.AbstractSelfFeedingLoader, org.orekit.data.DataLoader):
     """
     public class SEMParser extends :class:`~org.orekit.data.AbstractSelfFeedingLoader` implements :class:`~org.orekit.data.DataLoader`
@@ -1437,6 +1377,205 @@ class YUMAParser(org.orekit.data.AbstractSelfFeedingLoader, org.orekit.data.Data
         """
         ...
 
+class GnssSignal(RadioWave):
+    """
+    public interface GnssSignal extends :class:`~org.orekit.gnss.RadioWave`
+    
+        Intermediate level interface for radio waves related to GNSS common frequency.
+    
+        Since:
+            12.1
+    """
+    F0: typing.ClassVar[float] = ...
+    """
+    static final double F0
+    
+        Common frequency F0 in Hz (10.23 MHz).
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def getRatio(self) -> float:
+        """
+            Get the ratio f/f0, where :meth:`~org.orekit.gnss.GnssSignal.F0` is the common frequency.
+        
+            Returns:
+                ratio f/f0, where :meth:`~org.orekit.gnss.GnssSignal.F0` is the common frequency
+        
+            Also see:
+                :meth:`~org.orekit.gnss.GnssSignal.F0`, :meth:`~org.orekit.gnss.RadioWave.getFrequency`
+        
+        
+        """
+        ...
+
+class Frequency(java.lang.Enum['Frequency'], GnssSignal):
+    """
+    public enum Frequency extends :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.orekit.gnss.Frequency`> implements :class:`~org.orekit.gnss.GnssSignal`
+    
+        Enumerate for GNSS frequencies.
+    
+        Since:
+            9.2
+    """
+    G01: typing.ClassVar['Frequency'] = ...
+    G02: typing.ClassVar['Frequency'] = ...
+    G05: typing.ClassVar['Frequency'] = ...
+    R01: typing.ClassVar['Frequency'] = ...
+    R02: typing.ClassVar['Frequency'] = ...
+    R03: typing.ClassVar['Frequency'] = ...
+    R04: typing.ClassVar['Frequency'] = ...
+    R06: typing.ClassVar['Frequency'] = ...
+    E01: typing.ClassVar['Frequency'] = ...
+    E05: typing.ClassVar['Frequency'] = ...
+    E07: typing.ClassVar['Frequency'] = ...
+    E08: typing.ClassVar['Frequency'] = ...
+    E06: typing.ClassVar['Frequency'] = ...
+    C01: typing.ClassVar['Frequency'] = ...
+    C02: typing.ClassVar['Frequency'] = ...
+    C05: typing.ClassVar['Frequency'] = ...
+    C06: typing.ClassVar['Frequency'] = ...
+    C07: typing.ClassVar['Frequency'] = ...
+    C08: typing.ClassVar['Frequency'] = ...
+    B01: typing.ClassVar['Frequency'] = ...
+    B02: typing.ClassVar['Frequency'] = ...
+    B03: typing.ClassVar['Frequency'] = ...
+    B1C: typing.ClassVar['Frequency'] = ...
+    B1A: typing.ClassVar['Frequency'] = ...
+    B2A: typing.ClassVar['Frequency'] = ...
+    B2B: typing.ClassVar['Frequency'] = ...
+    B08: typing.ClassVar['Frequency'] = ...
+    B3A: typing.ClassVar['Frequency'] = ...
+    J01: typing.ClassVar['Frequency'] = ...
+    J02: typing.ClassVar['Frequency'] = ...
+    J05: typing.ClassVar['Frequency'] = ...
+    J06: typing.ClassVar['Frequency'] = ...
+    I05: typing.ClassVar['Frequency'] = ...
+    I09: typing.ClassVar['Frequency'] = ...
+    S01: typing.ClassVar['Frequency'] = ...
+    S05: typing.ClassVar['Frequency'] = ...
+    F0: typing.ClassVar[float] = ...
+    """
+    :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public static final double F0
+    
+        Deprecated.
+        as of 12.1, replaced by :meth:`~org.orekit.gnss.GnssSignal.F0`
+        Common frequency F0 in MHz (10.23 MHz).
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def getFrequency(self) -> float:
+        """
+            Get the value of the frequency in Hz.
+        
+            Specified by:
+                :meth:`~org.orekit.gnss.RadioWave.getFrequency` in interface :class:`~org.orekit.gnss.RadioWave`
+        
+            Returns:
+                value of the frequency in Hz
+        
+            Also see:
+                :meth:`~org.orekit.gnss.RadioWave.getWavelength`
+        
+        
+        """
+        ...
+    def getMHzFrequency(self) -> float:
+        """
+            Deprecated.
+            as of 12.1 replaced by :meth:`~org.orekit.gnss.Frequency.getFrequency`
+            Get the value of the frequency in MHz.
+        
+            Returns:
+                value of the frequency in MHz
+        
+        
+        """
+        ...
+    def getName(self) -> str:
+        """
+            Get the RINEX name for the frequency.
+        
+            Returns:
+                RINEX name for the frequency
+        
+        
+        """
+        ...
+    def getRatio(self) -> float:
+        """
+            Get the ratio f/f0, where :meth:`~org.orekit.gnss.GnssSignal.F0` is the common frequency.
+        
+            Specified by:
+                :meth:`~org.orekit.gnss.GnssSignal.getRatio` in interface :class:`~org.orekit.gnss.GnssSignal`
+        
+            Returns:
+                ratio f/f0, where :meth:`~org.orekit.gnss.GnssSignal.F0` is the common frequency
+        
+            Also see:
+                :meth:`~org.orekit.gnss.GnssSignal.F0`, :meth:`~org.orekit.gnss.RadioWave.getFrequency`
+        
+        
+        """
+        ...
+    def getSatelliteSystem(self) -> SatelliteSystem:
+        """
+            Get the satellite system for which this frequency is defined.
+        
+            Returns:
+                satellite system for which this frequency is defined
+        
+        
+        """
+        ...
+    _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+    @typing.overload
+    @staticmethod
+    def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+    @typing.overload
+    @staticmethod
+    def valueOf(string: str) -> 'Frequency':
+        """
+            Returns the enum constant of this type with the specified name. The string must match *exactly* an identifier used to
+            declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+        
+            Parameters:
+                name (:class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+        
+            Returns:
+                the enum constant with the specified name
+        
+            Raises:
+                :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
+                :class:`~org.orekit.gnss.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+        
+        
+        """
+        ...
+    @staticmethod
+    def values() -> typing.MutableSequence['Frequency']:
+        """
+            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
+            iterate over the constants as follows:
+        
+            .. code-block: java
+            
+            for (Frequency c : Frequency.values())
+                System.out.println(c);
+            
+        
+            Returns:
+                an array containing the constants of this enum type, in the order they are declared
+        
+        
+        """
+        ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.gnss")``.
@@ -1444,9 +1583,12 @@ class __module_protocol__(Protocol):
     DOP: typing.Type[DOP]
     DOPComputer: typing.Type[DOPComputer]
     Frequency: typing.Type[Frequency]
+    GnssSignal: typing.Type[GnssSignal]
+    IGSUtils: typing.Type[IGSUtils]
     MeasurementType: typing.Type[MeasurementType]
     ObservationTimeScale: typing.Type[ObservationTimeScale]
     ObservationType: typing.Type[ObservationType]
+    RadioWave: typing.Type[RadioWave]
     SEMParser: typing.Type[SEMParser]
     SatInSystem: typing.Type[SatInSystem]
     SatelliteSystem: typing.Type[SatelliteSystem]
diff --git a/org-stubs/orekit/gnss/antenna/__init__.pyi b/org-stubs/orekit/gnss/antenna/__init__.pyi
index 74141b8e8643013ec596c09f6546acff70418bf0..71e159d685bda4d9eb4eff8057bb0217b29dc96c 100644
--- a/org-stubs/orekit/gnss/antenna/__init__.pyi
+++ b/org-stubs/orekit/gnss/antenna/__init__.pyi
@@ -252,7 +252,7 @@ class SatelliteType(java.lang.Enum['SatelliteType']):
     QZSS_2A: typing.ClassVar['SatelliteType'] = ...
     QZSS_2I: typing.ClassVar['SatelliteType'] = ...
     QZSS_2G: typing.ClassVar['SatelliteType'] = ...
-    def buildAttitudeProvider(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame, int: int) -> org.orekit.gnss.attitude.GNSSAttitudeProvider:
+    def buildAttitudeProvider(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame, int: int) -> org.orekit.gnss.attitude.GNSSAttitudeProvider:
         """
             Build an attitude provider suitable for this satellite type.
         
diff --git a/org-stubs/orekit/gnss/attitude/__init__.pyi b/org-stubs/orekit/gnss/attitude/__init__.pyi
index e32f3fb582d0e7140fb995ff2c31aeb2b1a191ab..443d0b9db224902da03eac4e3fe3d8f565bb4a43 100644
--- a/org-stubs/orekit/gnss/attitude/__init__.pyi
+++ b/org-stubs/orekit/gnss/attitude/__init__.pyi
@@ -57,7 +57,7 @@ class BeidouGeo(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Since:
             9.2
     """
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class BeidouIGSO(org.orekit.gnss.attitude.BeidouMeo):
     """
@@ -71,7 +71,7 @@ class BeidouIGSO(org.orekit.gnss.attitude.BeidouMeo):
         Since:
             9.2
     """
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class BeidouMeo(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
     """
@@ -82,7 +82,7 @@ class BeidouMeo(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Since:
             9.2
     """
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class GPSBlockIIA(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
     """
@@ -104,7 +104,7 @@ class GPSBlockIIA(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Default yaw bias (rad).
     
     """
-    def __init__(self, double: float, double2: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, double: float, double2: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
     @staticmethod
     def getDefaultYawRate(int: int) -> float:
         """
@@ -150,7 +150,7 @@ class GPSBlockIIF(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Default yaw bias (rad).
     
     """
-    def __init__(self, double: float, double2: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, double: float, double2: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class GPSBlockIIR(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
     """
@@ -172,7 +172,7 @@ class GPSBlockIIR(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Default yaw rates for all spacecrafts in radians per seconds.
     
     """
-    def __init__(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class Galileo(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
     """
@@ -194,7 +194,7 @@ class Galileo(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Default yaw rates for all spacecrafts in radians per seconds.
     
     """
-    def __init__(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class GenericGNSS(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
     """
@@ -205,7 +205,7 @@ class GenericGNSS(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Since:
             9.2
     """
-    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class Glonass(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
     """
@@ -227,7 +227,7 @@ class Glonass(org.orekit.gnss.attitude.AbstractGNSSAttitudeProvider):
         Default yaw rates for all spacecrafts in radians per seconds.
     
     """
-    def __init__(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, frame: org.orekit.frames.Frame): ...
+    def __init__(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate, absoluteDate2: org.orekit.time.AbsoluteDate, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
 
 class AbstractGNSSAttitudeProvider: ...
 
diff --git a/org-stubs/orekit/gnss/metric/ntrip/__init__.pyi b/org-stubs/orekit/gnss/metric/ntrip/__init__.pyi
index 6fa8e7ee14212079b078ddea7ffe4d3f10cb9ec2..0d36c25198dce9f8d472930e37ade77fdbe0a944 100644
--- a/org-stubs/orekit/gnss/metric/ntrip/__init__.pyi
+++ b/org-stubs/orekit/gnss/metric/ntrip/__init__.pyi
@@ -333,6 +333,7 @@ class NavigationSystem(java.lang.Enum['NavigationSystem']):
     BDS: typing.ClassVar['NavigationSystem'] = ...
     QZS: typing.ClassVar['NavigationSystem'] = ...
     SBAS: typing.ClassVar['NavigationSystem'] = ...
+    IRS: typing.ClassVar['NavigationSystem'] = ...
     EMPTY: typing.ClassVar['NavigationSystem'] = ...
     @staticmethod
     def getNavigationSystem(string: str) -> 'NavigationSystem':
diff --git a/org-stubs/orekit/models/earth/displacement/__init__.pyi b/org-stubs/orekit/models/earth/displacement/__init__.pyi
index 5aa22547b9c25e6f7c1c7be538fd1a86bb378cfc..5a032c03cb0c58d5800c07b0c0f78924b5c523c4 100644
--- a/org-stubs/orekit/models/earth/displacement/__init__.pyi
+++ b/org-stubs/orekit/models/earth/displacement/__init__.pyi
@@ -5,6 +5,7 @@ if sys.version_info >= (3, 8):
 else:
     from typing_extensions import Protocol
 
+import java.lang
 import java.util
 import jpype
 import org.hipparchus.geometry.euclidean.threed
@@ -232,6 +233,133 @@ class OceanLoadingCoefficientsBLQFactory(org.orekit.data.AbstractSelfFeedingLoad
         ...
     def getSites(self) -> java.util.List[str]: ...
 
+class OceanLoadingCoefficientsBlqParser:
+    """
+    public class OceanLoadingCoefficientsBlqParser extends :class:`~org.orekit.models.earth.displacement.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Parser for ocean loading coefficients, using Onsala Space Observatory files in BLQ format.
+    
+        Files in BLQ format can be generated using the form at the `Bos-Scherneck web site
+        <http://holt.oso.chalmers.se/loading/>`, selecting BLQ as the output format.
+    
+        The sites names are extracted from the file content, not the file name, because the file can contain more than one
+        station. As we expect existing files may have been stripped from headers and footers, we do not attempt to parse them.
+        We only parse the series of 7 lines blocks starting with the lines with the station names and their coordinates and the
+        6 data lines that follows. Several such blocks may appear in the file. Copy-pasting the entire mail received from OSO
+        after completing the web site form works, as intermediate lines between the 7 lines blocks are simply ignored.
+    
+        Since:
+            9.1
+    
+        Also see:
+            :class:`~org.orekit.models.earth.displacement.OceanLoadingCoefficients`,
+            :class:`~org.orekit.models.earth.displacement.OceanLoading`
+    """
+    def __init__(self): ...
+    def parse(self, dataSource: org.orekit.data.DataSource) -> java.util.List[OceanLoadingCoefficients]: ...
+
+class PsdCorrection:
+    """
+    public class PsdCorrection extends :class:`~org.orekit.models.earth.displacement.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Model for post-seismic deformation corrections.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, axis: 'PsdCorrection.Axis', timeEvolution: 'PsdCorrection.TimeEvolution', absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float): ...
+    def displacement(self, absoluteDate: org.orekit.time.AbsoluteDate, geodeticPoint: org.orekit.bodies.GeodeticPoint) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute displacement.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date
+                base (:class:`~org.orekit.bodies.GeodeticPoint`): base point
+        
+            Returns:
+                displacement vector in Earth frame
+        
+        
+        """
+        ...
+    def getAmplitude(self) -> float:
+        """
+            Get amplitude.
+        
+            Returns:
+                amplitude
+        
+        
+        """
+        ...
+    def getAxis(self) -> 'PsdCorrection.Axis':
+        """
+            Get correction axis.
+        
+            Returns:
+                correction axis
+        
+        
+        """
+        ...
+    def getEarthquakeDate(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get earthquake date.
+        
+            Returns:
+                earthquake date
+        
+        
+        """
+        ...
+    def getEvolution(self) -> 'PsdCorrection.TimeEvolution':
+        """
+            Get time evolution.
+        
+            Returns:
+                time evolution
+        
+        
+        """
+        ...
+    def getRelaxationTime(self) -> float:
+        """
+            Get relaxation time.
+        
+            Returns:
+                relaxation time
+        
+        
+        """
+        ...
+    class Axis(java.lang.Enum['PsdCorrection.Axis']):
+        EAST: typing.ClassVar['PsdCorrection.Axis'] = ...
+        NORTH: typing.ClassVar['PsdCorrection.Axis'] = ...
+        UP: typing.ClassVar['PsdCorrection.Axis'] = ...
+        _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+        @typing.overload
+        @staticmethod
+        def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+        @typing.overload
+        @staticmethod
+        def valueOf(string: str) -> 'PsdCorrection.Axis': ...
+        @staticmethod
+        def values() -> typing.MutableSequence['PsdCorrection.Axis']: ...
+        def vector(self, geodeticPoint: org.orekit.bodies.GeodeticPoint) -> org.hipparchus.geometry.euclidean.threed.Vector3D: ...
+    class TimeEvolution(java.lang.Enum['PsdCorrection.TimeEvolution']):
+        EXP: typing.ClassVar['PsdCorrection.TimeEvolution'] = ...
+        LOG: typing.ClassVar['PsdCorrection.TimeEvolution'] = ...
+        def timeFactor(self, double: float) -> float: ...
+        _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+        @typing.overload
+        @staticmethod
+        def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+        @typing.overload
+        @staticmethod
+        def valueOf(string: str) -> 'PsdCorrection.TimeEvolution': ...
+        @staticmethod
+        def values() -> typing.MutableSequence['PsdCorrection.TimeEvolution']: ...
+
 class StationDisplacement:
     """
     public interface StationDisplacement
@@ -568,6 +696,39 @@ class OceanLoading(StationDisplacement):
         """
         ...
 
+class PostSeismicDeformation(StationDisplacement):
+    """
+    public class PostSeismicDeformation extends :class:`~org.orekit.models.earth.displacement.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.displacement.StationDisplacement`
+    
+        Modeling of displacement of one reference point due to post-seismic effects.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.models.earth.displacement.https:.itrf.ign.fr.ftp.pub.itrf.itrf2020.ITRF2020`
+    """
+    def __init__(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, timeSpanMap: org.orekit.utils.TimeSpanMap[java.util.List[PsdCorrection]]): ...
+    def displacement(self, bodiesElements: org.orekit.data.BodiesElements, frame: org.orekit.frames.Frame, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Compute displacement of a ground reference point.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.displacement.StationDisplacement.displacement` in
+                interface :class:`~org.orekit.models.earth.displacement.StationDisplacement`
+        
+            Parameters:
+                elements (:class:`~org.orekit.data.BodiesElements`): elements affecting Earth orientation
+                earthFrame (:class:`~org.orekit.frames.Frame`): Earth frame in which reference point is defined
+                referencePoint (:class:`~org.orekit.models.earth.displacement.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): reference point position in :code:`earthFrame`
+        
+            Returns:
+                displacement vector to be *added* to :code:`referencePoint`
+        
+        
+        """
+        ...
+
 class TectonicsDisplacement(StationDisplacement):
     """
     public class TectonicsDisplacement extends :class:`~org.orekit.models.earth.displacement.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.displacement.StationDisplacement`
@@ -653,6 +814,9 @@ class __module_protocol__(Protocol):
     OceanLoading: typing.Type[OceanLoading]
     OceanLoadingCoefficients: typing.Type[OceanLoadingCoefficients]
     OceanLoadingCoefficientsBLQFactory: typing.Type[OceanLoadingCoefficientsBLQFactory]
+    OceanLoadingCoefficientsBlqParser: typing.Type[OceanLoadingCoefficientsBlqParser]
+    PostSeismicDeformation: typing.Type[PostSeismicDeformation]
+    PsdCorrection: typing.Type[PsdCorrection]
     StationDisplacement: typing.Type[StationDisplacement]
     TectonicsDisplacement: typing.Type[TectonicsDisplacement]
     TidalDisplacement: typing.Type[TidalDisplacement]
diff --git a/org-stubs/orekit/models/earth/troposphere/__init__.pyi b/org-stubs/orekit/models/earth/troposphere/__init__.pyi
index a7414f35cfd1bf4fd85241b0af1c7af9b6f54c96..a859ac0b847093e3efdf901624c2caed7a304571 100644
--- a/org-stubs/orekit/models/earth/troposphere/__init__.pyi
+++ b/org-stubs/orekit/models/earth/troposphere/__init__.pyi
@@ -12,16 +12,113 @@ import jpype
 import org.hipparchus
 import org.orekit.bodies
 import org.orekit.data
+import org.orekit.models.earth.weather
+import org.orekit.models.earth.weather.water
 import org.orekit.time
 import org.orekit.utils
+import org.orekit.utils.units
 import typing
 
 
 
+class AzimuthalGradientCoefficients:
+    """
+    public class AzimuthalGradientCoefficients extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for the azimuthal gradient coefficients gn :sub:`h` , ge :sub:`h` , gn :sub:`w` and ge :sub:`w` .
+    
+        Since:
+            12.1
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float): ...
+    def getGeh(self) -> float:
+        """
+            Get East hydrostatic coefficient.
+        
+            Returns:
+                East hydrostatic coefficient
+        
+        
+        """
+        ...
+    def getGew(self) -> float:
+        """
+            Get East wet coefficient.
+        
+            Returns:
+                East wet coefficient
+        
+        
+        """
+        ...
+    def getGnh(self) -> float:
+        """
+            Get North hydrostatic coefficient.
+        
+            Returns:
+                North hydrostatic coefficient
+        
+        
+        """
+        ...
+    def getGnw(self) -> float:
+        """
+            Get North wet coefficient.
+        
+            Returns:
+                North wet coefficient
+        
+        
+        """
+        ...
+
+class AzimuthalGradientProvider:
+    """
+    public interface AzimuthalGradientProvider
+    
+        Provider for :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientCoefficients` and
+        :class:`~org.orekit.models.earth.troposphere.FieldAzimuthalGradientCoefficients`.
+    
+        Since:
+            12.1
+    """
+    _getGradientCoefficients_1__T = typing.TypeVar('_getGradientCoefficients_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getGradientCoefficients(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> AzimuthalGradientCoefficients:
+        """
+            Get azimuthal asymmetry gradients.
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                azimuthal asymmetry gradients or null if no gradients are available
+        
+        """
+        ...
+    @typing.overload
+    def getGradientCoefficients(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getGradientCoefficients_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getGradientCoefficients_1__T]) -> 'FieldAzimuthalGradientCoefficients'[_getGradientCoefficients_1__T]:
+        """
+            Get azimuthal asymmetry gradients.
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
+        
+            Returns:
+                azimuthal asymmetry gradients or null if no gradients are available
+        
+        
+        """
+        ...
+
 class DiscreteTroposphericModel(org.orekit.utils.ParameterDriversProvider):
     """
-    public interface DiscreteTroposphericModel extends :class:`~org.orekit.utils.ParameterDriversProvider`
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public interface DiscreteTroposphericModel extends :class:`~org.orekit.utils.ParameterDriversProvider`
     
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         Defines a tropospheric model, used to calculate the path delay imposed to electro-magnetic signals between an orbital
         satellite and a ground station.
     
@@ -38,6 +135,7 @@ class DiscreteTroposphericModel(org.orekit.utils.ParameterDriversProvider):
     @typing.overload
     def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
         """
+            Deprecated.
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Parameters:
@@ -54,6 +152,7 @@ class DiscreteTroposphericModel(org.orekit.utils.ParameterDriversProvider):
     @typing.overload
     def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
         """
+            Deprecated.
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Parameters:
@@ -69,16 +168,166 @@ class DiscreteTroposphericModel(org.orekit.utils.ParameterDriversProvider):
         """
         ...
 
+_FieldAzimuthalGradientCoefficients__T = typing.TypeVar('_FieldAzimuthalGradientCoefficients__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldAzimuthalGradientCoefficients(typing.Generic[_FieldAzimuthalGradientCoefficients__T]):
+    """
+    public class FieldAzimuthalGradientCoefficients<T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for the azimuthal gradient coefficients gn :sub:`h` , ge :sub:`h` , gn :sub:`w` and ge :sub:`w` .
+    
+        Since:
+            12.1
+    """
+    def __init__(self, t: _FieldAzimuthalGradientCoefficients__T, t2: _FieldAzimuthalGradientCoefficients__T, t3: _FieldAzimuthalGradientCoefficients__T, t4: _FieldAzimuthalGradientCoefficients__T): ...
+    def getGeh(self) -> _FieldAzimuthalGradientCoefficients__T:
+        """
+            Get East hydrostatic coefficient.
+        
+            Returns:
+                East hydrostatic coefficient
+        
+        
+        """
+        ...
+    def getGew(self) -> _FieldAzimuthalGradientCoefficients__T:
+        """
+            Get East wet coefficient.
+        
+            Returns:
+                East wet coefficient
+        
+        
+        """
+        ...
+    def getGnh(self) -> _FieldAzimuthalGradientCoefficients__T:
+        """
+            Get North hydrostatic coefficient.
+        
+            Returns:
+                North hydrostatic coefficient
+        
+        
+        """
+        ...
+    def getGnw(self) -> _FieldAzimuthalGradientCoefficients__T:
+        """
+            Get North wet coefficient.
+        
+            Returns:
+                North wet coefficient
+        
+        
+        """
+        ...
+
+_FieldTroposphericDelay__T = typing.TypeVar('_FieldTroposphericDelay__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldTroposphericDelay(typing.Generic[_FieldTroposphericDelay__T]):
+    """
+    public class FieldTroposphericDelay<T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for tropospheric delay.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, t: _FieldTroposphericDelay__T, t2: _FieldTroposphericDelay__T, t3: _FieldTroposphericDelay__T, t4: _FieldTroposphericDelay__T): ...
+    def getDelay(self) -> _FieldTroposphericDelay__T:
+        """
+            Get the total slanted delay (m).
+        
+            Returns:
+                total slanted delay (m)
+        
+        
+        """
+        ...
+    def getSh(self) -> _FieldTroposphericDelay__T:
+        """
+            Get slanted delay (m).
+        
+            Returns:
+                slanted delay (m)
+        
+        
+        """
+        ...
+    def getSw(self) -> _FieldTroposphericDelay__T:
+        """
+            Get wet slanted delay (m).
+        
+            Returns:
+                wet slanted delay (m)
+        
+        
+        """
+        ...
+    def getZh(self) -> _FieldTroposphericDelay__T:
+        """
+            Get hydrostatic zenith delay (m).
+        
+            Returns:
+                hydrostatic zenith delay (m)
+        
+        
+        """
+        ...
+    def getZw(self) -> _FieldTroposphericDelay__T:
+        """
+            Get wet zenith delay (m).
+        
+            Returns:
+                wet zenith delay (m)
+        
+        
+        """
+        ...
+
+_FieldViennaACoefficients__T = typing.TypeVar('_FieldViennaACoefficients__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldViennaACoefficients(typing.Generic[_FieldViennaACoefficients__T]):
+    """
+    public class FieldViennaACoefficients<T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for the :class:`~org.orekit.models.earth.troposphere.ViennaOne` and
+        :class:`~org.orekit.models.earth.troposphere.ViennaThree` coefficients a :sub:`h` and a :sub:`w` .
+    
+        Since:
+            12.1
+    """
+    def __init__(self, t: _FieldViennaACoefficients__T, t2: _FieldViennaACoefficients__T): ...
+    def getAh(self) -> _FieldViennaACoefficients__T:
+        """
+            Get hydrostatic coefficient.
+        
+            Returns:
+                hydrostatic coefficient
+        
+        
+        """
+        ...
+    def getAw(self) -> _FieldViennaACoefficients__T:
+        """
+            Get wet coefficient.
+        
+            Returns:
+                wet coefficient
+        
+        
+        """
+        ...
+
 class MappingFunction:
     """
-    public interface MappingFunction
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public interface MappingFunction
     
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
         Interface for mapping functions used in the tropospheric delay computation.
     """
     _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
+            Deprecated.
             This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
             having the following form:
         
@@ -99,6 +348,7 @@ class MappingFunction:
     @typing.overload
     def mappingFactors(self, t: _mappingFactors_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
         """
+            Deprecated.
             This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
             having the following form:
         
@@ -118,98 +368,402 @@ class MappingFunction:
         """
         ...
 
-class TroposphericModelUtils:
+class TroposphereMappingFunction:
     """
-    public class TroposphericModelUtils extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-    
-        Utility class for tropospheric models.
+    public interface TroposphereMappingFunction
     
-        Since:
-            11.0
+        Interface for mapping functions used in the tropospheric delay computation.
     """
-    _computeHeightCorrection_1__T = typing.TypeVar('_computeHeightCorrection_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    @staticmethod
-    def computeHeightCorrection(double: float, double2: float) -> float:
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
-            This method computes the height correction for the hydrostatic component of the mapping function. The formulas are given
-            by Neill's paper, 1996:
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
         
-            Niell A. E. (1996) "Global mapping functions for the atmosphere delay of radio wavelengths,” J. Geophys. Res.,
-            101(B2), pp. 3227–3246, doi: 10.1029/95JB03048.
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians.
-                height (double): the height of the station in m above sea level.
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
-                the height correction, in m
+                a two components array containing the hydrostatic and wet mapping functions.
         
         """
         ...
     @typing.overload
-    @staticmethod
-    def computeHeightCorrection(t: _computeHeightCorrection_1__T, t2: _computeHeightCorrection_1__T, field: org.hipparchus.Field[_computeHeightCorrection_1__T]) -> _computeHeightCorrection_1__T:
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_1__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
         """
-            This method computes the height correction for the hydrostatic component of the mapping function. The formulas are given
-            by Neill's paper, 1996:
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
         
-            Niell A. E. (1996) "Global mapping functions for the atmosphere delay of radio wavelengths,” J. Geophys. Res.,
-            101(B2), pp. 3227–3246, doi: 10.1029/95JB03048.
         
             Parameters:
-                elevation (T): the elevation of the satellite, in radians.
-                height (T): the height of the station in m above sea level.
-                field (:class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field to which the elements belong
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                the height correction, in m
+                a two components array containing the hydrostatic and wet mapping functions.
         
         
         """
         ...
-    _mappingFunction_1__T = typing.TypeVar('_mappingFunction_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    @staticmethod
-    def mappingFunction(double: float, double2: float, double3: float, double4: float) -> float:
+
+class TroposphericDelay:
+    """
+    public class TroposphericDelay extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for tropospheric delay.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float): ...
+    def getDelay(self) -> float:
         """
-            Compute the mapping function related to the coefficient values and the elevation.
+            Get the total slanted delay (m).
+        
+            Returns:
+                total slanted delay (m)
         
-            Parameters:
-                a (double): a coefficient
-                b (double): b coefficient
-                c (double): c coefficient
-                elevation (double): the elevation of the satellite, in radians.
+        
+        """
+        ...
+    def getSh(self) -> float:
+        """
+            Get slanted delay (m).
         
             Returns:
-                the value of the function at a given elevation
+                slanted delay (m)
+        
         
         """
         ...
-    @typing.overload
-    @staticmethod
-    def mappingFunction(t: _mappingFunction_1__T, t2: _mappingFunction_1__T, t3: _mappingFunction_1__T, t4: _mappingFunction_1__T) -> _mappingFunction_1__T:
+    def getSw(self) -> float:
         """
-            Compute the mapping function related to the coefficient values and the elevation.
+            Get wet slanted delay (m).
         
-            Parameters:
-                a (T): a coefficient
-                b (T): b coefficient
-                c (T): c coefficient
-                elevation (T): the elevation of the satellite, in radians.
+            Returns:
+                wet slanted delay (m)
+        
+        
+        """
+        ...
+    def getZh(self) -> float:
+        """
+            Get hydrostatic zenith delay (m).
         
             Returns:
-                the value of the function at a given elevation
+                hydrostatic zenith delay (m)
+        
+        
+        """
+        ...
+    def getZw(self) -> float:
+        """
+            Get wet zenith delay (m).
+        
+            Returns:
+                wet zenith delay (m)
         
         
         """
         ...
 
-class ViennaModelCoefficientsLoader(org.orekit.data.AbstractSelfFeedingLoader, org.orekit.data.DataLoader):
+class TroposphericModel(org.orekit.utils.ParameterDriversProvider):
     """
-    public class ViennaModelCoefficientsLoader extends :class:`~org.orekit.data.AbstractSelfFeedingLoader` implements :class:`~org.orekit.data.DataLoader`
+    public interface TroposphericModel extends :class:`~org.orekit.utils.ParameterDriversProvider`
     
-        Loads Vienna tropospheric coefficients a given input stream. A stream contains, for a given day and a given hour, the
+        Defines a tropospheric model, used to calculate the path delay imposed to electro-magnetic signals between an orbital
+        satellite and a ground station.
+    
+        Since:
+            12.1
+    """
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        """
+        ...
+
+class TroposphericModelUtils:
+    """
+    public class TroposphericModelUtils extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Utility class for tropospheric models.
+    
+        Since:
+            11.0
+    """
+    NANO_M: typing.ClassVar[org.orekit.utils.units.Unit] = ...
+    """
+    public static final :class:`~org.orekit.utils.units.Unit` NANO_M
+    
+        Nanometers unit.
+    
+        Since:
+            12.1
+    
+    
+    """
+    MICRO_M: typing.ClassVar[org.orekit.utils.units.Unit] = ...
+    """
+    public static final :class:`~org.orekit.utils.units.Unit` MICRO_M
+    
+        Micrometers unit.
+    
+        Since:
+            12.1
+    
+    
+    """
+    HECTO_PASCAL: typing.ClassVar[org.orekit.utils.units.Unit] = ...
+    """
+    public static final :class:`~org.orekit.utils.units.Unit` HECTO_PASCAL
+    
+        HectoPascal unit.
+    
+        Since:
+            12.1
+    
+    
+    """
+    STANDARD_ATMOSPHERE: typing.ClassVar[org.orekit.models.earth.weather.PressureTemperatureHumidity] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity` STANDARD_ATMOSPHERE
+    
+        Standard atmosphere.
+    
+          - altitude: 0m
+          - temperature: 20 degree Celsius
+          - pressure: 1013.25 mbar
+          - humidity: 50%
+    
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~org.orekit.models.earth.troposphere.TroposphericModelUtils.STANDARD_ATMOSPHERE_PROVIDER`
+    
+    
+    """
+    STANDARD_ATMOSPHERE_PROVIDER: typing.ClassVar[org.orekit.models.earth.weather.PressureTemperatureHumidityProvider] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider` STANDARD_ATMOSPHERE_PROVIDER
+    
+        Provider for :meth:`~org.orekit.models.earth.troposphere.TroposphericModelUtils.STANDARD_ATMOSPHERE`.
+    
+        Since:
+            12.1
+    
+    
+    """
+    _computeHeightCorrection_1__T = typing.TypeVar('_computeHeightCorrection_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def computeHeightCorrection(double: float, double2: float) -> float:
+        """
+            This method computes the height correction for the hydrostatic component of the mapping function. The formulas are given
+            by Neill's paper, 1996:
+        
+            Niell A. E. (1996) "Global mapping functions for the atmosphere delay of radio wavelengths,” J. Geophys. Res.,
+            101(B2), pp. 3227–3246, doi: 10.1029/95JB03048.
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians.
+                height (double): the height of the station in m above sea level.
+        
+            Returns:
+                the height correction, in m
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def computeHeightCorrection(t: _computeHeightCorrection_1__T, t2: _computeHeightCorrection_1__T, field: org.hipparchus.Field[_computeHeightCorrection_1__T]) -> _computeHeightCorrection_1__T:
+        """
+            This method computes the height correction for the hydrostatic component of the mapping function. The formulas are given
+            by Neill's paper, 1996:
+        
+            Niell A. E. (1996) "Global mapping functions for the atmosphere delay of radio wavelengths,” J. Geophys. Res.,
+            101(B2), pp. 3227–3246, doi: 10.1029/95JB03048.
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians.
+                height (T): the height of the station in m above sea level.
+                field (:class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field to which the elements belong
+        
+            Returns:
+                the height correction, in m
+        
+        
+        """
+        ...
+    _mappingFunction_1__T = typing.TypeVar('_mappingFunction_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def mappingFunction(double: float, double2: float, double3: float, double4: float) -> float:
+        """
+            Compute the mapping function related to the coefficient values and the elevation.
+        
+            Parameters:
+                a (double): a coefficient
+                b (double): b coefficient
+                c (double): c coefficient
+                elevation (double): the elevation of the satellite, in radians.
+        
+            Returns:
+                the value of the function at a given elevation
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def mappingFunction(t: _mappingFunction_1__T, t2: _mappingFunction_1__T, t3: _mappingFunction_1__T, t4: _mappingFunction_1__T) -> _mappingFunction_1__T:
+        """
+            Compute the mapping function related to the coefficient values and the elevation.
+        
+            Parameters:
+                a (T): a coefficient
+                b (T): b coefficient
+                c (T): c coefficient
+                elevation (T): the elevation of the satellite, in radians.
+        
+            Returns:
+                the value of the function at a given elevation
+        
+        
+        """
+        ...
+
+class ViennaACoefficients:
+    """
+    public class ViennaACoefficients extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for the :class:`~org.orekit.models.earth.troposphere.ViennaOne` and
+        :class:`~org.orekit.models.earth.troposphere.ViennaThree` coefficients a :sub:`h` and a :sub:`w` .
+    
+        Since:
+            12.1
+    """
+    def __init__(self, double: float, double2: float): ...
+    def getAh(self) -> float:
+        """
+            Get hydrostatic coefficient.
+        
+            Returns:
+                hydrostatic coefficient
+        
+        
+        """
+        ...
+    def getAw(self) -> float:
+        """
+            Get wet coefficient.
+        
+            Returns:
+                wet coefficient
+        
+        
+        """
+        ...
+
+class ViennaAProvider:
+    """
+    public interface ViennaAProvider
+    
+        Provider for :class:`~org.orekit.models.earth.troposphere.ViennaOne` and
+        :class:`~org.orekit.models.earth.troposphere.ViennaThree` coefficients a :sub:`h` and a :sub:`w` .
+    
+        Since:
+            12.1
+    """
+    _getA_0__T = typing.TypeVar('_getA_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getA(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getA_0__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getA_0__T]) -> FieldViennaACoefficients[_getA_0__T]:
+        """
+            Get coefficients array for VMF mapping function.
+        
+              - double[0] = a :sub:`h`
+              - double[1] = a :sub:`w`
+        
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
+        
+            Returns:
+                the coefficients array for VMF mapping function
+        
+        
+        """
+        ...
+    @typing.overload
+    def getA(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> ViennaACoefficients:
+        """
+            Get coefficients array for VMF mapping function.
+        
+              - double[0] = a :sub:`h`
+              - double[1] = a :sub:`w`
+        
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                the coefficients array for VMF mapping function
+        
+        """
+        ...
+
+class ViennaModelCoefficientsLoader(org.orekit.data.AbstractSelfFeedingLoader, org.orekit.data.DataLoader):
+    """
+    public class ViennaModelCoefficientsLoader extends :class:`~org.orekit.data.AbstractSelfFeedingLoader` implements :class:`~org.orekit.data.DataLoader`
+    
+        Loads Vienna tropospheric coefficients a given input stream. A stream contains, for a given day and a given hour, the
         hydrostatic and wet zenith delays and the ah and aw coefficients used for the computation of the mapping function. The
         coefficients are given with a time interval of 6 hours.
     
@@ -412,352 +966,224 @@ class ViennaModelType(java.lang.Enum['ViennaModelType']):
         """
         ...
 
-class EstimatedTroposphericModel(DiscreteTroposphericModel):
+class AbstractChaoMappingFunction(TroposphereMappingFunction):
     """
-    public class EstimatedTroposphericModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
-    
-        An estimated tropospheric model. The tropospheric delay is computed according to the formula:
-    
-        δ = δ :sub:`h` * m :sub:`h` + (δ :sub:`t` - δ :sub:`h` ) * m :sub:`w`
-    
-        With:
-    
-          - δ :sub:`h` : Tropospheric zenith hydro-static delay.
-          - δ :sub:`t` : Tropospheric total zenith delay.
-          - m :sub:`h` : Hydro-static mapping function.
-          - m :sub:`w` : Wet mapping function.
-    
-    
-        The mapping functions m :sub:`h` (e) and m :sub:`w` (e) are computed thanks to a
-        :meth:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel.model` initialized by the user. The user has the
-        possibility to use several mapping function models for the computations: the
-        :class:`~org.orekit.models.earth.troposphere.GlobalMappingFunctionModel`, or the
-        :class:`~org.orekit.models.earth.troposphere.NiellMappingFunctionModel`
+    public class AbstractChaoMappingFunction extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
     
-        The tropospheric zenith delay δ :sub:`h` is computed empirically with a
-        :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel` while the tropospheric total zenith delay δ
-        :sub:`t` is estimated as a :class:`~org.orekit.utils.ParameterDriver`
-    """
-    TOTAL_ZENITH_DELAY: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` TOTAL_ZENITH_DELAY
+        Chao mapping function for radio wavelengths.
     
-        Name of the parameter of this model: the total zenith delay.
+        Since:
+            12.1
     
         Also see:
-            :meth:`~constant`
-    
-    
+            "C. C. Chao, A model for tropospheric calibration from delay surface and radiosonde ballon measurements, 1972"
     """
+    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def __init__(self, double: float, double2: float, mappingFunction: MappingFunction, double3: float): ...
-    @typing.overload
-    def __init__(self, mappingFunction: MappingFunction, double: float): ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
-            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
         
-            Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
-                parameters (double[]): tropospheric model parameters
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
                 date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                a two components array containing the hydrostatic and wet mapping functions.
         
         """
         ...
     @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_1__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
         """
-            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
+        
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
         
             Parameters:
-                elevation (T): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
-                parameters (T[]): tropospheric model parameters at current date
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
                 date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                a two components array containing the hydrostatic and wet mapping functions.
         
         
         """
         ...
 
-class FixedTroposphericDelay(DiscreteTroposphericModel):
+class AbstractVienna(TroposphericModel, TroposphereMappingFunction):
     """
-    public class FixedTroposphericDelay extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    public abstract class AbstractVienna extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`, :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
     
-        A static tropospheric model that interpolates the actual tropospheric delay based on values read from a configuration
-        file (tropospheric-delay.txt) via the :class:`~org.orekit.data.DataProvidersManager`.
+        The Vienna tropospheric delay model for radio techniques.
+    
+        Since:
+            12.1
     """
-    @typing.overload
-    def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], doubleArray3: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]): ...
-    @typing.overload
-    def __init__(self, string: str): ...
-    @typing.overload
-    def __init__(self, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
-    @staticmethod
-    def getDefaultModel() -> 'FixedTroposphericDelay': ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
         """
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians
-                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
-                parameters (double[]): tropospheric model parameters
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                the path delay due to the troposphere
+        
         
         """
         ...
     @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
         """
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         
             Parameters:
-                elevation (T): the elevation of the satellite, in radians
-                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
-                parameters (T[]): tropospheric model parameters at current date
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
-                the path delay due to the troposphere in m
-        
+                the path delay due to the troposphere
         
         """
         ...
 
-class GlobalMappingFunctionModel(MappingFunction):
+class AskneNordiusModel(TroposphericModel):
     """
-    public class GlobalMappingFunctionModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+    public class AskneNordiusModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
     
-        The Global Mapping Function model for radio techniques. This model is an empirical mapping function. It only needs the
-        values of the station latitude, longitude, height and the date for the computations.
+        The Askne Nordius model.
     
-        The Global Mapping Function is based on spherical harmonics up to degree and order of 9. It was developed to be
-        consistent with the :class:`~org.orekit.models.earth.troposphere.ViennaOneModel` mapping function model.
+        The hydrostatic part is equivalent to Saastamoinen, whereas the wet part takes into account
+        :meth:`~org.orekit.models.earth.weather.PressureTemperatureHumidity.getTm` and
+        :meth:`~org.orekit.models.earth.weather.PressureTemperatureHumidity.getLambda`.
+    
+        Since:
+            12.1
     
         Also see:
-            "Boehm, J., A.E. Niell, P. Tregoning, H. Schuh (2006), Global Mapping Functions (GMF): A new empirical mapping function
-            based on numerical weather model data, Geoph. Res. Letters, Vol. 33, L07304, doi:10.1029/2005GL025545.", "Petit, G. and
-            Luzum, B. (eds.), IERS Conventions (2010), IERS Technical Note No. 36, BKG (2010)"
+            "J. Askne and H. Nordius, Estimation of tropospheric delay for microwaves from surface weather data, Radio Science,
+            volume 22, number 3, pages 379-386, May-June 1987", "Landskron D (2017) Modeling tropospheric delays for space geodetic
+            techniques. Dissertation, Department of Geodesy and Geoinformation, TU Wien, Supervisor: J. Böhm.
+            http://repositum.tuwien.ac.at/urn:nbn:at:at-ubtuw:1-100249"
     """
-    @typing.overload
-    def __init__(self): ...
-    @typing.overload
-    def __init__(self, timeScale: org.orekit.time.TimeScale): ...
-    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
-        """
-            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
-            having the following form:
-        
-              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
-              - double[1] = m :sub:`w` (e) → wet mapping function
-        
-        
-            Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
-                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
-        
-            Parameters:
-                elevation (double): the elevation of the satellite, in radians
-                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date
-        
-            Returns:
-                a two components array containing the hydrostatic and wet mapping functions.
-        
-        """
-        ...
-    @typing.overload
-    def mappingFactors(self, t: _mappingFactors_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
-        """
-            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
-            having the following form:
-        
-              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
-              - T[1] = m :sub:`w` (e) → wet mapping function
-        
-        
-            Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
-                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
-        
-            Parameters:
-                elevation (T): the elevation of the satellite, in radians
-                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
-        
-            Returns:
-                a two components array containing the hydrostatic and wet mapping functions.
-        
-        
-        """
-        ...
-
-class MariniMurrayModel(DiscreteTroposphericModel):
+    LOW_ELEVATION_THRESHOLD: typing.ClassVar[float] = ...
     """
-    public class MariniMurrayModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    public static final double LOW_ELEVATION_THRESHOLD
     
-        The Marini-Murray tropospheric delay model for laser ranging.
+        Lowest acceptable elevation angle [rad].
     
         Also see:
-            "Marini, J.W., and C.W. Murray, correction of Laser Range Tracking Data for Atmospheric Refraction at Elevations Above
-            10 degrees, X-591-73-351, NASA GSFC, 1973"
+            :meth:`~constant`
+    
+    
     """
-    def __init__(self, double: float, double2: float, double3: float, double4: float): ...
+    def __init__(self, troposphereMappingFunction: TroposphereMappingFunction): ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    @staticmethod
-    def getStandardModel(double: float) -> 'MariniMurrayModel':
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
         """
-            Create a new Marini-Murray model using a standard atmosphere model.
-        
-              - temperature: 20 degree Celsius
-              - pressure: 1013.25 mbar
-              - humidity: 50%
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         
             Parameters:
-                lambda (double): laser wavelength (c/f), nm
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                a Marini-Murray model with standard environmental values
+                the path delay due to the troposphere
         
         
         """
         ...
-    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
         """
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
                 parameters (double[]): tropospheric model parameters
                 date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
-                the path delay due to the troposphere in m
-        
-        """
-        ...
-    @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
-        """
-            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
-        
-            Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
-        
-            Parameters:
-                elevation (T): the elevation of the satellite, in radians
-                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
-                parameters (T[]): tropospheric model parameters at current date
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
-        
-            Returns:
-                the path delay due to the troposphere in m
-        
+                the path delay due to the troposphere
         
         """
         ...
 
-class MendesPavlisModel(DiscreteTroposphericModel, MappingFunction):
-    def __init__(self, double: float, double2: float, double3: float, double4: float): ...
-    _computeZenithDelay_1__T = typing.TypeVar('_computeZenithDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def computeZenithDelay(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
-    @typing.overload
-    def computeZenithDelay(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_computeZenithDelay_1__T], tArray: typing.Union[typing.List[_computeZenithDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_computeZenithDelay_1__T]) -> typing.MutableSequence[_computeZenithDelay_1__T]: ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    @staticmethod
-    def getStandardModel(double: float) -> 'MendesPavlisModel': ...
-    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
-    @typing.overload
-    def mappingFactors(self, t: _mappingFactors_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]: ...
-    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float: ...
-    @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
-
-class ModifiedSaastamoinenModel(DiscreteTroposphericModel):
+class CanonicalSaastamoinenModel(TroposphericModel):
     """
-    public class ModifiedSaastamoinenModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    public class CanonicalSaastamoinenModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
     
-        The modified Saastamoinen model. Estimates the path delay imposed to electro-magnetic signals by the troposphere
-        according to the formula:
+        The canonical Saastamoinen model.
     
-        .. code-block: java
-        
-         δ = 2.277e-3 / cos z * (P + (1255 / T + 0.05) * e - B * tan²
-         z) + δR
-         
-        with the following input data provided to the model:
+        Estimates the path delay imposed to electro-magnetic signals by the troposphere according to the formula: \[ \delta =
+        \frac{0.002277}{\cos z (1 - 0.00266\cos 2\varphi - 0.00028 h})} \left[P+(\frac{1255}{T}+0.005)e - B(h) \tan^2 z\right]
+        \] with the following input data provided to the model:
     
           - z: zenith angle
           - P: atmospheric pressure
           - T: temperature
-          - e: partial pressure of water vapour
-          - B, δR: correction terms
+          - e: partial pressure of water vapor
     
     
-        The model supports custom δR correction terms to be read from a configuration file (saastamoinen-correction.txt) via
-        the :class:`~org.orekit.data.DataProvidersManager`.
-    
-        Also see:
-            "Guochang Xu, GPS - Theory, Algorithms and Applications, Springer, 2007"
-    """
-    DELTA_R_FILE_NAME: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DELTA_R_FILE_NAME
-    
-        Default file name for δR correction term table.
+        Since:
+            12.1
     
         Also see:
-            :meth:`~constant`
-    
-    
+            "J Saastamoinen, Atmospheric Correction for the Troposphere and Stratosphere in Radio Ranging of Satellites"
     """
     DEFAULT_LOW_ELEVATION_THRESHOLD: typing.ClassVar[float] = ...
     """
@@ -770,12 +1196,7 @@ class ModifiedSaastamoinenModel(DiscreteTroposphericModel):
     
     
     """
-    @typing.overload
-    def __init__(self, double: float, double2: float, double3: float): ...
-    @typing.overload
-    def __init__(self, double: float, double2: float, double3: float, string: str): ...
-    @typing.overload
-    def __init__(self, double: float, double2: float, double3: float, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
+    def __init__(self): ...
     def getLowElevationThreshold(self) -> float:
         """
             Get the low elevation threshold value for path delay computation.
@@ -783,36 +1204,49 @@ class ModifiedSaastamoinenModel(DiscreteTroposphericModel):
             Returns:
                 low elevation threshold, in rad.
         
-            Since:
-                10.2
-        
             Also see:
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`,
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.pathDelay`,
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.pathDelay`
         
         
         """
         ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    @staticmethod
-    def getStandardModel() -> 'ModifiedSaastamoinenModel':
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
         """
-            Create a new Saastamoinen model using a standard atmosphere model.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
-              - temperature: 18 degree Celsius
-              - pressure: 1013.25 mbar
-              - humidity: 50%
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
+        
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                a Saastamoinen model with standard environmental values
+                the path delay due to the troposphere
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.setLowElevationThreshold`
         
         
         """
         ...
-    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
         """
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
@@ -823,94 +1257,218 @@ class ModifiedSaastamoinenModel(DiscreteTroposphericModel):
             threshold will use the value obtained for the threshold itself.
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
                 parameters (double[]): tropospheric model parameters
                 date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                the path delay due to the troposphere
         
             Also see:
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.setLowElevationThreshold`
         
         """
         ...
-    @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+    def setLowElevationThreshold(self, double: float) -> None:
         """
-            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+            Set the low elevation threshold value for path delay computation.
         
-            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
-            altitude is negative.
+            Parameters:
+                lowElevationThreshold (double): The new value for the threshold [rad]
         
-            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
-            threshold will use the value obtained for the threshold itself.
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.pathDelay`,
+                :meth:`~org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel.pathDelay`
+        
+        
+        """
+        ...
+
+class ConstantAzimuthalGradientProvider(AzimuthalGradientProvider):
+    """
+    public class ConstantAzimuthalGradientProvider extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider`
+    
+        Constant provider for :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientCoefficients` and
+        :class:`~org.orekit.models.earth.troposphere.FieldAzimuthalGradientCoefficients`.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, azimuthalGradientCoefficients: AzimuthalGradientCoefficients): ...
+    _getGradientCoefficients_1__T = typing.TypeVar('_getGradientCoefficients_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getGradientCoefficients(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> AzimuthalGradientCoefficients:
+        """
+            Get azimuthal asymmetry gradients.
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+                :meth:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider.getGradientCoefficients` in
+                interface :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider`
         
             Parameters:
-                elevation (T): the elevation of the satellite, in radians
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                azimuthal asymmetry gradients or null if no gradients are available
+        
+        """
+        ...
+    @typing.overload
+    def getGradientCoefficients(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getGradientCoefficients_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getGradientCoefficients_1__T]) -> FieldAzimuthalGradientCoefficients[_getGradientCoefficients_1__T]:
+        """
+            Get azimuthal asymmetry gradients.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider.getGradientCoefficients` in
+                interface :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
+        
+            Returns:
+                azimuthal asymmetry gradients or null if no gradients are available
+        
+        
+        """
+        ...
+
+class ConstantTroposphericModel(TroposphericModel):
+    """
+    public class ConstantTroposphericModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+    
+        Defines a constant tropospheric model.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, troposphericDelay: TroposphericDelay): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
                 parameters (T[]): tropospheric model parameters at current date
                 date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                the path delay due to the troposphere
         
-            Also see:
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
         
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
         
         """
         ...
-    def setLowElevationThreshold(self, double: float) -> None:
+
+class ConstantViennaAProvider(ViennaAProvider):
+    """
+    public class ConstantViennaAProvider extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.ViennaAProvider`
+    
+        Provider for constant Vienna A coefficients.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, viennaACoefficients: ViennaACoefficients): ...
+    _getA_0__T = typing.TypeVar('_getA_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getA(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getA_0__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getA_0__T]) -> FieldViennaACoefficients[_getA_0__T]:
         """
-            Set the low elevation threshold value for path delay computation.
+            Get coefficients array for VMF mapping function.
+        
+              - double[0] = a :sub:`h`
+              - double[1] = a :sub:`w`
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.ViennaAProvider.getA` in
+                interface :class:`~org.orekit.models.earth.troposphere.ViennaAProvider`
         
             Parameters:
-                lowElevationThreshold (double): The new value for the threshold [rad]
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
         
-            Since:
-                10.2
+            Returns:
+                the coefficients array for VMF mapping function
+        
+        
+        """
+        ...
+    @typing.overload
+    def getA(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> ViennaACoefficients:
+        """
+            Get coefficients array for VMF mapping function.
+        
+              - double[0] = a :sub:`h`
+              - double[1] = a :sub:`w`
         
-            Also see:
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`,
-                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`
         
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.ViennaAProvider.getA` in
+                interface :class:`~org.orekit.models.earth.troposphere.ViennaAProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                the coefficients array for VMF mapping function
         
         """
         ...
 
-class NiellMappingFunctionModel(MappingFunction):
+class DummyMappingFunction(TroposphereMappingFunction):
     """
-    public class NiellMappingFunctionModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+    public class DummyMappingFunction extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
     
-        The Niell Mapping Function model for radio wavelengths. This model is an empirical mapping function. It only needs the
-        values of the station latitude, height and the date for the computations.
+        Dummy mapping function.
     
-        With this model, the hydrostatic mapping function is time and latitude dependent whereas the wet mapping function is
-        only latitude dependent.
+        This mapping function just uses 1.0 as constant mapping factors, which implies the slanted tropospheric delays are equal
+        to the zenith delays. This is mainly useful when only zenith delays are needed.
     
-        Also see:
-            "A. E. Niell(1996), Global mapping functions for the atmosphere delay of radio wavelengths, J. Geophys. Res., 101(B2),
-            pp. 3227–3246, doi: 10.1029/95JB03048."
+        Since:
+            12.1
     """
-    @typing.overload
-    def __init__(self): ...
-    @typing.overload
-    def __init__(self, timeScale: org.orekit.time.TimeScale): ...
     _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
             This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
             having the following form:
@@ -920,12 +1478,13 @@ class NiellMappingFunctionModel(MappingFunction):
         
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
-                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
                 date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
@@ -934,7 +1493,7 @@ class NiellMappingFunctionModel(MappingFunction):
         """
         ...
     @typing.overload
-    def mappingFactors(self, t: _mappingFactors_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_1__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
         """
             This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
             having the following form:
@@ -944,12 +1503,13 @@ class NiellMappingFunctionModel(MappingFunction):
         
         
             Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
-                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
         
             Parameters:
-                elevation (T): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
                 date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
@@ -959,43 +1519,1571 @@ class NiellMappingFunctionModel(MappingFunction):
         """
         ...
 
-class TimeSpanEstimatedTroposphericModel(DiscreteTroposphericModel):
+class EstimatedModel(TroposphericModel):
     """
-    public class TimeSpanEstimatedTroposphericModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
-    
-        Time span estimated tropospheric model.
+    public class EstimatedModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
     
-        This class is closely related to :class:`~org.orekit.models.earth.troposphere.package` class.
+        An estimated tropospheric model. The tropospheric delay is computed according to the formula:
     
+        δ = δ :sub:`h` * m :sub:`h` + (δ :sub:`t` - δ :sub:`h` ) * m :sub:`w`
     
-        The difference is that it has a :class:`~org.orekit.utils.TimeSpanMap` of
-        :class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel` objects as attribute.
+        With:
     
+          - δ :sub:`h` : Tropospheric zenith hydro-static delay.
+          - δ :sub:`t` : Tropospheric total zenith delay.
+          - m :sub:`h` : Hydro-static mapping function.
+          - m :sub:`w` : Wet mapping function.
     
-        The idea behind this model is to allow the user to design a tropospheric model that can see its physical parameters
-        (total zenith delay) change with time, at dates chosen by the user.
     
+        The mapping functions m :sub:`h` (e) and m :sub:`w` (e) are computed thanks to a :code:`model` initialized by the user.
+        The user has the possibility to use several mapping function models for the computations: the
+        :class:`~org.orekit.models.earth.troposphere.GlobalMappingFunctionModel`, or the
+        :class:`~org.orekit.models.earth.troposphere.NiellMappingFunctionModel`
     
+        The tropospheric zenith delay δ :sub:`h` is computed empirically with a
+        :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel` while the tropospheric total zenith delay δ
+        :sub:`t` is estimated as a :class:`~org.orekit.utils.ParameterDriver`, hence the wet part is the difference between the
+        two.
     
         Since:
-            10.2
+            12.1
+    """
+    TOTAL_ZENITH_DELAY: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` TOTAL_ZENITH_DELAY
+    
+        Name of the parameter of this model: the total zenith delay.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, troposphereMappingFunction: TroposphereMappingFunction, double4: float): ...
+    @typing.overload
+    def __init__(self, troposphereMappingFunction: TroposphereMappingFunction, double: float): ...
+    @typing.overload
+    def __init__(self, troposphericModel: TroposphericModel, troposphereMappingFunction: TroposphereMappingFunction, double: float): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        """
+        ...
+
+class FixedTroposphericDelay(DiscreteTroposphericModel, TroposphericModel):
+    """
+    public class FixedTroposphericDelay extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`, :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+    
+        A static tropospheric model that interpolates the actual tropospheric delay based on values read from a configuration
+        file (tropospheric-delay.txt) via the :class:`~org.orekit.data.DataProvidersManager`.
+    """
+    @typing.overload
+    def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray], doubleArray3: typing.Union[typing.List[typing.MutableSequence[float]], jpype.JArray]): ...
+    @typing.overload
+    def __init__(self, string: str): ...
+    @typing.overload
+    def __init__(self, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
+    @staticmethod
+    def getDefaultModel() -> 'FixedTroposphericDelay': ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            All delays are affected to :meth:`~org.orekit.models.earth.troposphere.TroposphericDelay.getZh` and
+            :meth:`~org.orekit.models.earth.troposphere.TroposphericDelay.getSh` delays, the wet delays are arbitrarily set to 0.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T pathDelay (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, T[] parameters, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
+        
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            All delays are affected to :meth:`~org.orekit.models.earth.troposphere.FieldTroposphericDelay.getZh` and
+            :meth:`~org.orekit.models.earth.troposphere.FieldTroposphericDelay.getSh` delays, the wet delays are arbitrarily set to
+            0.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
+
+class GlobalMappingFunctionModel(MappingFunction, TroposphereMappingFunction):
+    """
+    public class GlobalMappingFunctionModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.MappingFunction`, :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+    
+        The Global Mapping Function model for radio techniques. This model is an empirical mapping function. It only needs the
+        values of the station latitude, longitude, height and the date for the computations.
+    
+        The Global Mapping Function is based on spherical harmonics up to degree and order of 9. It was developed to be
+        consistent with the :class:`~org.orekit.models.earth.troposphere.ViennaOneModel` mapping function model.
+    
+        Also see:
+            "Boehm, J., A.E. Niell, P. Tregoning, H. Schuh (2006), Global Mapping Functions (GMF): A new empirical mapping function
+            based on numerical weather model data, Geoph. Res. Letters, Vol. 33, L07304, doi:10.1029/2005GL025545.", "Petit, G. and
+            Luzum, B. (eds.), IERS Conventions (2010), IERS Technical Note No. 36, BKG (2010)"
+    """
+    @typing.overload
+    def __init__(self): ...
+    @typing.overload
+    def __init__(self, timeScale: org.orekit.time.TimeScale): ...
+    _mappingFactors_2__T = typing.TypeVar('_mappingFactors_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_3__T = typing.TypeVar('_mappingFactors_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
+        """
+            Deprecated.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T[] mappingFactors (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
+        
+            Deprecated.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        """
+        ...
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def mappingFactors(self, t: _mappingFactors_2__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_2__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_2__T]) -> typing.MutableSequence[_mappingFactors_2__T]: ...
+    @typing.overload
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_3__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_3__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_3__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_3__T]) -> typing.MutableSequence[_mappingFactors_3__T]:
+        """
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        
+        """
+        ...
+
+class MariniMurray(TroposphericModel):
+    """
+    public class MariniMurray extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+    
+        The Marini-Murray tropospheric delay model for laser ranging.
+    
+        Since:
+            12.1
+    
+        Also see:
+            "Marini, J.W., and C.W. Murray, correction of Laser Range Tracking Data for Atmospheric Refraction at Elevations Above
+            10 degrees, X-591-73-351, NASA GSFC, 1973"
+    """
+    def __init__(self, double: float, unit: org.orekit.utils.units.Unit): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        """
+        ...
+
+class MendesPavlisModel(DiscreteTroposphericModel, TroposphericModel, MappingFunction, TroposphereMappingFunction):
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float): ...
+    @typing.overload
+    def __init__(self, pressureTemperatureHumidityProvider: org.orekit.models.earth.weather.PressureTemperatureHumidityProvider, double: float, unit: org.orekit.utils.units.Unit): ...
+    _computeZenithDelay_1__T = typing.TypeVar('_computeZenithDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def computeZenithDelay(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def computeZenithDelay(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_computeZenithDelay_1__T], tArray: typing.Union[typing.List[_computeZenithDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_computeZenithDelay_1__T]) -> typing.MutableSequence[_computeZenithDelay_1__T]: ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    @typing.overload
+    @staticmethod
+    def getStandardModel(double: float) -> 'MendesPavlisModel': ...
+    @typing.overload
+    @staticmethod
+    def getStandardModel(double: float, unit: org.orekit.utils.units.Unit) -> 'MendesPavlisModel': ...
+    _mappingFactors_2__T = typing.TypeVar('_mappingFactors_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_3__T = typing.TypeVar('_mappingFactors_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def mappingFactors(self, t: _mappingFactors_2__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_2__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_2__T]) -> typing.MutableSequence[_mappingFactors_2__T]: ...
+    @typing.overload
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_3__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_3__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_3__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_3__T]) -> typing.MutableSequence[_mappingFactors_3__T]: ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float: ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]: ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
+
+class ModifiedHopfieldModel(TroposphericModel):
+    """
+    public class ModifiedHopfieldModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+    
+        The modified Hopfield model.
+    
+        This model from Hopfield 1969, 1970, 1972 is described in equations 5.105, 5.106, 5.107 and 5.108 in Guochang Xu, GPS -
+        Theory, Algorithms and Applications, Springer, 2007.
+    
+        Since:
+            12.1
+    
+        Also see:
+            "Guochang Xu, GPS - Theory, Algorithms and Applications, Springer, 2007"
+    """
+    def __init__(self): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
+        
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        """
+        ...
+
+class ModifiedSaastamoinenModel(TroposphericModel, DiscreteTroposphericModel):
+    """
+    public class ModifiedSaastamoinenModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`, :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    
+        The modified Saastamoinen model. Estimates the path delay imposed to electro-magnetic signals by the troposphere
+        according to the formula:
+    
+        .. code-block: java
+        
+         δ = 2.277e-3 / cos z * (P + (1255 / T + 0.05) * e - B * tan² z) + δR
+         
+        with the following input data provided to the model:
+    
+          - z: zenith angle
+          - P: atmospheric pressure
+          - T: temperature
+          - e: partial pressure of water vapour
+          - B, δR: correction terms
+    
+    
+        The model supports custom δR correction terms to be read from a configuration file (saastamoinen-correction.txt) via
+        the :class:`~org.orekit.data.DataProvidersManager`.
+    
+        Since:
+            12.0
+    
+        Also see:
+            "Guochang Xu, GPS - Theory, Algorithms and Applications, Springer, 2007"
+    """
+    DELTA_R_FILE_NAME: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DELTA_R_FILE_NAME
+    
+        Default file name for δR correction term table.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    DEFAULT_LOW_ELEVATION_THRESHOLD: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_LOW_ELEVATION_THRESHOLD
+    
+        Default lowest acceptable elevation angle [rad].
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    WATER: typing.ClassVar[org.orekit.models.earth.weather.water.Wang1988] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.weather.water.Wang1988` WATER
+    
+        Provider for water pressure.
+    
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float): ...
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, string: str): ...
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
+    @typing.overload
+    def __init__(self, pressureTemperatureHumidityProvider: org.orekit.models.earth.weather.PressureTemperatureHumidityProvider): ...
+    @typing.overload
+    def __init__(self, pressureTemperatureHumidityProvider: org.orekit.models.earth.weather.PressureTemperatureHumidityProvider, string: str): ...
+    @typing.overload
+    def __init__(self, pressureTemperatureHumidityProvider: org.orekit.models.earth.weather.PressureTemperatureHumidityProvider, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
+    def getLowElevationThreshold(self) -> float:
+        """
+            Get the low elevation threshold value for path delay computation.
+        
+            Returns:
+                low elevation threshold, in rad.
+        
+            Since:
+                10.2
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`
+        
+        
+        """
+        ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getPth0Provider(self) -> org.orekit.models.earth.weather.PressureTemperatureHumidityProvider:
+        """
+            Get provider for atmospheric pressure, temperature and humidity at reference altitude.
+        
+            Returns:
+                provider for atmospheric pressure, temperature and humidity at reference altitude
+        
+        
+        """
+        ...
+    @staticmethod
+    def getStandardModel() -> 'ModifiedSaastamoinenModel': ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
+        
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
+        
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
+        
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
+        
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
+        
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
+    def setLowElevationThreshold(self, double: float) -> None:
+        """
+            Set the low elevation threshold value for path delay computation.
+        
+            Parameters:
+                lowElevationThreshold (double): The new value for the threshold [rad]
+        
+            Since:
+                10.2
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay`
+        
+        
+        """
+        ...
+
+class NiellMappingFunctionModel(MappingFunction, TroposphereMappingFunction):
+    """
+    public class NiellMappingFunctionModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.MappingFunction`, :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+    
+        The Niell Mapping Function model for radio wavelengths. This model is an empirical mapping function. It only needs the
+        values of the station latitude, height and the date for the computations.
+    
+        With this model, the hydrostatic mapping function is time and latitude dependent whereas the wet mapping function is
+        only latitude dependent.
+    
+        Also see:
+            "A. E. Niell(1996), Global mapping functions for the atmosphere delay of radio wavelengths, J. Geophys. Res., 101(B2),
+            pp. 3227–3246, doi: 10.1029/95JB03048."
+    """
+    @typing.overload
+    def __init__(self): ...
+    @typing.overload
+    def __init__(self, timeScale: org.orekit.time.TimeScale): ...
+    _mappingFactors_2__T = typing.TypeVar('_mappingFactors_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_3__T = typing.TypeVar('_mappingFactors_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
+        """
+            Deprecated.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T[] mappingFactors (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
+        
+            Deprecated.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.MappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        """
+        ...
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def mappingFactors(self, t: _mappingFactors_2__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_2__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_2__T]) -> typing.MutableSequence[_mappingFactors_2__T]: ...
+    @typing.overload
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_3__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_3__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_3__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_3__T]) -> typing.MutableSequence[_mappingFactors_3__T]:
+        """
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        
+        """
+        ...
+
+class TimeSpanEstimatedModel(TroposphericModel):
+    """
+    public class TimeSpanEstimatedModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+    
+        Time span estimated tropospheric model.
+    
+        This class is closely related to :class:`~org.orekit.models.earth.troposphere.package` class.
+    
+    
+        The difference is that it has a :class:`~org.orekit.utils.TimeSpanMap` of
+        :class:`~org.orekit.models.earth.troposphere.EstimatedModel` objects as attribute.
+    
+    
+        The idea behind this model is to allow the user to design a tropospheric model that can see its physical parameters
+        (total zenith delay) change with time, at dates chosen by the user.
+    
+    
+    
+        Since:
+            10.2
+    """
+    DATE_BEFORE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DATE_BEFORE
+    
+        Prefix for dates before in the tropospheric parameter drivers' name.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    DATE_AFTER: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DATE_AFTER
+    
+        Prefix for dates after in the tropospheric parameter drivers' name.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, estimatedModel: EstimatedModel): ...
+    @typing.overload
+    def __init__(self, estimatedModel: EstimatedModel, timeScale: org.orekit.time.TimeScale): ...
+    def addTroposphericModelValidAfter(self, estimatedModel: EstimatedModel, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Add a EstimatedTroposphericModel entry valid after a limit date.
+        
+        
+            Using :code:`addTroposphericModelValidAfter(entry, t)` will make :code:`entry` valid in [t, +∞[ (note the closed
+            bracket).
+        
+            Parameters:
+                model (:class:`~org.orekit.models.earth.troposphere.EstimatedModel`): EstimatedTroposphericModel entry
+                earliestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date after which the entry is valid (must be different from **all** dates already used for transitions)
+        
+        
+        """
+        ...
+    def addTroposphericModelValidBefore(self, estimatedModel: EstimatedModel, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Add an EstimatedTroposphericModel entry valid before a limit date.
+        
+        
+            Using :code:`addTroposphericValidBefore(entry, t)` will make :code:`entry` valid in ]-∞, t[ (note the open bracket).
+        
+            Parameters:
+                model (:class:`~org.orekit.models.earth.troposphere.EstimatedModel`): EstimatedTroposphericModel entry
+                latestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date before which the entry is valid (must be different from **all** dates already used for transitions)
+        
+        
+        """
+        ...
+    _extractParameters_1__T = typing.TypeVar('_extractParameters_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def extractParameters(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
+        """
+            Extract the proper parameter drivers' values from the array in input of the
+            :meth:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedModel.pathDelay` method. Parameters are filtered given an
+            input date.
+        
+            Parameters:
+                parameters (double[]): the input parameters array
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date
+        
+            Returns:
+                the parameters given the date
+        
+        """
+        ...
+    @typing.overload
+    def extractParameters(self, tArray: typing.Union[typing.List[_extractParameters_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_extractParameters_1__T]) -> typing.MutableSequence[_extractParameters_1__T]:
+        """
+            Extract the proper parameter drivers' values from the array in input of the
+            :meth:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedModel.pathDelay` method. Parameters are filtered given an
+            input date.
+        
+            Parameters:
+                parameters (T[]): the input parameters array
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): the date
+        
+            Returns:
+                the parameters given the date
+        
+        
+        """
+        ...
+    def getFirstSpan(self) -> org.orekit.utils.TimeSpanMap.Span[EstimatedModel]: ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getTroposphericModel(self, absoluteDate: org.orekit.time.AbsoluteDate) -> EstimatedModel:
+        """
+            Get the :class:`~org.orekit.models.earth.troposphere.EstimatedModel` model valid at a date.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date of validity
+        
+            Returns:
+                the EstimatedTroposphericModel model valid at date
+        
+        
+        """
+        ...
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        """
+        ...
+
+class TimeSpanEstimatedTroposphericModel(DiscreteTroposphericModel):
+    """
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class TimeSpanEstimatedTroposphericModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedModel`
+        Time span estimated tropospheric model.
+    
+        This class is closely related to :class:`~org.orekit.models.earth.troposphere.package` class.
+    
+    
+        The difference is that it has a :class:`~org.orekit.utils.TimeSpanMap` of
+        :class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel` objects as attribute.
+    
+    
+        The idea behind this model is to allow the user to design a tropospheric model that can see its physical parameters
+        (total zenith delay) change with time, at dates chosen by the user.
+    
+    
+    
+        Since:
+            10.2
+    """
+    DATE_BEFORE: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DATE_BEFORE
+    
+        Deprecated.
+        Prefix for dates before in the tropospheric parameter drivers' name.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    DATE_AFTER: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DATE_AFTER
+    
+        Deprecated.
+        Prefix for dates after in the tropospheric parameter drivers' name.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, estimatedTroposphericModel: 'EstimatedTroposphericModel'): ...
+    @typing.overload
+    def __init__(self, estimatedTroposphericModel: 'EstimatedTroposphericModel', timeScale: org.orekit.time.TimeScale): ...
+    def addTroposphericModelValidAfter(self, estimatedTroposphericModel: 'EstimatedTroposphericModel', absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Deprecated.
+            Add a EstimatedTroposphericModel entry valid after a limit date.
+        
+        
+            Using :code:`addTroposphericModelValidAfter(entry, t)` will make :code:`entry` valid in [t, +∞[ (note the closed
+            bracket).
+        
+            Parameters:
+                model (:class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel`): EstimatedTroposphericModel entry
+                earliestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date after which the entry is valid (must be different from **all** dates already used for transitions)
+        
+        
+        """
+        ...
+    def addTroposphericModelValidBefore(self, estimatedTroposphericModel: 'EstimatedTroposphericModel', absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Deprecated.
+            Add an EstimatedTroposphericModel entry valid before a limit date.
+        
+        
+            Using :code:`addTroposphericValidBefore(entry, t)` will make :code:`entry` valid in ]-∞, t[ (note the open bracket).
+        
+            Parameters:
+                model (:class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel`): EstimatedTroposphericModel entry
+                latestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date before which the entry is valid (must be different from **all** dates already used for transitions)
+        
+        
+        """
+        ...
+    _extractParameters_1__T = typing.TypeVar('_extractParameters_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def extractParameters(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
+        """
+            Deprecated.
+            Extract the proper parameter drivers' values from the array in input of the
+            :meth:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedTroposphericModel.pathDelay` method. Parameters are
+            filtered given an input date.
+        
+            Parameters:
+                parameters (double[]): the input parameters array
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date
+        
+            Returns:
+                the parameters given the date
+        
+        """
+        ...
+    @typing.overload
+    def extractParameters(self, tArray: typing.Union[typing.List[_extractParameters_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_extractParameters_1__T]) -> typing.MutableSequence[_extractParameters_1__T]:
+        """
+            Deprecated.
+            Extract the proper parameter drivers' values from the array in input of the
+            :meth:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedTroposphericModel.pathDelay` method. Parameters are
+            filtered given an input date.
+        
+            Parameters:
+                parameters (T[]): the input parameters array
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): the date
+        
+            Returns:
+                the parameters given the date
+        
+        
+        """
+        ...
+    def getFirstSpan(self) -> org.orekit.utils.TimeSpanMap.Span['EstimatedTroposphericModel']: ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def getTroposphericModel(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'EstimatedTroposphericModel':
+        """
+            Deprecated.
+            Get the :class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel` model valid at a date.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): the date of validity
+        
+            Returns:
+                the EstimatedTroposphericModel model valid at date
+        
+        
+        """
+        ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        
+        """
+        ...
+
+class TroposphereMappingFunctionAdapter(TroposphereMappingFunction):
+    """
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class TroposphereMappingFunctionAdapter extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+    
+        Deprecated.
+        temporary adapter to be removed when :class:`~org.orekit.models.earth.troposphere.MappingFunction` is removed
+        Adapter between :class:`~org.orekit.models.earth.troposphere.MappingFunction` and
+        :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`.
+    
+        This class is a temporary adapter, it will be removed when :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+        is removed.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, mappingFunction: MappingFunction): ...
+    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
+        """
+            Deprecated.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        """
+        ...
+    @typing.overload
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_1__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
+        """
+            Deprecated.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction.mappingFactors` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphereMappingFunction`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                a two components array containing the hydrostatic and wet mapping functions.
+        
+        
+        """
+        ...
+
+class TroposphericModelAdapter(TroposphericModel):
+    """
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class TroposphericModelAdapter extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+    
+        Deprecated.
+        temporary adapter to be removed when :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel` is removed
+        Adapter between :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel` and
+        :class:`~org.orekit.models.earth.troposphere.TroposphericModel`.
+    
+        This class is a temporary adapter, it will be removed when
+        :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel` is removed.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, discreteTroposphericModel: DiscreteTroposphericModel): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _pathDelay_0__T = typing.TypeVar('_pathDelay_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_0__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_0__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_0__T], tArray: typing.Union[typing.List[_pathDelay_0__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_0__T]) -> FieldTroposphericDelay[_pathDelay_0__T]:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            All delays are affected to :meth:`~org.orekit.models.earth.troposphere.FieldTroposphericDelay.getZh` and
+            :meth:`~org.orekit.models.earth.troposphere.FieldTroposphericDelay.getSh` delays, the wet delays are arbitrarily set to
+            0.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters for constant default values)
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            All delays are affected to :meth:`~org.orekit.models.earth.troposphere.TroposphericDelay.getZh` and
+            :meth:`~org.orekit.models.earth.troposphere.TroposphericDelay.getSh` delays, the wet delays are arbitrarily set to 0.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.TroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.TroposphericModel`
+        
+            Parameters:
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters for constant default values)
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere
+        
+        """
+        ...
+
+class ChaoMappingFunction(AbstractChaoMappingFunction):
+    """
+    public class ChaoMappingFunction extends :class:`~org.orekit.models.earth.troposphere.AbstractChaoMappingFunction`
+    
+        Chao mapping function for radio wavelengths.
+    
+        Since:
+            12.1
+    
+        Also see:
+            "C. C. Chao, A model for tropospheric calibration from delay surface and radiosonde ballon measurements, 1972"
+    """
+    def __init__(self): ...
+
+class EstimatedTroposphericModel(EstimatedModel, DiscreteTroposphericModel):
+    """
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class EstimatedTroposphericModel extends :class:`~org.orekit.models.earth.troposphere.EstimatedModel` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.EstimatedModel`
+        An estimated tropospheric model. The tropospheric delay is computed according to the formula:
+    
+        δ = δ :sub:`h` * m :sub:`h` + (δ :sub:`t` - δ :sub:`h` ) * m :sub:`w`
+    
+        With:
+    
+          - δ :sub:`h` : Tropospheric zenith hydro-static delay.
+          - δ :sub:`t` : Tropospheric total zenith delay.
+          - m :sub:`h` : Hydro-static mapping function.
+          - m :sub:`w` : Wet mapping function.
+    
+    
+        The mapping functions m :sub:`h` (e) and m :sub:`w` (e) are computed thanks to a :code:`EstimatedModel.model`
+        initialized by the user. The user has the possibility to use several mapping function models for the computations: the
+        :class:`~org.orekit.models.earth.troposphere.GlobalMappingFunctionModel`, or the
+        :class:`~org.orekit.models.earth.troposphere.NiellMappingFunctionModel`
+    
+        The tropospheric zenith delay δ :sub:`h` is computed empirically with a
+        :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel` while the tropospheric total zenith delay δ
+        :sub:`t` is estimated as a :class:`~org.orekit.utils.ParameterDriver`, hence the wet part is the difference between the
+        two.
+    """
+    TOTAL_ZENITH_DELAY: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` TOTAL_ZENITH_DELAY
+    
+        Deprecated.
+        Name of the parameter of this model: the total zenith delay.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, mappingFunction: MappingFunction, double3: float): ...
+    @typing.overload
+    def __init__(self, discreteTroposphericModel: DiscreteTroposphericModel, mappingFunction: MappingFunction, double: float): ...
+    @typing.overload
+    def __init__(self, mappingFunction: MappingFunction, double: float): ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T pathDelay (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, T[] parameters, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
+        
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]: ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
+
+class MariniMurrayModel(MariniMurray, DiscreteTroposphericModel):
+    """
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class MariniMurrayModel extends :class:`~org.orekit.models.earth.troposphere.MariniMurray` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+    
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.MariniMurray`
+        The Marini-Murray tropospheric delay model for laser ranging.
+    
+        Also see:
+            "Marini, J.W., and C.W. Murray, correction of Laser Range Tracking Data for Atmospheric Refraction at Elevations Above
+            10 degrees, X-591-73-351, NASA GSFC, 1973"
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float): ...
+    @staticmethod
+    def getStandardModel(double: float) -> 'MariniMurrayModel':
+        """
+            Deprecated.
+            Create a new Marini-Murray model using a standard atmosphere model.
+        
+              - temperature: 20 degree Celsius
+              - pressure: 1013.25 mbar
+              - humidity: 50%
+        
+        
+            Parameters:
+                lambda (double): laser wavelength (c/f), nm
+        
+            Returns:
+                a Marini-Murray model with standard environmental values
+        
+        
+        """
+        ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+        """
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
+        
+            Parameters:
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+        
+            Returns:
+                the path delay due to the troposphere in m
+        
+        
+        """
+        ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]: ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
+
+class RevisedChaoMappingFunction(AbstractChaoMappingFunction):
+    """
+    public class RevisedChaoMappingFunction extends :class:`~org.orekit.models.earth.troposphere.AbstractChaoMappingFunction`
+    
+        Chao mapping function for radio wavelengths.
+    
+        The mapping function is described in A. Estefan, O. J. Sovers 1994 paper "A Comparative Survey of Current and Proposed
+        Tropospheric Refraction-Delay Models for DSN Radio Metric Data Calibration"
+    
+        Since:
+            12.1
+    """
+    def __init__(self): ...
+
+class SaastamoinenModel(ModifiedSaastamoinenModel):
+    """
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class SaastamoinenModel extends :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel`
+    
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel`
+        The modified Saastamoinen model.
     """
-    DATE_BEFORE: typing.ClassVar[str] = ...
+    DELTA_R_FILE_NAME: typing.ClassVar[str] = ...
     """
-    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DATE_BEFORE
+    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DELTA_R_FILE_NAME
     
-        Prefix for dates before in the tropospheric parameter drivers' name.
+        Deprecated.
+        Default file name for δR correction term table.
     
         Also see:
             :meth:`~constant`
     
     
     """
-    DATE_AFTER: typing.ClassVar[str] = ...
+    DEFAULT_LOW_ELEVATION_THRESHOLD: typing.ClassVar[float] = ...
     """
-    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DATE_AFTER
+    public static final double DEFAULT_LOW_ELEVATION_THRESHOLD
     
-        Prefix for dates after in the tropospheric parameter drivers' name.
+        Deprecated.
+        Default lowest acceptable elevation angle [rad].
     
         Also see:
             :meth:`~constant`
@@ -1003,134 +3091,171 @@ class TimeSpanEstimatedTroposphericModel(DiscreteTroposphericModel):
     
     """
     @typing.overload
-    def __init__(self, estimatedTroposphericModel: EstimatedTroposphericModel): ...
+    def __init__(self, double: float, double2: float, double3: float): ...
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, string: str): ...
+    @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
+    @typing.overload
+    @staticmethod
+    def getStandardModel() -> ModifiedSaastamoinenModel: ...
+    @typing.overload
+    @staticmethod
+    def getStandardModel() -> 'SaastamoinenModel': ...
+    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def __init__(self, estimatedTroposphericModel: EstimatedTroposphericModel, timeScale: org.orekit.time.TimeScale): ...
-    def addTroposphericModelValidAfter(self, estimatedTroposphericModel: EstimatedTroposphericModel, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
         """
-            Add a EstimatedTroposphericModel entry valid after a limit date.
-        
-        
-            Using :code:`addTroposphericModelValidAfter(entry, t)` will make :code:`entry` valid in [t, +∞[ (note the closed
-            bracket).
-        
-            Parameters:
-                model (:class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel`): EstimatedTroposphericModel entry
-                earliestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date after which the entry is valid (must be different from **all** dates already used for transitions)
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
         
-        """
-        ...
-    def addTroposphericModelValidBefore(self, estimatedTroposphericModel: EstimatedTroposphericModel, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
-        """
-            Add an EstimatedTroposphericModel entry valid before a limit date.
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
         
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
         
-            Using :code:`addTroposphericValidBefore(entry, t)` will make :code:`entry` valid in ]-∞, t[ (note the open bracket).
+            Overrides:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay` in
+                class :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel`
         
             Parameters:
-                model (:class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel`): EstimatedTroposphericModel entry
-                latestValidityDate (:class:`~org.orekit.time.AbsoluteDate`): date before which the entry is valid (must be different from **all** dates already used for transitions)
-        
+                elevation (double): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
+                parameters (double[]): tropospheric model parameters
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
-        """
-        ...
-    _extractParameters_1__T = typing.TypeVar('_extractParameters_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def extractParameters(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
-        """
-            Extract the proper parameter drivers' values from the array in input of the
-            :meth:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedTroposphericModel.pathDelay` method. Parameters are
-            filtered given an input date.
+            Returns:
+                the path delay due to the troposphere in m
         
-            Parameters:
-                parameters (double[]): the input parameters array
-                date (:class:`~org.orekit.time.AbsoluteDate`): the date
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
         
-            Returns:
-                the parameters given the date
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T pathDelay (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, T[] parameters, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
         
-        """
-        ...
-    @typing.overload
-    def extractParameters(self, tArray: typing.Union[typing.List[_extractParameters_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_extractParameters_1__T]) -> typing.MutableSequence[_extractParameters_1__T]:
-        """
-            Extract the proper parameter drivers' values from the array in input of the
-            :meth:`~org.orekit.models.earth.troposphere.TimeSpanEstimatedTroposphericModel.pathDelay` method. Parameters are
-            filtered given an input date.
+            Deprecated.
+            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
-            Parameters:
-                parameters (T[]): the input parameters array
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): the date
+            The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when
+            altitude is negative.
         
-            Returns:
-                the parameters given the date
+            There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a
+            threshold will use the value obtained for the threshold itself.
         
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
+                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
         
-        """
-        ...
-    def getFirstSpan(self) -> org.orekit.utils.TimeSpanMap.Span[EstimatedTroposphericModel]: ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    def getTroposphericModel(self, absoluteDate: org.orekit.time.AbsoluteDate) -> EstimatedTroposphericModel:
-        """
-            Get the :class:`~org.orekit.models.earth.troposphere.EstimatedTroposphericModel` model valid at a date.
+            Overrides:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.pathDelay` in
+                class :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel`
         
             Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): the date of validity
+                elevation (T): the elevation of the satellite, in radians
+                point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
+                parameters (T[]): tropospheric model parameters at current date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                the EstimatedTroposphericModel model valid at date
+                the path delay due to the troposphere in m
+        
+            Also see:
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.getLowElevationThreshold`,
+                :meth:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel.setLowElevationThreshold`
         
         
         """
         ...
-    _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]: ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
+
+class ViennaOne(AbstractVienna):
+    """
+    public class ViennaOne extends :class:`~org.orekit.models.earth.troposphere.AbstractVienna`
+    
+        The Vienna 1 tropospheric delay model for radio techniques. The Vienna model data are given with a time interval of 6
+        hours as well as on a global 2.5° * 2.0° grid. This version considered the height correction for the hydrostatic part
+        developed by Niell, 1996.
+    
+        Since:
+            12.1
+    
+        Also see:
+            "Boehm, J., Werl, B., and Schuh, H., (2006), Troposhere mapping functions for GPS and very long baseline interferometry
+            from European Centre for Medium-Range Weather Forecasts operational analysis data, J. Geophy. Res., Vol. 111, B02406,
+            doi:10.1029/2005JB003629"
+    """
+    def __init__(self, viennaAProvider: ViennaAProvider, azimuthalGradientProvider: AzimuthalGradientProvider, troposphericModel: TroposphericModel, timeScale: org.orekit.time.TimeScale): ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
-            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - double[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - double[1] = m :sub:`w` (e) → wet mapping function
         
-            Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
         
             Parameters:
-                elevation (double): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.TrackingCoordinates`): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.GeodeticPoint`): station location
-                parameters (double[]): tropospheric model parameters
+                weather (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather parameters
                 date (:class:`~org.orekit.time.AbsoluteDate`): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                a two components array containing the hydrostatic and wet mapping functions.
         
         """
         ...
     @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_1__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
         """
-            Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
+            This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
+            having the following form:
+        
+              - T[0] = m :sub:`h` (e) → hydrostatic mapping function
+              - T[1] = m :sub:`w` (e) → wet mapping function
         
-            Specified by:
-                :meth:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel.pathDelay` in
-                interface :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`
         
             Parameters:
-                elevation (T): the elevation of the satellite, in radians
+                trackingCoordinates (:class:`~org.orekit.utils.FieldTrackingCoordinates`<T> trackingCoordinates): tracking coordinates of the satellite
                 point (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point): station location
-                parameters (T[]): tropospheric model parameters at current date
+                weather (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> weather): weather parameters
                 date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
         
             Returns:
-                the path delay due to the troposphere in m
+                a two components array containing the hydrostatic and wet mapping functions.
         
         
         """
         ...
 
-class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
+class ViennaThree(AbstractVienna):
+    def __init__(self, viennaAProvider: ViennaAProvider, azimuthalGradientProvider: AzimuthalGradientProvider, troposphericModel: TroposphericModel, timeScale: org.orekit.time.TimeScale): ...
+    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
+    @typing.overload
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_1__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]: ...
+
+class ViennaOneModel(ViennaOne, DiscreteTroposphericModel, MappingFunction):
     """
-    public class ViennaOneModel extends :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`, :class:`~org.orekit.models.earth.troposphere.MappingFunction`
+    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class ViennaOneModel extends :class:`~org.orekit.models.earth.troposphere.ViennaOne` implements :class:`~org.orekit.models.earth.troposphere.DiscreteTroposphericModel`, :class:`~org.orekit.models.earth.troposphere.MappingFunction`
     
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.ViennaOne`
         The Vienna1 tropospheric delay model for radio techniques. The Vienna model data are given with a time interval of 6
         hours as well as on a global 2.5° * 2.0° grid. This version considered the height correction for the hydrostatic part
         developed by Niell, 1996.
@@ -1148,6 +3273,7 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
     @typing.overload
     def computeZenithDelay(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
+            Deprecated.
             This method allows the computation of the zenith hydrostatic and zenith wet delay. The resulting element is an array
             having the following form:
         
@@ -1168,6 +3294,7 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
     @typing.overload
     def computeZenithDelay(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_computeZenithDelay_1__T], tArray: typing.Union[typing.List[_computeZenithDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_computeZenithDelay_1__T]) -> typing.MutableSequence[_computeZenithDelay_1__T]:
         """
+            Deprecated.
             This method allows the computation of the zenith hydrostatic and zenith wet delay. The resulting element is an array
             having the following form:
         
@@ -1186,11 +3313,14 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
         
         """
         ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_2__T = typing.TypeVar('_mappingFactors_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_3__T = typing.TypeVar('_mappingFactors_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
     @typing.overload
     def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]:
         """
+            Deprecated.
             This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
             having the following form:
         
@@ -1210,11 +3340,9 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
             Returns:
                 a two components array containing the hydrostatic and wet mapping functions.
         
-        """
-        ...
-    @typing.overload
-    def mappingFactors(self, t: _mappingFactors_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]:
-        """
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T[] mappingFactors (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
+        
+            Deprecated.
             This method allows the computation of the hydrostatic and wet mapping functions. The resulting element is an array
             having the following form:
         
@@ -1237,10 +3365,16 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
         
         """
         ...
+    @typing.overload
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_2__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_2__T]) -> typing.MutableSequence[_mappingFactors_2__T]: ...
+    @typing.overload
+    def mappingFactors(self, t: _mappingFactors_3__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_3__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_3__T]) -> typing.MutableSequence[_mappingFactors_3__T]: ...
     _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float:
         """
+            Deprecated.
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Specified by:
@@ -1256,11 +3390,9 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
             Returns:
                 the path delay due to the troposphere in m
         
-        """
-        ...
-    @typing.overload
-    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T:
-        """
+        :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public <T extends :class:`~org.orekit.models.earth.troposphere.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> T pathDelay (T elevation, :class:`~org.orekit.bodies.FieldGeodeticPoint`<T> point, T[] parameters, :class:`~org.orekit.time.FieldAbsoluteDate`<T> date)
+        
+            Deprecated.
             Calculates the tropospheric path delay for the signal path from a ground station to a satellite.
         
             Specified by:
@@ -1279,8 +3411,14 @@ class ViennaOneModel(DiscreteTroposphericModel, MappingFunction):
         
         """
         ...
+    @typing.overload
+    def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
+    @typing.overload
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]: ...
+    @typing.overload
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
 
-class ViennaThreeModel(DiscreteTroposphericModel, MappingFunction):
+class ViennaThreeModel(ViennaThree, DiscreteTroposphericModel, MappingFunction):
     @typing.overload
     def __init__(self, doubleArray: typing.Union[typing.List[float], jpype.JArray], doubleArray2: typing.Union[typing.List[float], jpype.JArray]): ...
     @typing.overload
@@ -1290,95 +3428,72 @@ class ViennaThreeModel(DiscreteTroposphericModel, MappingFunction):
     def computeZenithDelay(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
     @typing.overload
     def computeZenithDelay(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_computeZenithDelay_1__T], tArray: typing.Union[typing.List[_computeZenithDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_computeZenithDelay_1__T]) -> typing.MutableSequence[_computeZenithDelay_1__T]: ...
-    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
-    _mappingFactors_1__T = typing.TypeVar('_mappingFactors_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_2__T = typing.TypeVar('_mappingFactors_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _mappingFactors_3__T = typing.TypeVar('_mappingFactors_3__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def mappingFactors(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
     @typing.overload
     def mappingFactors(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> typing.MutableSequence[float]: ...
     @typing.overload
-    def mappingFactors(self, t: _mappingFactors_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_1__T]) -> typing.MutableSequence[_mappingFactors_1__T]: ...
+    def mappingFactors(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_mappingFactors_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_mappingFactors_2__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_2__T]) -> typing.MutableSequence[_mappingFactors_2__T]: ...
+    @typing.overload
+    def mappingFactors(self, t: _mappingFactors_3__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_mappingFactors_3__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_mappingFactors_3__T]) -> typing.MutableSequence[_mappingFactors_3__T]: ...
     _pathDelay_1__T = typing.TypeVar('_pathDelay_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _pathDelay_2__T = typing.TypeVar('_pathDelay_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def pathDelay(self, double: float, geodeticPoint: org.orekit.bodies.GeodeticPoint, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> float: ...
     @typing.overload
     def pathDelay(self, t: _pathDelay_1__T, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_1__T], tArray: typing.Union[typing.List[_pathDelay_1__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_1__T]) -> _pathDelay_1__T: ...
-
-class SaastamoinenModel(ModifiedSaastamoinenModel):
-    """
-    :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class SaastamoinenModel extends :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel`
-    
-        Deprecated.
-        as of 12.1, replaced by :class:`~org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel`
-        The modified Saastamoinen model.
-    """
-    DELTA_R_FILE_NAME: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.models.earth.troposphere.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DELTA_R_FILE_NAME
-    
-        Deprecated.
-        Default file name for δR correction term table.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    DEFAULT_LOW_ELEVATION_THRESHOLD: typing.ClassVar[float] = ...
-    """
-    public static final double DEFAULT_LOW_ELEVATION_THRESHOLD
-    
-        Deprecated.
-        Default lowest acceptable elevation angle [rad].
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    @typing.overload
-    def __init__(self, double: float, double2: float, double3: float): ...
-    @typing.overload
-    def __init__(self, double: float, double2: float, double3: float, string: str): ...
-    @typing.overload
-    def __init__(self, double: float, double2: float, double3: float, string: str, dataProvidersManager: org.orekit.data.DataProvidersManager): ...
     @typing.overload
-    @staticmethod
-    def getStandardModel() -> ModifiedSaastamoinenModel:
-        """
-            Deprecated.
-            Create a new Saastamoinen model using a standard atmosphere model.
-        
-              - temperature: 18 degree Celsius
-              - pressure: 1013.25 mbar
-              - humidity: 50%
-        
-        
-            Returns:
-                a Saastamoinen model with standard environmental values
-        
-        
-        """
-        ...
+    def pathDelay(self, fieldTrackingCoordinates: org.orekit.utils.FieldTrackingCoordinates[_pathDelay_2__T], fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_pathDelay_2__T], fieldPressureTemperatureHumidity: org.orekit.models.earth.weather.FieldPressureTemperatureHumidity[_pathDelay_2__T], tArray: typing.Union[typing.List[_pathDelay_2__T], jpype.JArray], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_pathDelay_2__T]) -> FieldTroposphericDelay[_pathDelay_2__T]: ...
     @typing.overload
-    @staticmethod
-    def getStandardModel() -> 'SaastamoinenModel': ...
+    def pathDelay(self, trackingCoordinates: org.orekit.utils.TrackingCoordinates, geodeticPoint: org.orekit.bodies.GeodeticPoint, pressureTemperatureHumidity: org.orekit.models.earth.weather.PressureTemperatureHumidity, doubleArray: typing.Union[typing.List[float], jpype.JArray], absoluteDate: org.orekit.time.AbsoluteDate) -> TroposphericDelay: ...
 
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.models.earth.troposphere")``.
 
+    AbstractChaoMappingFunction: typing.Type[AbstractChaoMappingFunction]
+    AbstractVienna: typing.Type[AbstractVienna]
+    AskneNordiusModel: typing.Type[AskneNordiusModel]
+    AzimuthalGradientCoefficients: typing.Type[AzimuthalGradientCoefficients]
+    AzimuthalGradientProvider: typing.Type[AzimuthalGradientProvider]
+    CanonicalSaastamoinenModel: typing.Type[CanonicalSaastamoinenModel]
+    ChaoMappingFunction: typing.Type[ChaoMappingFunction]
+    ConstantAzimuthalGradientProvider: typing.Type[ConstantAzimuthalGradientProvider]
+    ConstantTroposphericModel: typing.Type[ConstantTroposphericModel]
+    ConstantViennaAProvider: typing.Type[ConstantViennaAProvider]
     DiscreteTroposphericModel: typing.Type[DiscreteTroposphericModel]
+    DummyMappingFunction: typing.Type[DummyMappingFunction]
+    EstimatedModel: typing.Type[EstimatedModel]
     EstimatedTroposphericModel: typing.Type[EstimatedTroposphericModel]
+    FieldAzimuthalGradientCoefficients: typing.Type[FieldAzimuthalGradientCoefficients]
+    FieldTroposphericDelay: typing.Type[FieldTroposphericDelay]
+    FieldViennaACoefficients: typing.Type[FieldViennaACoefficients]
     FixedTroposphericDelay: typing.Type[FixedTroposphericDelay]
     GlobalMappingFunctionModel: typing.Type[GlobalMappingFunctionModel]
     MappingFunction: typing.Type[MappingFunction]
+    MariniMurray: typing.Type[MariniMurray]
     MariniMurrayModel: typing.Type[MariniMurrayModel]
     MendesPavlisModel: typing.Type[MendesPavlisModel]
+    ModifiedHopfieldModel: typing.Type[ModifiedHopfieldModel]
     ModifiedSaastamoinenModel: typing.Type[ModifiedSaastamoinenModel]
     NiellMappingFunctionModel: typing.Type[NiellMappingFunctionModel]
+    RevisedChaoMappingFunction: typing.Type[RevisedChaoMappingFunction]
     SaastamoinenModel: typing.Type[SaastamoinenModel]
+    TimeSpanEstimatedModel: typing.Type[TimeSpanEstimatedModel]
     TimeSpanEstimatedTroposphericModel: typing.Type[TimeSpanEstimatedTroposphericModel]
+    TroposphereMappingFunction: typing.Type[TroposphereMappingFunction]
+    TroposphereMappingFunctionAdapter: typing.Type[TroposphereMappingFunctionAdapter]
+    TroposphericDelay: typing.Type[TroposphericDelay]
+    TroposphericModel: typing.Type[TroposphericModel]
+    TroposphericModelAdapter: typing.Type[TroposphericModelAdapter]
     TroposphericModelUtils: typing.Type[TroposphericModelUtils]
+    ViennaACoefficients: typing.Type[ViennaACoefficients]
+    ViennaAProvider: typing.Type[ViennaAProvider]
     ViennaModelCoefficientsLoader: typing.Type[ViennaModelCoefficientsLoader]
     ViennaModelType: typing.Type[ViennaModelType]
+    ViennaOne: typing.Type[ViennaOne]
     ViennaOneModel: typing.Type[ViennaOneModel]
+    ViennaThree: typing.Type[ViennaThree]
     ViennaThreeModel: typing.Type[ViennaThreeModel]
diff --git a/org-stubs/orekit/models/earth/weather/__init__.pyi b/org-stubs/orekit/models/earth/weather/__init__.pyi
index 24a108f1ed1e6702eff59af168be1a6bdd285052..6036ec1decb493eb39aa21f02cbe7d388460abb8 100644
--- a/org-stubs/orekit/models/earth/weather/__init__.pyi
+++ b/org-stubs/orekit/models/earth/weather/__init__.pyi
@@ -5,18 +5,254 @@ if sys.version_info >= (3, 8):
 else:
     from typing_extensions import Protocol
 
+import org.hipparchus
+import org.orekit.bodies
 import org.orekit.data
 import org.orekit.frames
 import org.orekit.models.earth
+import org.orekit.models.earth.troposphere
+import org.orekit.models.earth.weather.water
 import org.orekit.time
 import typing
 
 
 
+class CellInterpolator:
+    """
+    public class CellInterpolator extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Interpolator within a grid cell.
+    
+        Since:
+            12.1
+    """
+    ...
+
+_FieldCellInterpolator__T = typing.TypeVar('_FieldCellInterpolator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldCellInterpolator(typing.Generic[_FieldCellInterpolator__T]):
+    """
+    public class FieldCellInterpolator<T extends :class:`~org.orekit.models.earth.weather.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Interpolator within a grid cell.
+    
+        Since:
+            12.1
+    """
+    ...
+
+_FieldPressureTemperature__T = typing.TypeVar('_FieldPressureTemperature__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldPressureTemperature(typing.Generic[_FieldPressureTemperature__T]):
+    """
+    public class FieldPressureTemperature<T extends :class:`~org.orekit.models.earth.weather.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for pressure and temperature.
+    
+        Since:
+            12.1
+    """
+    @typing.overload
+    def __init__(self, t: _FieldPressureTemperature__T, t2: _FieldPressureTemperature__T, t3: _FieldPressureTemperature__T): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldPressureTemperature__T], pressureTemperatureHumidity: 'PressureTemperatureHumidity'): ...
+    def getAltitude(self) -> _FieldPressureTemperature__T:
+        """
+            Get altitude at which weather parameters have been computed.
+        
+            Returns:
+                altitude at which weather parameters have been computed (m)
+        
+        
+        """
+        ...
+    def getPressure(self) -> _FieldPressureTemperature__T:
+        """
+            Get pressure.
+        
+            Returns:
+                pressure (Pa)
+        
+        
+        """
+        ...
+    def getTemperature(self) -> _FieldPressureTemperature__T:
+        """
+            Get temperature.
+        
+            Returns:
+                temperature (Kelvin)
+        
+        
+        """
+        ...
+
+class GlobalPressureTemperature:
+    """
+    public class GlobalPressureTemperature extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        The Global Pressure and Temperature model. This model is an empirical model that provides the temperature and the
+        pressure depending the latitude and the longitude of the station.
+    
+        The Global Pressure and Temperature model is based on spherical harmonics up to degree and order of 9. The residual
+        values   of this model can reach 20 hPa for pressure and 10 ° C for temperature. They are significant for higher
+        latitudes and small near the equator (Böhm, 2007)
+    
+        Since:
+            12.1
+    
+        Also see:
+            "J. Böhm, R. Heinkelmann, and H. Schuh (2007), Short Note: A global model of pressure and temperature for geodetic
+            applications. J Geod, doi:10.1007/s00190-007-0135-3."
+    """
+    @typing.overload
+    def __init__(self, geoid: org.orekit.models.earth.Geoid): ...
+    @typing.overload
+    def __init__(self, geoid: org.orekit.models.earth.Geoid, timeScale: org.orekit.time.TimeScale): ...
+    def getWeatherParameters(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> 'PressureTemperature':
+        """
+            Provide weather parameters.
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                weather parameters
+        
+        
+        """
+        ...
+
+class HeightDependentPressureTemperatureHumidityConverter:
+    """
+    public class HeightDependentPressureTemperatureHumidityConverter extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Converter for weather parameters that change with height.
+    
+        Height variations correspond to equations 5.98, 5.99 and 5.100 from Guochang Xu, GPS - Theory, Algorithms and
+        Applications, Springer, 2007
+    
+        Since:
+            12.1
+    """
+    def __init__(self, waterVaporPressureProvider: org.orekit.models.earth.weather.water.WaterVaporPressureProvider): ...
+    _convert_0__T = typing.TypeVar('_convert_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def convert(self, fieldPressureTemperatureHumidity: 'FieldPressureTemperatureHumidity'[_convert_0__T], t: _convert_0__T) -> 'FieldPressureTemperatureHumidity'[_convert_0__T]:
+        """
+            Convert weather parameters.
+        
+            Parameters:
+                pth0 (:class:`~org.orekit.models.earth.weather.FieldPressureTemperatureHumidity`<T> pth0): weather at reference altitude
+                h (T): altitude at which weather is requested
+        
+            Returns:
+                converted weather
+        
+        
+        """
+        ...
+    @typing.overload
+    def convert(self, pressureTemperatureHumidity: 'PressureTemperatureHumidity', double: float) -> 'PressureTemperatureHumidity':
+        """
+            Convert weather parameters.
+        
+            Parameters:
+                pth0 (:class:`~org.orekit.models.earth.weather.PressureTemperatureHumidity`): weather at reference altitude
+                h (double): altitude at which weather is requested
+        
+            Returns:
+                converted weather
+        
+        """
+        ...
+
+class PressureTemperature:
+    """
+    public class PressureTemperature extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for pressure and temperature.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, double: float, double2: float, double3: float): ...
+    def getAltitude(self) -> float:
+        """
+            Get altitude at which weather parameters have been computed.
+        
+            Returns:
+                altitude at which weather parameters have been computed (m)
+        
+        
+        """
+        ...
+    def getPressure(self) -> float:
+        """
+            Get pressure.
+        
+            Returns:
+                pressure (Pa)
+        
+        
+        """
+        ...
+    def getTemperature(self) -> float:
+        """
+            Get temperature.
+        
+            Returns:
+                temperature (Kelvin)
+        
+        
+        """
+        ...
+
+class PressureTemperatureHumidityProvider:
+    """
+    public interface PressureTemperatureHumidityProvider
+    
+        Interface for providing weather parameters.
+    
+        Since:
+            12.1
+    """
+    _getWeatherParamerers_0__T = typing.TypeVar('_getWeatherParamerers_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getWeatherParamerers(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getWeatherParamerers_0__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getWeatherParamerers_0__T]) -> 'FieldPressureTemperatureHumidity'[_getWeatherParamerers_0__T]:
+        """
+            Provide weather parameters.
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
+        
+            Returns:
+                weather parameters
+        
+        
+        """
+        ...
+    @typing.overload
+    def getWeatherParamerers(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> 'PressureTemperatureHumidity':
+        """
+            Provide weather parameters.
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                weather parameters
+        
+        """
+        ...
+
 class WeatherModel:
     """
-    public interface WeatherModel
+    :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public interface WeatherModel
     
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
         Defines a surface meteorology model that can be used to compute the different weather parameters (pressure, temperature,
         ...).
     
@@ -25,6 +261,7 @@ class WeatherModel:
     """
     def weatherParameters(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
         """
+            Deprecated.
             Calculates the weather parameters of the model. In order to obtain the correct values of the parameters this method has
             to be call just after the construction of the model.
         
@@ -36,21 +273,25 @@ class WeatherModel:
         """
         ...
 
-class GlobalPressureTemperature2Model(WeatherModel):
+class AbstractGlobalPressureTemperature(org.orekit.models.earth.troposphere.ViennaAProvider, org.orekit.models.earth.troposphere.AzimuthalGradientProvider, PressureTemperatureHumidityProvider):
     """
-    public class GlobalPressureTemperature2Model extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.weather.WeatherModel`
+    public class AbstractGlobalPressureTemperature extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.troposphere.ViennaAProvider`, :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider`, :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
     
-        The Global Pressure and Temperature 2 (GPT2) model. This model is an empirical model that provides the temperature, the
-        pressure and the water vapor pressure of a site depending its latitude and longitude. This model also provides the a
-        :sub:`h` and a :sub:`w` coefficients used for the :class:`~org.orekit.models.earth.troposphere.ViennaOneModel` model.
+        Base class for Global Pressure and Temperature 2, 2w and 3 models. These models are empirical models that provide the
+        temperature, the pressure and the water vapor pressure of a site depending its latitude and longitude. These models also
+        :class:`~org.orekit.models.earth.troposphere.ViennaACoefficients` the a :sub:`h` and a :sub:`w` coefficients for Vienna
+        models.
     
         The requisite coefficients for the computation of the weather parameters are provided by the Department of Geodesy and
-        Geoinformation of the Vienna University. They are based on an external grid file like "gpt2_1.grd" (1° x 1°) or
-        "gpt2_5.grd" (5° x 5°) available at: ` link <http://vmf.geo.tuwien.ac.at/codes/>`
+        Geoinformation of the Vienna University. They are based on an external grid file like "gpt2_1.grd" (1° x 1°),
+        "gpt2_5.grd" (5° x 5°), "gpt2_1w.grd" (1° x 1°), "gpt2_5w.grd" (5° x 5°), "gpt3_1.grd" (1° x 1°), or
+        "gpt3_5.grd" (5° x 5°) available at: :class:`~org.orekit.models.earth.weather.https:.vmf.geo.tuwien.ac.at.codes`
     
         A bilinear interpolation is performed in order to obtained the correct values of the weather parameters.
     
-        The format is always the same, with and example shown below for the pressure and the temperature.
+        The format is always the same, with and example shown below for the pressure and the temperature. The "GPT2w" model (w
+        stands for wet) also provide humidity parameters and the "GPT3" model also provides horizontal gradient, so the number
+        of columns vary depending on the model.
     
         Example:
     
@@ -64,93 +305,236 @@ class GlobalPressureTemperature2Model(WeatherModel):
            ...
          
     
+        Since:
+            12.1
+    
         Also see:
             "K. Lagler, M. Schindelegger, J. Böhm, H. Krasna, T. Nilsson (2013), GPT2: empirical slant delay model for radio space
             geodetic techniques. Geophys Res Lett 40(6):1069–1073. doi:10.1002/grl.50288"
     """
-    DEFAULT_SUPPORTED_NAMES: typing.ClassVar[str] = ...
-    """
-    public static final :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DEFAULT_SUPPORTED_NAMES
-    
-        Default supported files name pattern.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
+    _getA_0__T = typing.TypeVar('_getA_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def __init__(self, double: float, double2: float, geoid: org.orekit.models.earth.Geoid): ...
-    @typing.overload
-    def __init__(self, string: str, double: float, double2: float, geoid: org.orekit.models.earth.Geoid): ...
+    def getA(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getA_0__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getA_0__T]) -> org.orekit.models.earth.troposphere.FieldViennaACoefficients[_getA_0__T]:
+        """
+            Get coefficients array for VMF mapping function.
+        
+              - double[0] = a :sub:`h`
+              - double[1] = a :sub:`w`
+        
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.ViennaAProvider.getA` in
+                interface :class:`~org.orekit.models.earth.troposphere.ViennaAProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
+        
+            Returns:
+                the coefficients array for VMF mapping function
+        
+        
+        """
+        ...
     @typing.overload
-    def __init__(self, string: str, double: float, double2: float, geoid: org.orekit.models.earth.Geoid, dataProvidersManager: org.orekit.data.DataProvidersManager, timeScale: org.orekit.time.TimeScale): ...
-    def getA(self) -> typing.MutableSequence[float]:
+    def getA(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.models.earth.troposphere.ViennaACoefficients:
         """
-            Returns the a coefficients array.
+            Get coefficients array for VMF mapping function.
         
               - double[0] = a :sub:`h`
               - double[1] = a :sub:`w`
         
         
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.ViennaAProvider.getA` in
+                interface :class:`~org.orekit.models.earth.troposphere.ViennaAProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
             Returns:
-                the a coefficients array
+                the coefficients array for VMF mapping function
         
+        """
+        ...
+    _getGradientCoefficients_1__T = typing.TypeVar('_getGradientCoefficients_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getGradientCoefficients(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.models.earth.troposphere.AzimuthalGradientCoefficients:
+        """
+            Get azimuthal asymmetry gradients.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider.getGradientCoefficients` in
+                interface :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
+        
+            Returns:
+                azimuthal asymmetry gradients or null if no gradients are available
         
         """
         ...
-    def getPressure(self) -> float:
+    @typing.overload
+    def getGradientCoefficients(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getGradientCoefficients_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getGradientCoefficients_1__T]) -> org.orekit.models.earth.troposphere.FieldAzimuthalGradientCoefficients[_getGradientCoefficients_1__T]:
         """
-            Returns the pressure at the station [hPa].
+            Get azimuthal asymmetry gradients.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider.getGradientCoefficients` in
+                interface :class:`~org.orekit.models.earth.troposphere.AzimuthalGradientProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
         
             Returns:
-                the pressure at the station [hPa]
+                azimuthal asymmetry gradients or null if no gradients are available
         
         
         """
         ...
-    def getTemperature(self) -> float:
+    _getWeatherParamerers_0__T = typing.TypeVar('_getWeatherParamerers_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getWeatherParamerers(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getWeatherParamerers_0__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getWeatherParamerers_0__T]) -> 'FieldPressureTemperatureHumidity'[_getWeatherParamerers_0__T]:
         """
-            Returns the temperature at the station [K].
+            Provide weather parameters.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider.getWeatherParamerers` in
+                interface :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
         
             Returns:
-                the temperature at the station [K]
+                weather parameters
         
         
         """
         ...
-    def getWaterVaporPressure(self) -> float:
+    @typing.overload
+    def getWeatherParamerers(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> 'PressureTemperatureHumidity':
         """
-            Returns the water vapor pressure at the station [hPa].
+            Provide weather parameters.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider.getWeatherParamerers` in
+                interface :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
         
             Returns:
-                the water vapor pressure at the station [hPa]
+                weather parameters
+        
+        """
+        ...
+
+class ConstantPressureTemperatureHumidityProvider(PressureTemperatureHumidityProvider):
+    """
+    public class ConstantPressureTemperatureHumidityProvider extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
+    
+        Provider for constant weather parameters.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, pressureTemperatureHumidity: 'PressureTemperatureHumidity'): ...
+    _getWeatherParamerers_0__T = typing.TypeVar('_getWeatherParamerers_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getWeatherParamerers(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getWeatherParamerers_0__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getWeatherParamerers_0__T]) -> 'FieldPressureTemperatureHumidity'[_getWeatherParamerers_0__T]:
+        """
+            Provide weather parameters.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider.getWeatherParamerers` in
+                interface :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
+        
+            Parameters:
+                location (:class:`~org.orekit.bodies.FieldGeodeticPoint`<T> location): location at which parameters are requested
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which parameters are requested
+        
+            Returns:
+                weather parameters
         
         
         """
         ...
-    def weatherParameters(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+    @typing.overload
+    def getWeatherParamerers(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> 'PressureTemperatureHumidity':
         """
-            Description copied from interface: :meth:`~org.orekit.models.earth.weather.WeatherModel.weatherParameters`
-            Calculates the weather parameters of the model. In order to obtain the correct values of the parameters this method has
-            to be call just after the construction of the model.
+            Provide weather parameters.
         
             Specified by:
-                :meth:`~org.orekit.models.earth.weather.WeatherModel.weatherParameters` in
-                interface :class:`~org.orekit.models.earth.weather.WeatherModel`
+                :meth:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider.getWeatherParamerers` in
+                interface :class:`~org.orekit.models.earth.weather.PressureTemperatureHumidityProvider`
         
             Parameters:
-                stationHeight (double): the height of the station in m
-                currentDate (:class:`~org.orekit.time.AbsoluteDate`): current date
+                location (:class:`~org.orekit.bodies.GeodeticPoint`): location at which parameters are requested
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which parameters are requested
         
+            Returns:
+                weather parameters
         
         """
         ...
 
-class GlobalPressureTemperatureModel(WeatherModel):
+_FieldPressureTemperatureHumidity__T = typing.TypeVar('_FieldPressureTemperatureHumidity__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldPressureTemperatureHumidity(FieldPressureTemperature[_FieldPressureTemperatureHumidity__T], typing.Generic[_FieldPressureTemperatureHumidity__T]):
     """
-    public class GlobalPressureTemperatureModel extends :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.weather.WeatherModel`
+    public class FieldPressureTemperatureHumidity<T extends :class:`~org.orekit.models.earth.weather.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.models.earth.weather.FieldPressureTemperature`<T>
     
+        Container for pressure, temperature, and humidity.
+    
+        Since:
+            12.1
+    """
+    @typing.overload
+    def __init__(self, t: _FieldPressureTemperatureHumidity__T, t2: _FieldPressureTemperatureHumidity__T, t3: _FieldPressureTemperatureHumidity__T, t4: _FieldPressureTemperatureHumidity__T, t5: _FieldPressureTemperatureHumidity__T, t6: _FieldPressureTemperatureHumidity__T): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldPressureTemperatureHumidity__T], pressureTemperatureHumidity: 'PressureTemperatureHumidity'): ...
+    def getLambda(self) -> _FieldPressureTemperatureHumidity__T:
+        """
+            Get water vapor decrease factor.
+        
+            Returns:
+                water vapor decrease factor
+        
+        
+        """
+        ...
+    def getTm(self) -> _FieldPressureTemperatureHumidity__T:
+        """
+            Get mean temperature weighted with water vapor pressure.
+        
+            Returns:
+                mean temperature weighted with water vapor pressure
+        
+        
+        """
+        ...
+    def getWaterVaporPressure(self) -> _FieldPressureTemperatureHumidity__T:
+        """
+            Get humidity as water vapor pressure.
+        
+            Returns:
+                humidity as water vapor pressure (Pa)
+        
+        
+        """
+        ...
+
+class GlobalPressureTemperatureModel(GlobalPressureTemperature, WeatherModel):
+    """
+    :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class GlobalPressureTemperatureModel extends :class:`~org.orekit.models.earth.weather.GlobalPressureTemperature` implements :class:`~org.orekit.models.earth.weather.WeatherModel`
+    
+        Deprecated.
+        as of 12.1, replaced by :class:`~org.orekit.models.earth.weather.GlobalPressureTemperature`
         The Global Pressure and Temperature model. This model is an empirical model that provides the temperature and the
         pressure depending the latitude and the longitude of the station.
     
@@ -168,6 +552,7 @@ class GlobalPressureTemperatureModel(WeatherModel):
     def __init__(self, double: float, double2: float, frame: org.orekit.frames.Frame, dataContext: org.orekit.data.DataContext): ...
     def getPressure(self) -> float:
         """
+            Deprecated.
             Get the atmospheric pressure of the station depending its position.
         
             Returns:
@@ -178,6 +563,7 @@ class GlobalPressureTemperatureModel(WeatherModel):
         ...
     def getTemperature(self) -> float:
         """
+            Deprecated.
             Get the atmospheric temperature of the station depending its position.
         
             Returns:
@@ -188,6 +574,7 @@ class GlobalPressureTemperatureModel(WeatherModel):
         ...
     def weatherParameters(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
         """
+            Deprecated.
             Description copied from interface: :meth:`~org.orekit.models.earth.weather.WeatherModel.weatherParameters`
             Calculates the weather parameters of the model. In order to obtain the correct values of the parameters this method has
             to be call just after the construction of the model.
@@ -204,10 +591,227 @@ class GlobalPressureTemperatureModel(WeatherModel):
         """
         ...
 
+class PressureTemperatureHumidity(PressureTemperature):
+    """
+    public class PressureTemperatureHumidity extends :class:`~org.orekit.models.earth.weather.PressureTemperature`
+    
+        Container for pressure, temperature, and humidity.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float): ...
+    def getLambda(self) -> float:
+        """
+            Get water vapor decrease factor.
+        
+            Returns:
+                water vapor decrease factor
+        
+        
+        """
+        ...
+    def getTm(self) -> float:
+        """
+            Get mean temperature weighted with water vapor pressure.
+        
+            Returns:
+                mean temperature weighted with water vapor pressure
+        
+        
+        """
+        ...
+    def getWaterVaporPressure(self) -> float:
+        """
+            Get humidity as water vapor pressure.
+        
+            Returns:
+                humidity as water vapor pressure (Pa)
+        
+        
+        """
+        ...
+
+class GlobalPressureTemperature2(AbstractGlobalPressureTemperature):
+    """
+    public class GlobalPressureTemperature2 extends :class:`~org.orekit.models.earth.weather.AbstractGlobalPressureTemperature`
+    
+        The Global Pressure and Temperature 2 (GPT2) model.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, dataSource: org.orekit.data.DataSource, timeScale: org.orekit.time.TimeScale): ...
+
+class GlobalPressureTemperature2w(AbstractGlobalPressureTemperature):
+    """
+    public class GlobalPressureTemperature2w extends :class:`~org.orekit.models.earth.weather.AbstractGlobalPressureTemperature`
+    
+        The Global Pressure and Temperature 2w (GPT2w) model.
+    
+        This model adds humidity data to :class:`~org.orekit.models.earth.weather.GlobalPressureTemperature2`.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, dataSource: org.orekit.data.DataSource, timeScale: org.orekit.time.TimeScale): ...
+
+class GlobalPressureTemperature3(AbstractGlobalPressureTemperature):
+    """
+    public class GlobalPressureTemperature3 extends :class:`~org.orekit.models.earth.weather.AbstractGlobalPressureTemperature`
+    
+        The Global Pressure and Temperature 3 (GPT3) model.
+    
+        This model adds horizontal gradient data to :class:`~org.orekit.models.earth.weather.GlobalPressureTemperature2w`.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, dataSource: org.orekit.data.DataSource, timeScale: org.orekit.time.TimeScale): ...
+
+class GlobalPressureTemperature2Model(GlobalPressureTemperature2, WeatherModel):
+    """
+    :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class GlobalPressureTemperature2Model extends :class:`~org.orekit.models.earth.weather.GlobalPressureTemperature2` implements :class:`~org.orekit.models.earth.weather.WeatherModel`
+    
+        Deprecated.
+        The Global Pressure and Temperature 2 (GPT2) model. This model is an empirical model that provides the temperature, the
+        pressure and the water vapor pressure of a site depending its latitude and longitude. This model also provides the a
+        :sub:`h` and a :sub:`w` coefficients used for the :class:`~org.orekit.models.earth.troposphere.ViennaOneModel` model.
+    
+        The requisite coefficients for the computation of the weather parameters are provided by the Department of Geodesy and
+        Geoinformation of the Vienna University. They are based on an external grid file like "gpt2_1.grd" (1° x 1°) or
+        "gpt2_5.grd" (5° x 5°) available at: ` link <http://vmf.geo.tuwien.ac.at/codes/>`
+    
+        A bilinear interpolation is performed in order to obtained the correct values of the weather parameters.
+    
+        The format is always the same, with and example shown below for the pressure and the temperature.
+    
+        Example:
+    
+        .. code-block: java
+        
+         %  lat    lon   p:a0    A1   B1   A2   B2  T:a0    A1   B1   A2   B2
+           87.5    2.5 101421    21  409 -217 -122 259.2 -13.2 -6.1  2.6  0.3
+           87.5    7.5 101416    21  411 -213 -120 259.3 -13.1 -6.1  2.6  0.3
+           87.5   12.5 101411    22  413 -209 -118 259.3 -13.1 -6.1  2.6  0.3
+           87.5   17.5 101407    23  415 -205 -116 259.4 -13.0 -6.1  2.6  0.3
+           ...
+         
+    
+        Also see:
+            "K. Lagler, M. Schindelegger, J. Böhm, H. Krasna, T. Nilsson (2013), GPT2: empirical slant delay model for radio space
+            geodetic techniques. Geophys Res Lett 40(6):1069–1073. doi:10.1002/grl.50288"
+    """
+    DEFAULT_SUPPORTED_NAMES: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.models.earth.weather.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` DEFAULT_SUPPORTED_NAMES
+    
+        Deprecated.
+        Default supported files name pattern.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, geoid: org.orekit.models.earth.Geoid): ...
+    @typing.overload
+    def __init__(self, string: str, double: float, double2: float, geoid: org.orekit.models.earth.Geoid): ...
+    @typing.overload
+    def __init__(self, string: str, double: float, double2: float, geoid: org.orekit.models.earth.Geoid, dataProvidersManager: org.orekit.data.DataProvidersManager, timeScale: org.orekit.time.TimeScale): ...
+    _getA_1__T = typing.TypeVar('_getA_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getA(self) -> typing.MutableSequence[float]:
+        """
+            Deprecated.
+            Returns the a coefficients array.
+        
+              - double[0] = a :sub:`h`
+              - double[1] = a :sub:`w`
+        
+        
+            Returns:
+                the a coefficients array
+        
+        
+        """
+        ...
+    @typing.overload
+    def getA(self, fieldGeodeticPoint: org.orekit.bodies.FieldGeodeticPoint[_getA_1__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getA_1__T]) -> org.orekit.models.earth.troposphere.FieldViennaACoefficients[_getA_1__T]: ...
+    @typing.overload
+    def getA(self, geodeticPoint: org.orekit.bodies.GeodeticPoint, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.models.earth.troposphere.ViennaACoefficients: ...
+    def getPressure(self) -> float:
+        """
+            Deprecated.
+            Returns the pressure at the station [hPa].
+        
+            Returns:
+                the pressure at the station [hPa]
+        
+        
+        """
+        ...
+    def getTemperature(self) -> float:
+        """
+            Deprecated.
+            Returns the temperature at the station [K].
+        
+            Returns:
+                the temperature at the station [K]
+        
+        
+        """
+        ...
+    def getWaterVaporPressure(self) -> float:
+        """
+            Deprecated.
+            Returns the water vapor pressure at the station [hPa].
+        
+            Returns:
+                the water vapor pressure at the station [hPa]
+        
+        
+        """
+        ...
+    def weatherParameters(self, double: float, absoluteDate: org.orekit.time.AbsoluteDate) -> None:
+        """
+            Deprecated.
+            Description copied from interface: :meth:`~org.orekit.models.earth.weather.WeatherModel.weatherParameters`
+            Calculates the weather parameters of the model. In order to obtain the correct values of the parameters this method has
+            to be call just after the construction of the model.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.WeatherModel.weatherParameters` in
+                interface :class:`~org.orekit.models.earth.weather.WeatherModel`
+        
+            Parameters:
+                stationHeight (double): the height of the station in m
+                currentDate (:class:`~org.orekit.time.AbsoluteDate`): current date
+        
+        
+        """
+        ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.models.earth.weather")``.
 
+    AbstractGlobalPressureTemperature: typing.Type[AbstractGlobalPressureTemperature]
+    CellInterpolator: typing.Type[CellInterpolator]
+    ConstantPressureTemperatureHumidityProvider: typing.Type[ConstantPressureTemperatureHumidityProvider]
+    FieldCellInterpolator: typing.Type[FieldCellInterpolator]
+    FieldPressureTemperature: typing.Type[FieldPressureTemperature]
+    FieldPressureTemperatureHumidity: typing.Type[FieldPressureTemperatureHumidity]
+    GlobalPressureTemperature: typing.Type[GlobalPressureTemperature]
+    GlobalPressureTemperature2: typing.Type[GlobalPressureTemperature2]
     GlobalPressureTemperature2Model: typing.Type[GlobalPressureTemperature2Model]
+    GlobalPressureTemperature2w: typing.Type[GlobalPressureTemperature2w]
+    GlobalPressureTemperature3: typing.Type[GlobalPressureTemperature3]
     GlobalPressureTemperatureModel: typing.Type[GlobalPressureTemperatureModel]
+    HeightDependentPressureTemperatureHumidityConverter: typing.Type[HeightDependentPressureTemperatureHumidityConverter]
+    PressureTemperature: typing.Type[PressureTemperature]
+    PressureTemperatureHumidity: typing.Type[PressureTemperatureHumidity]
+    PressureTemperatureHumidityProvider: typing.Type[PressureTemperatureHumidityProvider]
     WeatherModel: typing.Type[WeatherModel]
+    water: org.orekit.models.earth.weather.water.__module_protocol__
diff --git a/org-stubs/orekit/models/earth/weather/water/__init__.pyi b/org-stubs/orekit/models/earth/weather/water/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..e76362cfd5b0ccd1baca4f4ccd82c6bb5cda0ba5
--- /dev/null
+++ b/org-stubs/orekit/models/earth/weather/water/__init__.pyi
@@ -0,0 +1,262 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import org.hipparchus
+import typing
+
+
+
+class WaterVaporPressureProvider:
+    """
+    public interface WaterVaporPressureProvider
+    
+        Interface for converting between relative humidity and water vapor pressure.
+    
+        Since:
+            12.1
+    """
+    _relativeHumidity_1__T = typing.TypeVar('_relativeHumidity_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def relativeHumidity(self, double: float, double2: float, double3: float) -> float:
+        """
+            Compute relative humidity.
+        
+            Parameters:
+                p (double): pressure (Pa)
+                t (double): temperature (Kelvin)
+                e (double): water vapor pressure (Pa)
+        
+            Returns:
+                relative humidity, as a ratio (50% → 0.5)
+        
+        """
+        ...
+    @typing.overload
+    def relativeHumidity(self, t: _relativeHumidity_1__T, t2: _relativeHumidity_1__T, t3: _relativeHumidity_1__T) -> _relativeHumidity_1__T:
+        """
+            Compute relative humidity.
+        
+            Parameters:
+                p (T): pressure (Pa)
+                t (T): temperature (Kelvin)
+                e (T): water vapor pressure (Pa)
+        
+            Returns:
+                relative humidity, as a ratio (50% → 0.5)
+        
+        
+        """
+        ...
+    _waterVaporPressure_1__T = typing.TypeVar('_waterVaporPressure_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def waterVaporPressure(self, double: float, double2: float, double3: float) -> float:
+        """
+            Compute water vapor pressure.
+        
+            Parameters:
+                p (double): pressure (Pa)
+                t (double): temperature (Kelvin)
+                rh (double): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        """
+        ...
+    @typing.overload
+    def waterVaporPressure(self, t: _waterVaporPressure_1__T, t2: _waterVaporPressure_1__T, t3: _waterVaporPressure_1__T) -> _waterVaporPressure_1__T:
+        """
+            Compute water vapor pressure.
+        
+            Parameters:
+                p (T): pressure (Pa)
+                t (T): temperature (Kelvin)
+                rh (T): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        
+        """
+        ...
+
+class CIPM2007(WaterVaporPressureProvider):
+    """
+    public class CIPM2007 extends :class:`~org.orekit.models.earth.weather.water.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+    
+        Official model CIPM-2007 (identical to CIPM-1981/91) from Comité International des Poids et Mesures.
+    
+        This water vapor model is the one from Giacomo and Davis as indicated in IERS TN 32, chap. 9.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.models.earth.weather.water.https:.www.nist.gov.system.files.documents.calibrations.CIPM`
+    """
+    def __init__(self): ...
+    _waterVaporPressure_1__T = typing.TypeVar('_waterVaporPressure_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def waterVaporPressure(self, double: float, double2: float, double3: float) -> float:
+        """
+            Compute water vapor pressure.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider.waterVaporPressure` in
+                interface :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+        
+            Parameters:
+                p (double): pressure (Pa)
+                t (double): temperature (Kelvin)
+                rh (double): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        """
+        ...
+    @typing.overload
+    def waterVaporPressure(self, t: _waterVaporPressure_1__T, t2: _waterVaporPressure_1__T, t3: _waterVaporPressure_1__T) -> _waterVaporPressure_1__T:
+        """
+            Compute water vapor pressure.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider.waterVaporPressure` in
+                interface :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+        
+            Parameters:
+                p (T): pressure (Pa)
+                t (T): temperature (Kelvin)
+                rh (T): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        
+        """
+        ...
+
+class NbsNrcSteamTable(WaterVaporPressureProvider):
+    """
+    public class NbsNrcSteamTable extends :class:`~org.orekit.models.earth.weather.water.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+    
+        Steam table from US National Bureau of Standards (NBS) and National Research Council (NRC) of Canada.
+    
+        The table is an extract from table 1 in
+        :class:`~org.orekit.models.earth.weather.water.https:.www.thermopedia.com.content.1150`, using only the pressure column
+        and truncated to 99°C (the original table goes up to 373.976°C). According to
+        :class:`~org.orekit.models.earth.weather.water.https:.www.thermopedia.com.access`, this data is available for free.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.models.earth.weather.water.https:.dx.doi.org.10.1615.AtoZ.s.steam_tables`
+    """
+    def __init__(self): ...
+    _waterVaporPressure_1__T = typing.TypeVar('_waterVaporPressure_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def waterVaporPressure(self, double: float, double2: float, double3: float) -> float:
+        """
+            Compute water vapor pressure.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider.waterVaporPressure` in
+                interface :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+        
+            Parameters:
+                p (double): pressure (Pa)
+                t (double): temperature (Kelvin)
+                rh (double): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        """
+        ...
+    @typing.overload
+    def waterVaporPressure(self, t: _waterVaporPressure_1__T, t2: _waterVaporPressure_1__T, t3: _waterVaporPressure_1__T) -> _waterVaporPressure_1__T:
+        """
+            Compute water vapor pressure.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider.waterVaporPressure` in
+                interface :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+        
+            Parameters:
+                p (T): pressure (Pa)
+                t (T): temperature (Kelvin)
+                rh (T): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        
+        """
+        ...
+
+class Wang1988(WaterVaporPressureProvider):
+    """
+    public class Wang1988 extends :class:`~org.orekit.models.earth.weather.water.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+    
+        Conversion polynomial from "The Principle of the GPS Precise Positioning System", Wang et al, 1988.
+    
+        This corresponds to equation 5.96 in Guochang Xu, GPS - Theory, Algorithms and Applications, Springer, 2007.
+    
+        Since:
+            12.1
+    """
+    def __init__(self): ...
+    _waterVaporPressure_1__T = typing.TypeVar('_waterVaporPressure_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def waterVaporPressure(self, double: float, double2: float, double3: float) -> float:
+        """
+            Compute water vapor pressure.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider.waterVaporPressure` in
+                interface :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+        
+            Parameters:
+                p (double): pressure (Pa)
+                t (double): temperature (Kelvin)
+                rh (double): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        """
+        ...
+    @typing.overload
+    def waterVaporPressure(self, t: _waterVaporPressure_1__T, t2: _waterVaporPressure_1__T, t3: _waterVaporPressure_1__T) -> _waterVaporPressure_1__T:
+        """
+            Compute water vapor pressure.
+        
+            Specified by:
+                :meth:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider.waterVaporPressure` in
+                interface :class:`~org.orekit.models.earth.weather.water.WaterVaporPressureProvider`
+        
+            Parameters:
+                p (T): pressure (Pa)
+                t (T): temperature (Kelvin)
+                rh (T): relative humidity, as a ratio (50% → 0.5)
+        
+            Returns:
+                water vapor pressure (Pa)
+        
+        
+        """
+        ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.orekit.models.earth.weather.water")``.
+
+    CIPM2007: typing.Type[CIPM2007]
+    NbsNrcSteamTable: typing.Type[NbsNrcSteamTable]
+    Wang1988: typing.Type[Wang1988]
+    WaterVaporPressureProvider: typing.Type[WaterVaporPressureProvider]
diff --git a/org-stubs/orekit/orbits/__init__.pyi b/org-stubs/orekit/orbits/__init__.pyi
index ecbf3311fe91ea689676c77dcacd32af4747aa55..74e40c26045175cc1e72575910ee9edbc20a95fd 100644
--- a/org-stubs/orekit/orbits/__init__.pyi
+++ b/org-stubs/orekit/orbits/__init__.pyi
@@ -122,6 +122,457 @@ class CR3BPDifferentialCorrection:
         """
         ...
 
+class CircularLatitudeArgumentUtility:
+    """
+    public class CircularLatitudeArgumentUtility extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Utility methods for converting between different latitude arguments used by :class:`~org.orekit.orbits.CircularOrbit`.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.orbits.CircularOrbit`
+    """
+    @staticmethod
+    def eccentricToMean(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the mean latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of circular eccentricity vector
+                ey (double): e sin(ω), second component of circular eccentricity vector
+                alphaE (double): = E + ω mean latitude argument (rad)
+        
+            Returns:
+                the mean latitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def eccentricToTrue(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the true latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of circular eccentricity vector
+                ey (double): e sin(ω), second component of circular eccentricity vector
+                alphaE (double): = E + ω eccentric latitude argument (rad)
+        
+            Returns:
+                the true latitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def meanToEccentric(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the eccentric latitude argument from the mean latitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of circular eccentricity vector
+                ey (double): e sin(ω), second component of circular eccentricity vector
+                alphaM (double): = M + ω mean latitude argument (rad)
+        
+            Returns:
+                the eccentric latitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def meanToTrue(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the true latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of circular eccentricity vector
+                ey (double): e sin(ω), second component of circular eccentricity vector
+                alphaM (double): = M + ω mean latitude argument (rad)
+        
+            Returns:
+                the true latitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def trueToEccentric(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the eccentric latitude argument from the true latitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of circular eccentricity vector
+                ey (double): e sin(ω), second component of circular eccentricity vector
+                alphaV (double): = V + ω true latitude argument (rad)
+        
+            Returns:
+                the eccentric latitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def trueToMean(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the mean latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of circular eccentricity vector
+                ey (double): e sin(ω), second component of circular eccentricity vector
+                alphaV (double): = V + ω true latitude argument (rad)
+        
+            Returns:
+                the mean latitude argument.
+        
+        
+        """
+        ...
+
+class EquinoctialLongitudeArgumentUtility:
+    """
+    public class EquinoctialLongitudeArgumentUtility extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Utility methods for converting between different longitude arguments used by
+        :class:`~org.orekit.orbits.EquinoctialOrbit`.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.orbits.EquinoctialOrbit`
+    """
+    @staticmethod
+    def eccentricToMean(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the mean longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of eccentricity vector
+                ey (double): e sin(ω), second component of eccentricity vector
+                lE (double): = E + ω + Ω mean longitude argument (rad)
+        
+            Returns:
+                the mean longitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def eccentricToTrue(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the true longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of eccentricity vector
+                ey (double): e sin(ω), second component of eccentricity vector
+                lE (double): = E + ω + Ω eccentric longitude argument (rad)
+        
+            Returns:
+                the true longitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def meanToEccentric(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the eccentric longitude argument from the mean longitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of eccentricity vector
+                ey (double): e sin(ω), second component of eccentricity vector
+                lM (double): = M + ω + Ω mean longitude argument (rad)
+        
+            Returns:
+                the eccentric longitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def meanToTrue(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the true longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of eccentricity vector
+                ey (double): e sin(ω), second component of eccentricity vector
+                lM (double): = M + ω + Ω mean longitude argument (rad)
+        
+            Returns:
+                the true longitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def trueToEccentric(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the eccentric longitude argument from the true longitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of eccentricity vector
+                ey (double): e sin(ω), second component of eccentricity vector
+                lV (double): = V + ω + Ω true longitude argument (rad)
+        
+            Returns:
+                the eccentric longitude argument.
+        
+        
+        """
+        ...
+    @staticmethod
+    def trueToMean(double: float, double2: float, double3: float) -> float:
+        """
+            Computes the mean longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (double): e cos(ω), first component of eccentricity vector
+                ey (double): e sin(ω), second component of eccentricity vector
+                lV (double): = V + ω + Ω true longitude argument (rad)
+        
+            Returns:
+                the mean longitude argument.
+        
+        
+        """
+        ...
+
+class FieldCircularLatitudeArgumentUtility:
+    """
+    public class FieldCircularLatitudeArgumentUtility extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Utility methods for converting between different latitude arguments used by
+        :class:`~org.orekit.orbits.FieldCircularOrbit`.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.orbits.FieldCircularOrbit`
+    """
+    _eccentricToMean__T = typing.TypeVar('_eccentricToMean__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def eccentricToMean(t: _eccentricToMean__T, t2: _eccentricToMean__T, t3: _eccentricToMean__T) -> _eccentricToMean__T:
+        """
+            Computes the mean latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of circular eccentricity vector
+                ey (T): e sin(ω), second component of circular eccentricity vector
+                alphaE (T): = E + ω eccentric latitude argument (rad)
+        
+            Returns:
+                the mean latitude argument.
+        
+        
+        """
+        ...
+    _eccentricToTrue__T = typing.TypeVar('_eccentricToTrue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def eccentricToTrue(t: _eccentricToTrue__T, t2: _eccentricToTrue__T, t3: _eccentricToTrue__T) -> _eccentricToTrue__T:
+        """
+            Computes the true latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of circular eccentricity vector
+                ey (T): e sin(ω), second component of circular eccentricity vector
+                alphaE (T): = E + ω eccentric latitude argument (rad)
+        
+            Returns:
+                the true latitude argument.
+        
+        
+        """
+        ...
+    _meanToEccentric__T = typing.TypeVar('_meanToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def meanToEccentric(t: _meanToEccentric__T, t2: _meanToEccentric__T, t3: _meanToEccentric__T) -> _meanToEccentric__T:
+        """
+            Computes the eccentric latitude argument from the mean latitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of circular eccentricity vector
+                ey (T): e sin(ω), second component of circular eccentricity vector
+                alphaM (T): = M + ω mean latitude argument (rad)
+        
+            Returns:
+                the eccentric latitude argument.
+        
+        
+        """
+        ...
+    _meanToTrue__T = typing.TypeVar('_meanToTrue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def meanToTrue(t: _meanToTrue__T, t2: _meanToTrue__T, t3: _meanToTrue__T) -> _meanToTrue__T:
+        """
+            Computes the true latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of circular eccentricity vector
+                ey (T): e sin(ω), second component of circular eccentricity vector
+                alphaM (T): = M + ω mean latitude argument (rad)
+        
+            Returns:
+                the true latitude argument.
+        
+        
+        """
+        ...
+    _trueToEccentric__T = typing.TypeVar('_trueToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def trueToEccentric(t: _trueToEccentric__T, t2: _trueToEccentric__T, t3: _trueToEccentric__T) -> _trueToEccentric__T:
+        """
+            Computes the eccentric latitude argument from the true latitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of circular eccentricity vector
+                ey (T): e sin(ω), second component of circular eccentricity vector
+                alphaV (T): = v + ω true latitude argument (rad)
+        
+            Returns:
+                the eccentric latitude argument.
+        
+        
+        """
+        ...
+    _trueToMean__T = typing.TypeVar('_trueToMean__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def trueToMean(t: _trueToMean__T, t2: _trueToMean__T, t3: _trueToMean__T) -> _trueToMean__T:
+        """
+            Computes the mean latitude argument from the eccentric latitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of circular eccentricity vector
+                ey (T): e sin(ω), second component of circular eccentricity vector
+                alphaV (T): = V + ω true latitude argument (rad)
+        
+            Returns:
+                the mean latitude argument.
+        
+        
+        """
+        ...
+
+class FieldEquinoctialLongitudeArgumentUtility:
+    """
+    public class FieldEquinoctialLongitudeArgumentUtility extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Utility methods for converting between different longitude arguments used by
+        :class:`~org.orekit.orbits.FieldEquinoctialOrbit`.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.orbits.FieldEquinoctialOrbit`
+    """
+    _eccentricToMean__T = typing.TypeVar('_eccentricToMean__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def eccentricToMean(t: _eccentricToMean__T, t2: _eccentricToMean__T, t3: _eccentricToMean__T) -> _eccentricToMean__T:
+        """
+            Computes the mean longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of eccentricity vector
+                ey (T): e sin(ω), second component of eccentricity vector
+                lE (T): = E + ω + Ω mean longitude argument (rad)
+        
+            Returns:
+                the mean longitude argument.
+        
+        
+        """
+        ...
+    _eccentricToTrue__T = typing.TypeVar('_eccentricToTrue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def eccentricToTrue(t: _eccentricToTrue__T, t2: _eccentricToTrue__T, t3: _eccentricToTrue__T) -> _eccentricToTrue__T:
+        """
+            Computes the true longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of eccentricity vector
+                ey (T): e sin(ω), second component of eccentricity vector
+                lE (T): = E + ω + Ω eccentric longitude argument (rad)
+        
+            Returns:
+                the true longitude argument.
+        
+        
+        """
+        ...
+    _meanToEccentric__T = typing.TypeVar('_meanToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def meanToEccentric(t: _meanToEccentric__T, t2: _meanToEccentric__T, t3: _meanToEccentric__T) -> _meanToEccentric__T:
+        """
+            Computes the eccentric longitude argument from the mean longitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of eccentricity vector
+                ey (T): e sin(ω), second component of eccentricity vector
+                lM (T): = M + ω + Ω mean longitude argument (rad)
+        
+            Returns:
+                the eccentric longitude argument.
+        
+        
+        """
+        ...
+    _meanToTrue__T = typing.TypeVar('_meanToTrue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def meanToTrue(t: _meanToTrue__T, t2: _meanToTrue__T, t3: _meanToTrue__T) -> _meanToTrue__T:
+        """
+            Computes the true longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of eccentricity vector
+                ey (T): e sin(ω), second component of eccentricity vector
+                lM (T): = M + ω + Ω mean longitude argument (rad)
+        
+            Returns:
+                the true longitude argument.
+        
+        
+        """
+        ...
+    _trueToEccentric__T = typing.TypeVar('_trueToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def trueToEccentric(t: _trueToEccentric__T, t2: _trueToEccentric__T, t3: _trueToEccentric__T) -> _trueToEccentric__T:
+        """
+            Computes the eccentric longitude argument from the true longitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of eccentricity vector
+                ey (T): e sin(ω), second component of eccentricity vector
+                lV (T): = V + ω + Ω true longitude argument (rad)
+        
+            Returns:
+                the eccentric longitude argument.
+        
+        
+        """
+        ...
+    _trueToMean__T = typing.TypeVar('_trueToMean__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def trueToMean(t: _trueToMean__T, t2: _trueToMean__T, t3: _trueToMean__T) -> _trueToMean__T:
+        """
+            Computes the mean longitude argument from the eccentric longitude argument.
+        
+            Parameters:
+                ex (T): e cos(ω), first component of eccentricity vector
+                ey (T): e sin(ω), second component of eccentricity vector
+                lV (T): = V + ω + Ω true longitude argument (rad)
+        
+            Returns:
+                the mean longitude argument.
+        
+        
+        """
+        ...
+
 class FieldKeplerianAnomalyUtility:
     """
     public class FieldKeplerianAnomalyUtility extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -678,11 +1129,11 @@ class FieldOrbit(org.orekit.utils.FieldPVCoordinatesProvider[_FieldOrbit__T], or
     @typing.overload
     def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldOrbit__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldOrbit__T]: ...
     @typing.overload
-    def getPosition(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldOrbit__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldOrbit__T]: ...
-    @typing.overload
     def getPosition(self) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldOrbit__T]: ...
     @typing.overload
     def getPosition(self, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldOrbit__T]: ...
+    @typing.overload
+    def getPosition(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldOrbit__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldOrbit__T]: ...
     def getType(self) -> 'OrbitType':
         """
             Get the orbit type.
@@ -935,6 +1386,60 @@ class KeplerianAnomalyUtility:
         """
         ...
 
+class KeplerianMotionCartesianUtility:
+    """
+    public class KeplerianMotionCartesianUtility extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Utility class to predict position and velocity under Keplerian motion, using lightweight routines based on Cartesian
+        coordinates. Computations do not require a reference frame or an epoch.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.analytical.KeplerianPropagator`,
+            :class:`~org.orekit.propagation.analytical.FieldKeplerianPropagator`, :class:`~org.orekit.orbits.CartesianOrbit`,
+            :class:`~org.orekit.orbits.FieldCartesianOrbit`
+    """
+    _predictPositionVelocity_0__T = typing.TypeVar('_predictPositionVelocity_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def predictPositionVelocity(t: _predictPositionVelocity_0__T, fieldVector3D: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_predictPositionVelocity_0__T], fieldVector3D2: org.hipparchus.geometry.euclidean.threed.FieldVector3D[_predictPositionVelocity_0__T], t2: _predictPositionVelocity_0__T) -> org.orekit.utils.FieldPVCoordinates[_predictPositionVelocity_0__T]:
+        """
+            Method to propagate position and velocity according to Keplerian dynamics. For long time of flights, it is preferable to
+            use :class:`~org.orekit.propagation.analytical.KeplerianPropagator`.
+        
+            Parameters:
+                dt (T): time of flight
+                position (:class:`~org.orekit.orbits.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> position): initial position vector
+                velocity (:class:`~org.orekit.orbits.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.FieldVector3D?is`<T> velocity): initial velocity vector
+                mu (T): central body gravitational parameter
+        
+            Returns:
+                predicted position-velocity
+        
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def predictPositionVelocity(double: float, vector3D: org.hipparchus.geometry.euclidean.threed.Vector3D, vector3D2: org.hipparchus.geometry.euclidean.threed.Vector3D, double2: float) -> org.orekit.utils.PVCoordinates:
+        """
+            Method to propagate position and velocity according to Keplerian dynamics. For long time of flights, it is preferable to
+            use :class:`~org.orekit.propagation.analytical.KeplerianPropagator`.
+        
+            Parameters:
+                dt (double): time of flight
+                position (:class:`~org.orekit.orbits.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): initial position vector
+                velocity (:class:`~org.orekit.orbits.https:.www.hipparchus.org.apidocs.org.hipparchus.geometry.euclidean.threed.Vector3D?is`): initial velocity vector
+                mu (double): central body gravitational parameter
+        
+            Returns:
+                predicted position-velocity
+        
+        """
+        ...
+
 class LibrationOrbit:
     """
     public abstract class LibrationOrbit extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
@@ -951,8 +1456,7 @@ class LibrationOrbit:
         """
             Apply differential correction.
         
-            This will update :meth:`~org.orekit.orbits.LibrationOrbit.initialPV` and
-            :meth:`~org.orekit.orbits.LibrationOrbit.orbitalPeriod` parameters.
+            This will update :code:`initialPV` and :code:`orbitalPeriod` parameters.
         
         """
         ...
@@ -1576,8 +2080,6 @@ class Orbit(org.orekit.time.TimeStamped, org.orekit.time.TimeShiftable['Orbit'],
     @typing.overload
     def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates: ...
     @typing.overload
-    def getPosition(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D: ...
-    @typing.overload
     def getPosition(self) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
             Get the position in definition frame.
@@ -1597,6 +2099,19 @@ class Orbit(org.orekit.time.TimeStamped, org.orekit.time.TimeShiftable['Orbit'],
     @typing.overload
     def getPosition(self, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
         """
+            Get the position of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPosition` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                otherDate (:class:`~org.orekit.time.AbsoluteDate`): current date
+                otherFrame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                position of the body (m and)
+        
             Get the position in a specified frame.
         
             Parameters:
@@ -1613,6 +2128,8 @@ class Orbit(org.orekit.time.TimeStamped, org.orekit.time.TimeShiftable['Orbit'],
         
         """
         ...
+    @typing.overload
+    def getPosition(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D: ...
     def getType(self) -> 'OrbitType':
         """
             Get the orbit type.
@@ -2309,53 +2826,194 @@ class RichardsonExpansion:
                 phi (double): Orbit phase, rad
         
             Returns:
-                firstGuess PVCoordinates of the first guess
+                firstGuess PVCoordinates of the first guess
+        
+        
+        """
+        ...
+    def getCr3bpSystem(self) -> org.orekit.bodies.CR3BPSystem:
+        """
+            Get the considered CR3BP system.
+        
+            Returns:
+                CRR3BP system
+        
+        
+        """
+        ...
+    def getHaloOrbitalPeriod(self, double: float) -> float:
+        """
+            Return the orbital period of the Halo Orbit.
+        
+            Parameters:
+                azr (double): z-axis Amplitude of the required Halo Orbit, meters
+        
+            Returns:
+                the orbitalPeriod
+        
+        
+        """
+        ...
+    def getLagrangianPoint(self) -> org.orekit.utils.LagrangianPoints:
+        """
+            Get the considered lagrangian point.
+        
+            Returns:
+                lagrangian point
+        
+        
+        """
+        ...
+    def getLyapunovOrbitalPeriod(self, double: float) -> float:
+        """
+            Return the orbital period of the Halo Orbit.
+        
+            Parameters:
+                axr (double): x-axis Amplitude of the required Lyapunov Orbit, meters
+        
+            Returns:
+                the orbitalPeriod
+        
+        
+        """
+        ...
+
+class WalkerConstellation:
+    """
+    public class WalkerConstellation extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Builder for orbits of satellites forming a Walker constellation.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, int: int, int2: int, int3: int): ...
+    _buildReferenceSlot__O = typing.TypeVar('_buildReferenceSlot__O', bound=Orbit)  # <O>
+    def buildReferenceSlot(self, o: _buildReferenceSlot__O) -> 'WalkerConstellationSlot'[_buildReferenceSlot__O]:
+        """
+            Create the reference slot, which is satellite 0 in plane 0.
+        
+            Parameters:
+                referenceOrbit (O): orbit of the reference satellite, in :meth:`~org.orekit.orbits.WalkerConstellationSlot.getPlane` 0 and at
+                    :meth:`~org.orekit.orbits.WalkerConstellationSlot.getSatellite` satellite index} 0
+        
+            Returns:
+                build reference slot
+        
+            Also see:
+                :meth:`~org.orekit.orbits.WalkerConstellation.buildRegularSlots`,
+                :meth:`~org.orekit.orbits.WalkerConstellation.buildSlot`
+        
+        
+        """
+        ...
+    _buildRegularSlots__O = typing.TypeVar('_buildRegularSlots__O', bound=Orbit)  # <O>
+    def buildRegularSlots(self, o: _buildRegularSlots__O) -> java.util.List[java.util.List['WalkerConstellationSlot'[_buildRegularSlots__O]]]: ...
+    _buildSlot__O = typing.TypeVar('_buildSlot__O', bound=Orbit)  # <O>
+    def buildSlot(self, walkerConstellationSlot: 'WalkerConstellationSlot'[_buildSlot__O], int: int, double: float) -> 'WalkerConstellationSlot'[_buildSlot__O]:
+        """
+            Create one offset slot from an already existing slot.
+        
+            Parameters:
+                existingSlot (:class:`~org.orekit.orbits.WalkerConstellationSlot`<O> existingSlot): existing slot (may be the :meth:`~org.orekit.orbits.WalkerConstellation.buildReferenceSlot` or not)
+                plane (int): plane index of the new slot (may be non-integer for in-orbit spare satellites)
+                satellite (double): new slot satellite index in plane (may be non-integer if needed)
+        
+            Returns:
+                built slot
+        
+            Also see:
+                :meth:`~org.orekit.orbits.WalkerConstellation.buildRegularSlots`,
+                :meth:`~org.orekit.orbits.WalkerConstellation.buildReferenceSlot`
+        
+        
+        """
+        ...
+    def getF(self) -> int:
+        """
+            Get the phasing parameter.
+        
+            Returns:
+                phasing parameter
+        
+        
+        """
+        ...
+    def getP(self) -> int:
+        """
+            Get the number of orbital planes.
+        
+            Returns:
+                number of orbital planes
+        
+        
+        """
+        ...
+    def getT(self) -> int:
+        """
+            Get the total number of satellites.
+        
+            Returns:
+                total number of satellites
         
         
         """
         ...
-    def getCr3bpSystem(self) -> org.orekit.bodies.CR3BPSystem:
+
+_WalkerConstellationSlot__O = typing.TypeVar('_WalkerConstellationSlot__O', bound=Orbit)  # <O>
+class WalkerConstellationSlot(typing.Generic[_WalkerConstellationSlot__O]):
+    """
+    public class WalkerConstellationSlot<O extends :class:`~org.orekit.orbits.Orbit`> extends :class:`~org.orekit.orbits.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Container for one satellite slot in a :class:`~org.orekit.orbits.WalkerConstellation`.
+    
+        The :meth:`~org.orekit.orbits.WalkerConstellationSlot.getSatellite` satellite index for regular satellites is an
+        integer, but it is allowed to have non-integer indices to create slots for in-orbit spare satellites between the regular
+        satellites. As an example, one can consider a 24/3/1 Walker constellation with 8 operational satellites in each of the 3
+        planes at satellites indices 0, 1, 2, 3, 4, 5, 6 and 7, and put for example 2 additional spares in each plane (hence
+        having a total of 30 satellites), by affecting them to intermediate slots 0.5 and 4.5.
+    
+        Since:
+            12.1
+    """
+    def getConstellation(self) -> WalkerConstellation:
         """
-            Get the considered CR3BP system.
+            Get the constellation.
         
             Returns:
-                CRR3BP system
+                constellation
         
         
         """
         ...
-    def getHaloOrbitalPeriod(self, double: float) -> float:
+    def getOrbit(self) -> _WalkerConstellationSlot__O:
         """
-            Return the orbital period of the Halo Orbit.
-        
-            Parameters:
-                azr (double): z-axis Amplitude of the required Halo Orbit, meters
+            Get the orbit.
         
             Returns:
-                the orbitalPeriod
+                orbit
         
         
         """
         ...
-    def getLagrangianPoint(self) -> org.orekit.utils.LagrangianPoints:
+    def getPlane(self) -> int:
         """
-            Get the considered lagrangian point.
+            Get the plane index.
         
             Returns:
-                lagrangian point
+                plane index
         
         
         """
         ...
-    def getLyapunovOrbitalPeriod(self, double: float) -> float:
+    def getSatellite(self) -> float:
         """
-            Return the orbital period of the Halo Orbit.
+            Get the satellite index in plane.
         
-            Parameters:
-                axr (double): x-axis Amplitude of the required Lyapunov Orbit, meters
+            Not that the index may be non-integer, for example to deal with in-orbit spare satellites
         
             Returns:
-                the orbitalPeriod
+                satellite index in plane
         
         
         """
@@ -2843,8 +3501,12 @@ class CircularOrbit(Orbit, PositionAngleBased):
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float, double12: float, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double13: float): ...
     @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float, double12: float, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double13: float): ...
+    @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double7: float): ...
     @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double7: float): ...
+    @typing.overload
     def __init__(self, orbit: Orbit): ...
     @typing.overload
     def __init__(self, pVCoordinates: org.orekit.utils.PVCoordinates, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double: float): ...
@@ -2870,37 +3532,9 @@ class CircularOrbit(Orbit, PositionAngleBased):
         """
         ...
     @staticmethod
-    def eccentricToMean(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the mean latitude argument from the eccentric latitude argument.
-        
-            Parameters:
-                alphaE (double): = E + ω mean latitude argument (rad)
-                ex (double): e cos(ω), first component of circular eccentricity vector
-                ey (double): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the mean latitude argument.
-        
-        
-        """
-        ...
+    def eccentricToMean(double: float, double2: float, double3: float) -> float: ...
     @staticmethod
-    def eccentricToTrue(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the true latitude argument from the eccentric latitude argument.
-        
-            Parameters:
-                alphaE (double): = E + ω eccentric latitude argument (rad)
-                ex (double): e cos(ω), first component of circular eccentricity vector
-                ey (double): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the true latitude argument.
-        
-        
-        """
-        ...
+    def eccentricToTrue(double: float, double2: float, double3: float) -> float: ...
     def getA(self) -> float:
         """
             Get the semi-major axis.
@@ -3445,21 +4079,7 @@ class CircularOrbit(Orbit, PositionAngleBased):
         """
         ...
     @staticmethod
-    def meanToEccentric(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the eccentric latitude argument from the mean latitude argument.
-        
-            Parameters:
-                alphaM (double): = M + ω mean latitude argument (rad)
-                ex (double): e cos(ω), first component of circular eccentricity vector
-                ey (double): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the eccentric latitude argument.
-        
-        
-        """
-        ...
+    def meanToEccentric(double: float, double2: float, double3: float) -> float: ...
     def removeRates(self) -> 'CircularOrbit':
         """
             Create a new instance such that :meth:`~org.orekit.orbits.PositionAngleBased.hasRates` is false.
@@ -3512,21 +4132,7 @@ class CircularOrbit(Orbit, PositionAngleBased):
         """
         ...
     @staticmethod
-    def trueToEccentric(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the eccentric latitude argument from the true latitude argument.
-        
-            Parameters:
-                alphaV (double): = V + ω true latitude argument (rad)
-                ex (double): e cos(ω), first component of circular eccentricity vector
-                ey (double): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the eccentric latitude argument.
-        
-        
-        """
-        ...
+    def trueToEccentric(double: float, double2: float, double3: float) -> float: ...
 
 class EquinoctialOrbit(Orbit, PositionAngleBased):
     """
@@ -3550,7 +4156,7 @@ class EquinoctialOrbit(Orbit, PositionAngleBased):
         The conversion equations from and to Keplerian elements given above hold only when both sides are unambiguously defined,
         i.e. when orbit is neither equatorial nor circular. When orbit is either equatorial or circular, the equinoctial
         parameters are still unambiguously defined whereas some Keplerian elements (more precisely ω and Ω) become ambiguous.
-        For this reason, equinoctial parameters are the recommended way to represent orbits. Note however than * the present
+        For this reason, equinoctial parameters are the recommended way to represent orbits. Note however than the present
         implementation does not handle non-elliptical cases.
     
         The instance :code:`EquinoctialOrbit` is guaranteed to be immutable.
@@ -3562,8 +4168,12 @@ class EquinoctialOrbit(Orbit, PositionAngleBased):
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float, double12: float, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double13: float): ...
     @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float, double12: float, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double13: float): ...
+    @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double7: float): ...
     @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double7: float): ...
+    @typing.overload
     def __init__(self, orbit: Orbit): ...
     @typing.overload
     def __init__(self, pVCoordinates: org.orekit.utils.PVCoordinates, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double: float): ...
@@ -3589,37 +4199,9 @@ class EquinoctialOrbit(Orbit, PositionAngleBased):
         """
         ...
     @staticmethod
-    def eccentricToMean(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the mean longitude argument from the eccentric longitude argument.
-        
-            Parameters:
-                lE (double): = E + ω + Ω mean longitude argument (rad)
-                ex (double): first component of the eccentricity vector
-                ey (double): second component of the eccentricity vector
-        
-            Returns:
-                the mean longitude argument
-        
-        
-        """
-        ...
+    def eccentricToMean(double: float, double2: float, double3: float) -> float: ...
     @staticmethod
-    def eccentricToTrue(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the true longitude argument from the eccentric longitude argument.
-        
-            Parameters:
-                lE (double): = E + ω + Ω eccentric longitude argument (rad)
-                ex (double): first component of the eccentricity vector
-                ey (double): second component of the eccentricity vector
-        
-            Returns:
-                the true longitude argument
-        
-        
-        """
-        ...
+    def eccentricToTrue(double: float, double2: float, double3: float) -> float: ...
     def getA(self) -> float:
         """
             Get the semi-major axis.
@@ -4011,21 +4593,7 @@ class EquinoctialOrbit(Orbit, PositionAngleBased):
         """
         ...
     @staticmethod
-    def meanToEccentric(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the eccentric longitude argument from the mean longitude argument.
-        
-            Parameters:
-                lM (double): = M + ω + Ω mean longitude argument (rad)
-                ex (double): first component of the eccentricity vector
-                ey (double): second component of the eccentricity vector
-        
-            Returns:
-                the eccentric longitude argument
-        
-        
-        """
-        ...
+    def meanToEccentric(double: float, double2: float, double3: float) -> float: ...
     def removeRates(self) -> 'EquinoctialOrbit':
         """
             Create a new instance such that :meth:`~org.orekit.orbits.PositionAngleBased.hasRates` is false.
@@ -4078,21 +4646,7 @@ class EquinoctialOrbit(Orbit, PositionAngleBased):
         """
         ...
     @staticmethod
-    def trueToEccentric(double: float, double2: float, double3: float) -> float:
-        """
-            Computes the eccentric longitude argument from the true longitude argument.
-        
-            Parameters:
-                lv (double): = v + ω + Ω true longitude argument (rad)
-                ex (double): first component of the eccentricity vector
-                ey (double): second component of the eccentricity vector
-        
-            Returns:
-                the eccentric longitude argument
-        
-        
-        """
-        ...
+    def trueToEccentric(double: float, double2: float, double3: float) -> float: ...
 
 _FieldCartesianOrbit__T = typing.TypeVar('_FieldCartesianOrbit__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldCartesianOrbit(FieldOrbit[_FieldCartesianOrbit__T], typing.Generic[_FieldCartesianOrbit__T]):
@@ -4540,8 +5094,12 @@ class FieldCircularOrbit(FieldOrbit[_FieldCircularOrbit__T], PositionAngleBased,
     @typing.overload
     def __init__(self, t: _FieldCircularOrbit__T, t2: _FieldCircularOrbit__T, t3: _FieldCircularOrbit__T, t4: _FieldCircularOrbit__T, t5: _FieldCircularOrbit__T, t6: _FieldCircularOrbit__T, t7: _FieldCircularOrbit__T, t8: _FieldCircularOrbit__T, t9: _FieldCircularOrbit__T, t10: _FieldCircularOrbit__T, t11: _FieldCircularOrbit__T, t12: _FieldCircularOrbit__T, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldCircularOrbit__T], t13: _FieldCircularOrbit__T): ...
     @typing.overload
+    def __init__(self, t: _FieldCircularOrbit__T, t2: _FieldCircularOrbit__T, t3: _FieldCircularOrbit__T, t4: _FieldCircularOrbit__T, t5: _FieldCircularOrbit__T, t6: _FieldCircularOrbit__T, t7: _FieldCircularOrbit__T, t8: _FieldCircularOrbit__T, t9: _FieldCircularOrbit__T, t10: _FieldCircularOrbit__T, t11: _FieldCircularOrbit__T, t12: _FieldCircularOrbit__T, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldCircularOrbit__T], t13: _FieldCircularOrbit__T): ...
+    @typing.overload
     def __init__(self, t: _FieldCircularOrbit__T, t2: _FieldCircularOrbit__T, t3: _FieldCircularOrbit__T, t4: _FieldCircularOrbit__T, t5: _FieldCircularOrbit__T, t6: _FieldCircularOrbit__T, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldCircularOrbit__T], t7: _FieldCircularOrbit__T): ...
     @typing.overload
+    def __init__(self, t: _FieldCircularOrbit__T, t2: _FieldCircularOrbit__T, t3: _FieldCircularOrbit__T, t4: _FieldCircularOrbit__T, t5: _FieldCircularOrbit__T, t6: _FieldCircularOrbit__T, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldCircularOrbit__T], t7: _FieldCircularOrbit__T): ...
+    @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldCircularOrbit__T], circularOrbit: CircularOrbit): ...
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldCircularOrbit__T], orbit: Orbit): ...
@@ -4572,38 +5130,10 @@ class FieldCircularOrbit(FieldOrbit[_FieldCircularOrbit__T], PositionAngleBased,
         ...
     _eccentricToMean__T = typing.TypeVar('_eccentricToMean__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def eccentricToMean(t: _eccentricToMean__T, t2: _eccentricToMean__T, t3: _eccentricToMean__T) -> _eccentricToMean__T:
-        """
-            Computes the mean latitude argument from the eccentric latitude argument.
-        
-            Parameters:
-                alphaE (T): = E + ω eccentric latitude argument (rad)
-                ex (T): e cos(ω), first component of circular eccentricity vector
-                ey (T): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the mean latitude argument.
-        
-        
-        """
-        ...
+    def eccentricToMean(t: _eccentricToMean__T, t2: _eccentricToMean__T, t3: _eccentricToMean__T) -> _eccentricToMean__T: ...
     _eccentricToTrue__T = typing.TypeVar('_eccentricToTrue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def eccentricToTrue(t: _eccentricToTrue__T, t2: _eccentricToTrue__T, t3: _eccentricToTrue__T) -> _eccentricToTrue__T:
-        """
-            Computes the true latitude argument from the eccentric latitude argument.
-        
-            Parameters:
-                alphaE (T): = E + ω eccentric latitude argument (rad)
-                ex (T): e cos(ω), first component of circular eccentricity vector
-                ey (T): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the true latitude argument.
-        
-        
-        """
-        ...
+    def eccentricToTrue(t: _eccentricToTrue__T, t2: _eccentricToTrue__T, t3: _eccentricToTrue__T) -> _eccentricToTrue__T: ...
     def getA(self) -> _FieldCircularOrbit__T:
         """
             Get the semi-major axis.
@@ -5094,21 +5624,7 @@ class FieldCircularOrbit(FieldOrbit[_FieldCircularOrbit__T], PositionAngleBased,
         ...
     _meanToEccentric__T = typing.TypeVar('_meanToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def meanToEccentric(t: _meanToEccentric__T, t2: _meanToEccentric__T, t3: _meanToEccentric__T) -> _meanToEccentric__T:
-        """
-            Computes the eccentric latitude argument from the mean latitude argument.
-        
-            Parameters:
-                alphaM (T): = M + ω mean latitude argument (rad)
-                ex (T): e cos(ω), first component of circular eccentricity vector
-                ey (T): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the eccentric latitude argument.
-        
-        
-        """
-        ...
+    def meanToEccentric(t: _meanToEccentric__T, t2: _meanToEccentric__T, t3: _meanToEccentric__T) -> _meanToEccentric__T: ...
     def removeRates(self) -> 'FieldCircularOrbit'[_FieldCircularOrbit__T]: ...
     @typing.overload
     def shiftedBy(self, double: float) -> 'FieldCircularOrbit'[_FieldCircularOrbit__T]: ...
@@ -5143,21 +5659,7 @@ class FieldCircularOrbit(FieldOrbit[_FieldCircularOrbit__T], PositionAngleBased,
         ...
     _trueToEccentric__T = typing.TypeVar('_trueToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def trueToEccentric(t: _trueToEccentric__T, t2: _trueToEccentric__T, t3: _trueToEccentric__T) -> _trueToEccentric__T:
-        """
-            Computes the eccentric latitude argument from the true latitude argument.
-        
-            Parameters:
-                alphaV (T): = v + ω true latitude argument (rad)
-                ex (T): e cos(ω), first component of circular eccentricity vector
-                ey (T): e sin(ω), second component of circular eccentricity vector
-        
-            Returns:
-                the eccentric latitude argument.
-        
-        
-        """
-        ...
+    def trueToEccentric(t: _trueToEccentric__T, t2: _trueToEccentric__T, t3: _trueToEccentric__T) -> _trueToEccentric__T: ...
 
 _FieldEquinoctialOrbit__T = typing.TypeVar('_FieldEquinoctialOrbit__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldEquinoctialOrbit(FieldOrbit[_FieldEquinoctialOrbit__T], PositionAngleBased, typing.Generic[_FieldEquinoctialOrbit__T]):
@@ -5197,8 +5699,12 @@ class FieldEquinoctialOrbit(FieldOrbit[_FieldEquinoctialOrbit__T], PositionAngle
     @typing.overload
     def __init__(self, t: _FieldEquinoctialOrbit__T, t2: _FieldEquinoctialOrbit__T, t3: _FieldEquinoctialOrbit__T, t4: _FieldEquinoctialOrbit__T, t5: _FieldEquinoctialOrbit__T, t6: _FieldEquinoctialOrbit__T, t7: _FieldEquinoctialOrbit__T, t8: _FieldEquinoctialOrbit__T, t9: _FieldEquinoctialOrbit__T, t10: _FieldEquinoctialOrbit__T, t11: _FieldEquinoctialOrbit__T, t12: _FieldEquinoctialOrbit__T, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldEquinoctialOrbit__T], t13: _FieldEquinoctialOrbit__T): ...
     @typing.overload
+    def __init__(self, t: _FieldEquinoctialOrbit__T, t2: _FieldEquinoctialOrbit__T, t3: _FieldEquinoctialOrbit__T, t4: _FieldEquinoctialOrbit__T, t5: _FieldEquinoctialOrbit__T, t6: _FieldEquinoctialOrbit__T, t7: _FieldEquinoctialOrbit__T, t8: _FieldEquinoctialOrbit__T, t9: _FieldEquinoctialOrbit__T, t10: _FieldEquinoctialOrbit__T, t11: _FieldEquinoctialOrbit__T, t12: _FieldEquinoctialOrbit__T, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldEquinoctialOrbit__T], t13: _FieldEquinoctialOrbit__T): ...
+    @typing.overload
     def __init__(self, t: _FieldEquinoctialOrbit__T, t2: _FieldEquinoctialOrbit__T, t3: _FieldEquinoctialOrbit__T, t4: _FieldEquinoctialOrbit__T, t5: _FieldEquinoctialOrbit__T, t6: _FieldEquinoctialOrbit__T, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldEquinoctialOrbit__T], t7: _FieldEquinoctialOrbit__T): ...
     @typing.overload
+    def __init__(self, t: _FieldEquinoctialOrbit__T, t2: _FieldEquinoctialOrbit__T, t3: _FieldEquinoctialOrbit__T, t4: _FieldEquinoctialOrbit__T, t5: _FieldEquinoctialOrbit__T, t6: _FieldEquinoctialOrbit__T, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldEquinoctialOrbit__T], t7: _FieldEquinoctialOrbit__T): ...
+    @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldEquinoctialOrbit__T], equinoctialOrbit: EquinoctialOrbit): ...
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldEquinoctialOrbit__T], orbit: Orbit): ...
@@ -5229,38 +5735,10 @@ class FieldEquinoctialOrbit(FieldOrbit[_FieldEquinoctialOrbit__T], PositionAngle
         ...
     _eccentricToMean__T = typing.TypeVar('_eccentricToMean__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def eccentricToMean(t: _eccentricToMean__T, t2: _eccentricToMean__T, t3: _eccentricToMean__T) -> _eccentricToMean__T:
-        """
-            Computes the mean longitude argument from the eccentric longitude argument.
-        
-            Parameters:
-                lE (T): = E + ω + Ω mean longitude argument (rad)
-                ex (T): first component of the eccentricity vector
-                ey (T): second component of the eccentricity vector
-        
-            Returns:
-                the mean longitude argument
-        
-        
-        """
-        ...
+    def eccentricToMean(t: _eccentricToMean__T, t2: _eccentricToMean__T, t3: _eccentricToMean__T) -> _eccentricToMean__T: ...
     _eccentricToTrue__T = typing.TypeVar('_eccentricToTrue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def eccentricToTrue(t: _eccentricToTrue__T, t2: _eccentricToTrue__T, t3: _eccentricToTrue__T) -> _eccentricToTrue__T:
-        """
-            Computes the true longitude argument from the eccentric longitude argument.
-        
-            Parameters:
-                lE (T): = E + ω + Ω eccentric longitude argument (rad)
-                ex (T): first component of the eccentricity vector
-                ey (T): second component of the eccentricity vector
-        
-            Returns:
-                the true longitude argument
-        
-        
-        """
-        ...
+    def eccentricToTrue(t: _eccentricToTrue__T, t2: _eccentricToTrue__T, t3: _eccentricToTrue__T) -> _eccentricToTrue__T: ...
     def getA(self) -> _FieldEquinoctialOrbit__T:
         """
             Get the semi-major axis.
@@ -5631,21 +6109,7 @@ class FieldEquinoctialOrbit(FieldOrbit[_FieldEquinoctialOrbit__T], PositionAngle
         ...
     _meanToEccentric__T = typing.TypeVar('_meanToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def meanToEccentric(t: _meanToEccentric__T, t2: _meanToEccentric__T, t3: _meanToEccentric__T) -> _meanToEccentric__T:
-        """
-            Computes the eccentric longitude argument from the mean longitude argument.
-        
-            Parameters:
-                lM (T): = M + ω + Ω mean longitude argument (rad)
-                ex (T): first component of the eccentricity vector
-                ey (T): second component of the eccentricity vector
-        
-            Returns:
-                the eccentric longitude argument
-        
-        
-        """
-        ...
+    def meanToEccentric(t: _meanToEccentric__T, t2: _meanToEccentric__T, t3: _meanToEccentric__T) -> _meanToEccentric__T: ...
     def removeRates(self) -> 'FieldEquinoctialOrbit'[_FieldEquinoctialOrbit__T]: ...
     @typing.overload
     def shiftedBy(self, double: float) -> 'FieldEquinoctialOrbit'[_FieldEquinoctialOrbit__T]: ...
@@ -5680,21 +6144,7 @@ class FieldEquinoctialOrbit(FieldOrbit[_FieldEquinoctialOrbit__T], PositionAngle
         ...
     _trueToEccentric__T = typing.TypeVar('_trueToEccentric__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @staticmethod
-    def trueToEccentric(t: _trueToEccentric__T, t2: _trueToEccentric__T, t3: _trueToEccentric__T) -> _trueToEccentric__T:
-        """
-            Computes the eccentric longitude argument from the true longitude argument.
-        
-            Parameters:
-                lv (T): = v + ω + Ω true longitude argument (rad)
-                ex (T): first component of the eccentricity vector
-                ey (T): second component of the eccentricity vector
-        
-            Returns:
-                the eccentric longitude argument
-        
-        
-        """
-        ...
+    def trueToEccentric(t: _trueToEccentric__T, t2: _trueToEccentric__T, t3: _trueToEccentric__T) -> _trueToEccentric__T: ...
 
 _FieldKeplerianOrbit__T = typing.TypeVar('_FieldKeplerianOrbit__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldKeplerianOrbit(FieldOrbit[_FieldKeplerianOrbit__T], PositionAngleBased, typing.Generic[_FieldKeplerianOrbit__T]):
@@ -5736,8 +6186,12 @@ class FieldKeplerianOrbit(FieldOrbit[_FieldKeplerianOrbit__T], PositionAngleBase
     @typing.overload
     def __init__(self, t: _FieldKeplerianOrbit__T, t2: _FieldKeplerianOrbit__T, t3: _FieldKeplerianOrbit__T, t4: _FieldKeplerianOrbit__T, t5: _FieldKeplerianOrbit__T, t6: _FieldKeplerianOrbit__T, t7: _FieldKeplerianOrbit__T, t8: _FieldKeplerianOrbit__T, t9: _FieldKeplerianOrbit__T, t10: _FieldKeplerianOrbit__T, t11: _FieldKeplerianOrbit__T, t12: _FieldKeplerianOrbit__T, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldKeplerianOrbit__T], t13: _FieldKeplerianOrbit__T): ...
     @typing.overload
+    def __init__(self, t: _FieldKeplerianOrbit__T, t2: _FieldKeplerianOrbit__T, t3: _FieldKeplerianOrbit__T, t4: _FieldKeplerianOrbit__T, t5: _FieldKeplerianOrbit__T, t6: _FieldKeplerianOrbit__T, t7: _FieldKeplerianOrbit__T, t8: _FieldKeplerianOrbit__T, t9: _FieldKeplerianOrbit__T, t10: _FieldKeplerianOrbit__T, t11: _FieldKeplerianOrbit__T, t12: _FieldKeplerianOrbit__T, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldKeplerianOrbit__T], t13: _FieldKeplerianOrbit__T): ...
+    @typing.overload
     def __init__(self, t: _FieldKeplerianOrbit__T, t2: _FieldKeplerianOrbit__T, t3: _FieldKeplerianOrbit__T, t4: _FieldKeplerianOrbit__T, t5: _FieldKeplerianOrbit__T, t6: _FieldKeplerianOrbit__T, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldKeplerianOrbit__T], t7: _FieldKeplerianOrbit__T): ...
     @typing.overload
+    def __init__(self, t: _FieldKeplerianOrbit__T, t2: _FieldKeplerianOrbit__T, t3: _FieldKeplerianOrbit__T, t4: _FieldKeplerianOrbit__T, t5: _FieldKeplerianOrbit__T, t6: _FieldKeplerianOrbit__T, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldKeplerianOrbit__T], t7: _FieldKeplerianOrbit__T): ...
+    @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldKeplerianOrbit__T], keplerianOrbit: 'KeplerianOrbit'): ...
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldKeplerianOrbit__T], orbit: Orbit): ...
@@ -6404,8 +6858,12 @@ class KeplerianOrbit(Orbit, PositionAngleBased):
     @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float, double12: float, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double13: float): ...
     @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float, double12: float, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double13: float): ...
+    @typing.overload
     def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, positionAngleType: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double7: float): ...
     @typing.overload
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, positionAngleType: PositionAngleType, positionAngleType2: PositionAngleType, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double7: float): ...
+    @typing.overload
     def __init__(self, orbit: Orbit): ...
     @typing.overload
     def __init__(self, pVCoordinates: org.orekit.utils.PVCoordinates, frame: org.orekit.frames.Frame, absoluteDate: org.orekit.time.AbsoluteDate, double: float): ...
@@ -7090,10 +7548,14 @@ class __module_protocol__(Protocol):
     AbstractOrbitInterpolator: typing.Type[AbstractOrbitInterpolator]
     CR3BPDifferentialCorrection: typing.Type[CR3BPDifferentialCorrection]
     CartesianOrbit: typing.Type[CartesianOrbit]
+    CircularLatitudeArgumentUtility: typing.Type[CircularLatitudeArgumentUtility]
     CircularOrbit: typing.Type[CircularOrbit]
+    EquinoctialLongitudeArgumentUtility: typing.Type[EquinoctialLongitudeArgumentUtility]
     EquinoctialOrbit: typing.Type[EquinoctialOrbit]
     FieldCartesianOrbit: typing.Type[FieldCartesianOrbit]
+    FieldCircularLatitudeArgumentUtility: typing.Type[FieldCircularLatitudeArgumentUtility]
     FieldCircularOrbit: typing.Type[FieldCircularOrbit]
+    FieldEquinoctialLongitudeArgumentUtility: typing.Type[FieldEquinoctialLongitudeArgumentUtility]
     FieldEquinoctialOrbit: typing.Type[FieldEquinoctialOrbit]
     FieldKeplerianAnomalyUtility: typing.Type[FieldKeplerianAnomalyUtility]
     FieldKeplerianOrbit: typing.Type[FieldKeplerianOrbit]
@@ -7102,6 +7564,7 @@ class __module_protocol__(Protocol):
     FieldOrbitHermiteInterpolator: typing.Type[FieldOrbitHermiteInterpolator]
     HaloOrbit: typing.Type[HaloOrbit]
     KeplerianAnomalyUtility: typing.Type[KeplerianAnomalyUtility]
+    KeplerianMotionCartesianUtility: typing.Type[KeplerianMotionCartesianUtility]
     KeplerianOrbit: typing.Type[KeplerianOrbit]
     LibrationOrbit: typing.Type[LibrationOrbit]
     LibrationOrbitFamily: typing.Type[LibrationOrbitFamily]
@@ -7114,3 +7577,5 @@ class __module_protocol__(Protocol):
     PositionAngleBased: typing.Type[PositionAngleBased]
     PositionAngleType: typing.Type[PositionAngleType]
     RichardsonExpansion: typing.Type[RichardsonExpansion]
+    WalkerConstellation: typing.Type[WalkerConstellation]
+    WalkerConstellationSlot: typing.Type[WalkerConstellationSlot]
diff --git a/org-stubs/orekit/propagation/__init__.pyi b/org-stubs/orekit/propagation/__init__.pyi
index eaeaccc75bb2ec9470456a1681d72906c8689ce6..26f5113c329073ef67bc7232dd3ef302823bec95 100644
--- a/org-stubs/orekit/propagation/__init__.pyi
+++ b/org-stubs/orekit/propagation/__init__.pyi
@@ -124,49 +124,50 @@ class AdditionalStateProvider:
     """
     public interface AdditionalStateProvider
     
-        This interface represents providers for additional state data beyond :class:`~org.orekit.propagation.SpacecraftState`.
+        This interface allows to modify :class:`~org.orekit.propagation.SpacecraftState` and set up additional state data.
     
         :class:`~org.orekit.propagation.Propagator` generate :class:`~org.orekit.propagation.SpacecraftState` that contain at
         least orbit, attitude, and mass. These states may however also contain
         :meth:`~org.orekit.propagation.SpacecraftState.addAdditionalState`. Instances of classes implementing this interface are
-        intended to be registered to propagators so they can add these additional states incrementally after having computed the
-        basic components (orbit, attitude and mass).
+        intended to be registered to propagators so they can either modify the basic components (orbit, attitude and mass) or
+        add additional states incrementally after having computed the basic components.
     
         Some additional states may depend on previous additional states to be already available the before they can be computed.
         It may even be impossible to compute some of these additional states at some time if they depend on conditions that are
         fulfilled only after propagation as started or some event has occurred. As the propagator builds the complete state
         incrementally, looping over the registered providers, it must call their
-        :meth:`~org.orekit.propagation.AdditionalStateProvider.getAdditionalState` methods in an order that fulfill these
-        dependencies that may be time-dependent and are not related to the order in which the providers are registered to the
-        propagator. This reordering is performed each time the complete state is built, using a yield mechanism. The propagator
-        first pushes all providers in a stack and then empty the stack, one provider at a time, taking care to select only
-        providers that do *not* :meth:`~org.orekit.propagation.AdditionalStateProvider.yields` when asked. Consider for example
-        a case where providers A, B and C have been registered and provider B needs in fact the additional state generated by
-        provider C. Then when a complete state is built, the propagator puts the three providers in a new stack, and then starts
-        the incremental generation of additional states. It first checks provider A which does not yield so it is popped from
-        the stack and the additional state it generates is added. Then provider B is checked, but it yields because state from
+        :meth:`~org.orekit.propagation.AdditionalStateProvider.update` methods in an order that fulfill these dependencies that
+        may be time-dependent and are not related to the order in which the providers are registered to the propagator. This
+        reordering is performed each time the complete state is built, using a yield mechanism. The propagator first pushes all
+        providers in a stack and then empty the stack, one provider at a time, taking care to select only providers that do
+        *not* :meth:`~org.orekit.propagation.AdditionalStateProvider.yields` when asked. Consider for example a case where
+        providers A, B and C have been registered and provider B needs in fact the additional state generated by provider C.
+        Then when a complete state is built, the propagator puts the three providers in a new stack, and then starts the
+        incremental generation of additional states. It first checks provider A which does not yield so it is popped from the
+        stack and the additional state it generates is added. Then provider B is checked, but it yields because state from
         provider C is not yet available. So propagator checks provider C which does not yield, so it is popped out of the stack
         and applied. At this stage, provider B is the only remaining one in the stack, so it is checked again, but this time it
         does not yield because the state from provider C is available as it has just been added, so provider B is popped from
         the stack and applied. The stack is now empty and the propagator can return the completed state.
     
         It is possible that at some stages in the propagation, a subset of the providers registered to a propagator all yield
-        and cannot :meth:`~org.orekit.propagation.AdditionalStateProvider.getAdditionalState` their additional state. This
-        happens for example during the initialization phase of a propagator that computes State Transition Matrices or Jacobian
-        matrices. These features are managed as secondary equations in the ODE integrator, and initialized after the primary
-        equations (which correspond to orbit) have been initialized. So when the primary equation are initialized, the providers
-        that depend on the secondary state will all yield. This behavior is expected. Another case occurs when users set up
-        additional states that induce a dependency loop (state A depending on state B which depends on state C which depends on
-        state A). In this case, the three corresponding providers will wait for each other and indefinitely yield. This second
-        case is a deadlock and results from a design error of the additional states management at application level. The
-        propagator cannot know it in advance if a subset of providers that all yield is normal or not. So at propagator level,
-        when either situation is detected, the propagator just gives up and returns the most complete state it was able to
-        compute, without generating any error. Errors will indeed not be triggered in the first case (once the primary equations
-        have been initialized, the secondary equations will be initialized too), and they will be triggered in the second case
-        as soon as user attempts to retrieve an additional state that was not added.
+        and cannot :meth:`~org.orekit.propagation.AdditionalStateProvider.update` the state. This happens for example during the
+        initialization phase of a propagator that computes State Transition Matrices or Jacobian matrices. These features are
+        managed as secondary equations in the ODE integrator, and initialized after the primary equations (which correspond to
+        orbit) have been initialized. So when the primary equation are initialized, the providers that depend on the secondary
+        state will all yield. This behavior is expected. Another case occurs when users set up additional states that induce a
+        dependency loop (state A depending on state B which depends on state C which depends on state A). In this case, the
+        three corresponding providers will wait for each other and indefinitely yield. This second case is a deadlock and
+        results from a design error of the additional states management at application level. The propagator cannot know it in
+        advance if a subset of providers that all yield is normal or not. So at propagator level, when either situation is
+        detected, the propagator just gives up and returns the most complete state it was able to compute, without generating
+        any error. Errors will indeed not be triggered in the first case (once the primary equations have been initialized, the
+        secondary equations will be initialized too), and they will be triggered in the second case as soon as user attempts to
+        retrieve an additional state that was not added.
     
         Also see:
-            :class:`~org.orekit.propagation.Propagator`, :class:`~org.orekit.propagation.integration.AdditionalDerivativesProvider`
+            :class:`~org.orekit.propagation.Propagator`, :class:`~org.orekit.propagation.integration.AdditionalDerivativesProvider`,
+            :class:`~org.orekit.propagation.AbstractStateModifier`
     """
     def getAdditionalState(self, spacecraftState: 'SpacecraftState') -> typing.MutableSequence[float]:
         """
@@ -185,6 +186,9 @@ class AdditionalStateProvider:
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Returns:
                 name of the additional state (names containing "orekit" with any case are reserved for the library internal use)
         
@@ -203,6 +207,22 @@ class AdditionalStateProvider:
                 11.2
         
         
+        """
+        ...
+    def update(self, spacecraftState: 'SpacecraftState') -> 'SpacecraftState':
+        """
+            Update a state.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state to update
+        
+            Returns:
+                updated state
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     def yields(self, spacecraftState: 'SpacecraftState') -> bool:
@@ -274,64 +294,68 @@ class FieldAdditionalStateProvider(typing.Generic[_FieldAdditionalStateProvider_
     """
     public interface FieldAdditionalStateProvider<T extends :class:`~org.orekit.propagation.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>>
     
-        This interface represents providers for additional state data beyond :class:`~org.orekit.propagation.SpacecraftState`.
+        This interface allows to modify :class:`~org.orekit.propagation.FieldSpacecraftState` and set up additional state data.
     
         :class:`~org.orekit.propagation.FieldPropagator` generate :class:`~org.orekit.propagation.FieldSpacecraftState` that
         contain at least orbit, attitude, and mass. These states may however also contain
         :meth:`~org.orekit.propagation.FieldSpacecraftState.addAdditionalState`. Instances of classes implementing this
-        interface are intended to be registered to propagators so they can add these additional states incrementally after
-        having computed the basic components (orbit, attitude and mass).
+        interface are intended to be registered to propagators so they can either modify the basic components (orbit, attitude
+        and mass) or add additional states incrementally after having computed the basic components.
     
         Some additional states may depend on previous additional states to be already available the before they can be computed.
         It may even be impossible to compute some of these additional states at some time if they depend on conditions that are
         fulfilled only after propagation as started or some event has occurred. As the propagator builds the complete state
         incrementally, looping over the registered providers, it must call their
-        :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.getAdditionalState` methods in an order that fulfill these
-        dependencies that may be time-dependent and are not related to the order in which the providers are registered to the
-        propagator. This reordering is performed each time the complete state is built, using a yield mechanism. The propagator
-        first pushes all providers in a stack and then empty the stack, one provider at a time, taking care to select only
-        providers that do *not* :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.yields` when asked. Consider for
-        example a case where providers A, B and C have been registered and provider B needs in fact the additional state
-        generated by provider C. Then when a complete state is built, the propagator puts the three providers in a new stack,
-        and then starts the incremental generation of additional states. It first checks provider A which does not yield so it
-        is popped from the stack and the additional state it generates is added. Then provider B is checked, but it yields
-        because state from provider C is not yet available. So propagator checks provider C which does not yield, so it is
-        popped out of the stack and applied. At this stage, provider B is the only remaining one in the stack, so it is checked
-        again, but this time it does not yield because the state from provider C is available as it has just been added, so
-        provider B is popped from the stack and applied. The stack is now empty and the propagator can return the completed
-        state.
+        :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.update` methods in an order that fulfill these dependencies
+        that may be time-dependent and are not related to the order in which the providers are registered to the propagator.
+        This reordering is performed each time the complete state is built, using a yield mechanism. The propagator first pushes
+        all providers in a stack and then empty the stack, one provider at a time, taking care to select only providers that do
+        *not* :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.yields` when asked. Consider for example a case where
+        providers A, B and C have been registered and provider B needs in fact the additional state generated by provider C.
+        Then when a complete state is built, the propagator puts the three providers in a new stack, and then starts the
+        incremental generation of additional states. It first checks provider A which does not yield so it is popped from the
+        stack and the additional state it generates is added. Then provider B is checked, but it yields because state from
+        provider C is not yet available. So propagator checks provider C which does not yield, so it is popped out of the stack
+        and applied. At this stage, provider B is the only remaining one in the stack, so it is checked again, but this time it
+        does not yield because the state from provider C is available as it has just been added, so provider B is popped from
+        the stack and applied. The stack is now empty and the propagator can return the completed state.
     
         It is possible that at some stages in the propagation, a subset of the providers registered to a propagator all yield
-        and cannot :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.getAdditionalState` their additional state. This
-        happens for example during the initialization phase of a propagator that computes State Transition Matrices or Jacobian
-        matrices. These features are managed as secondary equations in the ODE integrator, and initialized after the primary
-        equations (which correspond to orbit) have been initialized. So when the primary equation are initialized, the providers
-        that depend on the secondary state will all yield. This behavior is expected. Another case occurs when users set up
-        additional states that induce a dependency loop (state A depending on state B which depends on state C which depends on
-        state A). In this case, the three corresponding providers will wait for each other and indefinitely yield. This second
-        case is a deadlock and results from a design error of the additional states management at application level. The
-        propagator cannot know it in advance if a subset of providers that all yield is normal or not. So at propagator level,
-        when either situation is detected, the propagator just gives up and returns the most complete state it was able to
-        compute, without generating any error. Errors will indeed not be triggered in the first case (once the primary equations
-        have been initialized, the secondary equations will be initialized too), and they will be triggered in the second case
-        as soon as user attempts to retrieve an additional state that was not added.
+        and cannot :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.update` the state. This happens for example
+        during the initialization phase of a propagator that computes State Transition Matrices or Jacobian matrices. These
+        features are managed as secondary equations in the ODE integrator, and initialized after the primary equations (which
+        correspond to orbit) have been initialized. So when the primary equation are initialized, the providers that depend on
+        the secondary state will all yield. This behavior is expected. Another case occurs when users set up additional states
+        that induce a dependency loop (state A depending on state B which depends on state C which depends on state A). In this
+        case, the three corresponding providers will wait for each other and indefinitely yield. This second case is a deadlock
+        and results from a design error of the additional states management at application level. The propagator cannot know it
+        in advance if a subset of providers that all yield is normal or not. So at propagator level, when either situation is
+        detected, the propagator just gives up and returns the most complete state it was able to compute, without generating
+        any error. Errors will indeed not be triggered in the first case (once the primary equations have been initialized, the
+        secondary equations will be initialized too), and they will be triggered in the second case as soon as user attempts to
+        retrieve an additional state that was not added.
     
         Also see:
             :class:`~org.orekit.propagation.FieldPropagator`,
-            :class:`~org.orekit.propagation.integration.FieldAdditionalDerivativesProvider`
+            :class:`~org.orekit.propagation.integration.FieldAdditionalDerivativesProvider`,
+            :class:`~org.orekit.propagation.FieldAbstractStateModifier`
     """
     def getAdditionalState(self, fieldSpacecraftState: 'FieldSpacecraftState'[_FieldAdditionalStateProvider__T]) -> typing.MutableSequence[_FieldAdditionalStateProvider__T]: ...
     def getName(self) -> str:
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Returns:
-                name of the additional state
+                name of the additional state (names containing "orekit" with any case are reserved for the library internal use)
         
         
         """
         ...
     def init(self, fieldSpacecraftState: 'FieldSpacecraftState'[_FieldAdditionalStateProvider__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldAdditionalStateProvider__T]) -> None: ...
+    def update(self, fieldSpacecraftState: 'FieldSpacecraftState'[_FieldAdditionalStateProvider__T]) -> 'FieldSpacecraftState'[_FieldAdditionalStateProvider__T]: ...
     def yields(self, fieldSpacecraftState: 'FieldSpacecraftState'[_FieldAdditionalStateProvider__T]) -> bool: ...
 
 _FieldEphemerisGenerator__T = typing.TypeVar('_FieldEphemerisGenerator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -450,6 +474,8 @@ class FieldPropagator(org.orekit.utils.FieldPVCoordinatesProvider[_FieldPropagat
         """
         ...
     def getMultiplexer(self) -> org.orekit.propagation.sampling.FieldStepHandlerMultiplexer[_FieldPropagator__T]: ...
+    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldPropagator__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldPropagator__T]: ...
+    def getPosition(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldPropagator__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldPropagator__T]: ...
     def isAdditionalStateManaged(self, string: str) -> bool:
         """
             Check if an additional state is managed.
@@ -901,6 +927,8 @@ class FieldSpacecraftStateInterpolator(org.orekit.time.AbstractFieldTimeInterpol
             :class:`~org.orekit.propagation.SpacecraftState`
     """
     @typing.overload
+    def __init__(self, int: int, double: float, frame: org.orekit.frames.Frame): ...
+    @typing.overload
     def __init__(self, int: int, double: float, frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame): ...
     @typing.overload
     def __init__(self, int: int, double: float, frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter): ...
@@ -1036,9 +1064,9 @@ class MatricesHarvester:
         :class:`~org.orekit.propagation.SpacecraftState`.
     
         The State Transition Matrix and Jacobians matrices with respect to propagation parameters are stored in the state as
-        :meth:`~org.orekit.propagation.SpacecraftState.getAdditionalState`. Each propagator and support classes has its own way
-        to handle it. The interface leverages these differences which are implementation details and provides a higher level
-        access to these matrices, regardless of haw they were computed and stored.
+        :meth:`~org.orekit.propagation.SpacecraftState.getAdditionalState`. Each propagator and support classes have their own
+        way to handle them. The interface leverages these differences which are implementation details and provides a higher
+        level access to these matrices, regardless of how they were computed and stored.
     
         Since:
             11.1
@@ -1351,6 +1379,42 @@ class Propagator(org.orekit.utils.PVCoordinatesProvider):
                 11.0
         
         
+        """
+        ...
+    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
+        """
+            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                time-stamped position/velocity of the body (m and m/s)
+        
+        
+        """
+        ...
+    def getPosition(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Get the position of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPosition` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                position of the body (m and)
+        
+        
         """
         ...
     def isAdditionalStateManaged(self, string: str) -> bool:
@@ -2181,6 +2245,8 @@ class SpacecraftStateInterpolator(org.orekit.time.AbstractTimeInterpolator[Space
             :class:`~org.orekit.propagation.SpacecraftState`
     """
     @typing.overload
+    def __init__(self, int: int, double: float, frame: org.orekit.frames.Frame): ...
+    @typing.overload
     def __init__(self, int: int, double: float, frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame): ...
     @typing.overload
     def __init__(self, int: int, double: float, frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame, cartesianDerivativesFilter: org.orekit.utils.CartesianDerivativesFilter, angularDerivativesFilter: org.orekit.utils.AngularDerivativesFilter): ...
@@ -2651,24 +2717,6 @@ class AbstractPropagator(Propagator):
                 multiplexer holding all step handlers
         
         
-        """
-        ...
-    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
-        
-            Specified by:
-                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
-                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date
-                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
-        
-            Returns:
-                time-stamped position/velocity of the body (m and m/s)
-        
-        
         """
         ...
     def isAdditionalStateManaged(self, string: str) -> bool:
@@ -2776,6 +2824,90 @@ class AbstractPropagator(Propagator):
         """
         ...
 
+class AbstractStateModifier(AdditionalStateProvider):
+    """
+    public abstract class AbstractStateModifier extends :class:`~org.orekit.propagation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.AdditionalStateProvider`
+    
+        Abstract base class for modifying state during propagation.
+    
+        This class is a specialized implementation of :class:`~org.orekit.propagation.AdditionalStateProvider` with a name set
+        to the empty string and returning a null additional state.
+    
+        Beware that changing the state undercover from the propagator may have many side effects. Using this class should
+        therefore be done cautiously.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.Propagator`, :class:`~org.orekit.propagation.AdditionalStateProvider`
+    """
+    def __init__(self): ...
+    def change(self, spacecraftState: SpacecraftState) -> SpacecraftState:
+        """
+            Change main state.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state to change
+        
+            Returns:
+                changed state
+        
+        
+        """
+        ...
+    def getAdditionalState(self, spacecraftState: SpacecraftState) -> typing.MutableSequence[float]:
+        """
+            Get the additional state.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.AdditionalStateProvider.getAdditionalState` in
+                interface :class:`~org.orekit.propagation.AdditionalStateProvider`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state to which additional state should correspond
+        
+            Returns:
+                additional state corresponding to spacecraft state
+        
+        
+        """
+        ...
+    def getName(self) -> str:
+        """
+            Get the name of the additional state.
+        
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
+                interface :class:`~org.orekit.propagation.AdditionalStateProvider`
+        
+            Returns:
+                name of the additional state (names containing "orekit" with any case are reserved for the library internal use)
+        
+        
+        """
+        ...
+    def update(self, spacecraftState: SpacecraftState) -> SpacecraftState:
+        """
+            Update a state.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.AdditionalStateProvider.update` in
+                interface :class:`~org.orekit.propagation.AdditionalStateProvider`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state to update
+        
+            Returns:
+                updated state
+        
+        
+        """
+        ...
+
 class BoundedPropagator(Propagator):
     """
     public interface BoundedPropagator extends :class:`~org.orekit.propagation.Propagator`
@@ -2869,7 +3001,6 @@ class FieldAbstractPropagator(FieldPropagator[_FieldAbstractPropagator__T], typi
         """
         ...
     def getMultiplexer(self) -> org.orekit.propagation.sampling.FieldStepHandlerMultiplexer[_FieldAbstractPropagator__T]: ...
-    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldAbstractPropagator__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldAbstractPropagator__T]: ...
     def isAdditionalStateManaged(self, string: str) -> bool:
         """
             Check if an additional state is managed.
@@ -2921,6 +3052,47 @@ class FieldAbstractPropagator(FieldPropagator[_FieldAbstractPropagator__T], typi
         """
         ...
 
+_FieldAbstractStateModifier__T = typing.TypeVar('_FieldAbstractStateModifier__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldAbstractStateModifier(FieldAdditionalStateProvider[_FieldAbstractStateModifier__T], typing.Generic[_FieldAbstractStateModifier__T]):
+    """
+    public abstract class FieldAbstractStateModifier<T extends :class:`~org.orekit.propagation.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.FieldAdditionalStateProvider`<T>
+    
+        Abstract base class for modifying state during propagation.
+    
+        This class is a specialized implementation of :class:`~org.orekit.propagation.AdditionalStateProvider` with a name set
+        to the empty string and returning a null additional state.
+    
+        Beware that changing the state undercover from the propagator may have many side effects. Using this class should
+        therefore be done cautiously.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.Propagator`, :class:`~org.orekit.propagation.AdditionalStateProvider`
+    """
+    def __init__(self): ...
+    def change(self, fieldSpacecraftState: FieldSpacecraftState[_FieldAbstractStateModifier__T]) -> FieldSpacecraftState[_FieldAbstractStateModifier__T]: ...
+    def getAdditionalState(self, fieldSpacecraftState: FieldSpacecraftState[_FieldAbstractStateModifier__T]) -> typing.MutableSequence[_FieldAbstractStateModifier__T]: ...
+    def getName(self) -> str:
+        """
+            Get the name of the additional state.
+        
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.FieldAdditionalStateProvider.getName` in
+                interface :class:`~org.orekit.propagation.FieldAdditionalStateProvider`
+        
+            Returns:
+                name of the additional state (names containing "orekit" with any case are reserved for the library internal use)
+        
+        
+        """
+        ...
+    def update(self, fieldSpacecraftState: FieldSpacecraftState[_FieldAbstractStateModifier__T]) -> FieldSpacecraftState[_FieldAbstractStateModifier__T]: ...
+
 _FieldBoundedPropagator__T = typing.TypeVar('_FieldBoundedPropagator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldBoundedPropagator(FieldPropagator[_FieldBoundedPropagator__T], typing.Generic[_FieldBoundedPropagator__T]):
     """
@@ -3025,8 +3197,8 @@ class StateCovarianceMatrixProvider(AdditionalStateProvider):
     
         This additional state provider allows computing a propagated covariance matrix based on a user defined input state
         covariance matrix. The computation of the propagated covariance matrix uses the State Transition Matrix between the
-        propagated spacecraft state and the initial state. As a result, the user must define the name
-        :meth:`~org.orekit.propagation.StateCovarianceMatrixProvider.stmName`.
+        propagated spacecraft state and the initial state. As a result, the user must define the name :code:`of the provider for
+        the State Transition Matrix`.
     
         As the State Transition Matrix and the input state covariance matrix can be expressed in different orbit types, the user
         must specify both orbit types when building the covariance provider. In addition, the position angle used in both
@@ -3073,6 +3245,9 @@ class StateCovarianceMatrixProvider(AdditionalStateProvider):
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Specified by:
                 :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
                 interface :class:`~org.orekit.propagation.AdditionalStateProvider`
@@ -3194,10 +3369,12 @@ class __module_protocol__(Protocol):
     AbstractMatricesHarvester: typing.Type[AbstractMatricesHarvester]
     AbstractPropagator: typing.Type[AbstractPropagator]
     AbstractStateCovarianceInterpolator: typing.Type[AbstractStateCovarianceInterpolator]
+    AbstractStateModifier: typing.Type[AbstractStateModifier]
     AdditionalStateProvider: typing.Type[AdditionalStateProvider]
     BoundedPropagator: typing.Type[BoundedPropagator]
     EphemerisGenerator: typing.Type[EphemerisGenerator]
     FieldAbstractPropagator: typing.Type[FieldAbstractPropagator]
+    FieldAbstractStateModifier: typing.Type[FieldAbstractStateModifier]
     FieldAdditionalStateProvider: typing.Type[FieldAdditionalStateProvider]
     FieldBoundedPropagator: typing.Type[FieldBoundedPropagator]
     FieldEphemerisGenerator: typing.Type[FieldEphemerisGenerator]
diff --git a/org-stubs/orekit/propagation/analytical/__init__.pyi b/org-stubs/orekit/propagation/analytical/__init__.pyi
index cc55396fbc90717012cf8cd3b63c163ae6c9eadc..5896dbf369313228df30a4ccc512b583de3ae605 100644
--- a/org-stubs/orekit/propagation/analytical/__init__.pyi
+++ b/org-stubs/orekit/propagation/analytical/__init__.pyi
@@ -9,6 +9,7 @@ import java.util
 import jpype
 import org.hipparchus
 import org.hipparchus.analysis.differentiation
+import org.hipparchus.geometry.euclidean.threed
 import org.hipparchus.linear
 import org.orekit.attitudes
 import org.orekit.forces.gravity.potential
@@ -16,6 +17,7 @@ import org.orekit.frames
 import org.orekit.orbits
 import org.orekit.propagation
 import org.orekit.propagation.analytical.gnss
+import org.orekit.propagation.analytical.intelsat
 import org.orekit.propagation.analytical.tle
 import org.orekit.propagation.events
 import org.orekit.propagation.integration
@@ -94,6 +96,9 @@ class AbstractAnalyticalMatricesHarvester(org.orekit.propagation.AbstractMatrice
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Specified by:
                 :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
                 interface :class:`~org.orekit.propagation.AdditionalStateProvider`
@@ -491,17 +496,16 @@ class AggregateBoundedPropagator(AbstractAnalyticalPropagator, org.orekit.propag
         ...
     def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
         """
-            Description copied from class: :meth:`~org.orekit.propagation.AbstractPropagator.getPVCoordinates`
+            Description copied from interface: :meth:`~org.orekit.propagation.Propagator.getPVCoordinates`
             Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
         
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.getPVCoordinates` in interface :class:`~org.orekit.propagation.Propagator`
+        
             Specified by:
                 :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
                 interface :class:`~org.orekit.utils.PVCoordinatesProvider`
         
-            Overrides:
-                :meth:`~org.orekit.propagation.AbstractPropagator.getPVCoordinates` in
-                class :class:`~org.orekit.propagation.AbstractPropagator`
-        
             Parameters:
                 date (:class:`~org.orekit.time.AbsoluteDate`): current date
                 frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
@@ -510,9 +514,32 @@ class AggregateBoundedPropagator(AbstractAnalyticalPropagator, org.orekit.propag
                 time-stamped position/velocity of the body (m and m/s)
         
         
+        """
+        ...
+    def getPosition(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D:
+        """
+            Description copied from interface: :meth:`~org.orekit.propagation.Propagator.getPosition`
+            Get the position of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.getPosition` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPosition` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                position of the body (m and)
+        
+        
         """
         ...
     def getPropagators(self) -> java.util.NavigableMap[org.orekit.time.AbsoluteDate, org.orekit.propagation.BoundedPropagator]: ...
+    def getPropagatorsMap(self) -> org.orekit.utils.TimeSpanMap[org.orekit.propagation.BoundedPropagator]: ...
     def resetInitialState(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
         """
             Description copied from class: :meth:`~org.orekit.propagation.AbstractPropagator.resetInitialState`
@@ -547,11 +574,11 @@ class BrouwerLyddanePropagator(AbstractAnalyticalPropagator, org.orekit.utils.Pa
         By default, Brouwer-Lyddane model considers only the perturbations due to zonal harmonics. However, for low Earth
         orbits, the magnitude of the perturbative acceleration due to atmospheric drag can be significant. Warren Phipps' 1992
         thesis considered the atmospheric drag by time derivatives of the *mean* mean anomaly using the catch-all coefficient
-        :meth:`~org.orekit.propagation.analytical.BrouwerLyddanePropagator.M2Driver`. Beware that M2Driver must have only 1 span
-        on its TimeSpanMap value. Usually, M2 is adjusted during an orbit determination process and it represents the
-        combination of all unmodeled secular along-track effects (i.e. not just the atmospheric drag). The behavior of M2 is
-        close to the :meth:`~org.orekit.propagation.analytical.tle.TLE.getBStar` parameter for the TLE. If the value of M2 is
-        equal to :meth:`~org.orekit.propagation.analytical.BrouwerLyddanePropagator.M2`, the along-track secular effects are not
+        :code:`M2Driver`. Beware that M2Driver must have only 1 span on its TimeSpanMap value. Usually, M2 is adjusted during an
+        orbit determination process and it represents the combination of all unmodeled secular along-track effects (i.e. not
+        just the atmospheric drag). The behavior of M2 is close to the
+        :meth:`~org.orekit.propagation.analytical.tle.TLE.getBStar` parameter for the TLE. If the value of M2 is equal to
+        :meth:`~org.orekit.propagation.analytical.BrouwerLyddanePropagator.M2`, the along-track secular effects are not
         considered in the dynamical model. Typical values for M2 are not known. It depends on the orbit type. However, the value
         of M2 must be very small (e.g. between 1.0e-14 and 1.0e-15). The unit of M2 is rad/s². The along-track effects,
         represented by the secular rates of the mean semi-major axis and eccentricity, are computed following Eq. 2.38, 2.41,
@@ -1257,9 +1284,8 @@ class FieldBrouwerLyddanePropagator(FieldAbstractAnalyticalPropagator[_FieldBrou
         By default, Brouwer-Lyddane model considers only the perturbations due to zonal harmonics. However, for low Earth
         orbits, the magnitude of the perturbative acceleration due to atmospheric drag can be significant. Warren Phipps' 1992
         thesis considered the atmospheric drag by time derivatives of the *mean* mean anomaly using the catch-all coefficient
-        :meth:`~org.orekit.propagation.analytical.FieldBrouwerLyddanePropagator.M2Driver`. Usually, M2 is adjusted during an
-        orbit determination process and it represents the combination of all unmodeled secular along-track effects (i.e. not
-        just the atmospheric drag). The behavior of M2 is close to the
+        :code:`M2Driver`. Usually, M2 is adjusted during an orbit determination process and it represents the combination of all
+        unmodeled secular along-track effects (i.e. not just the atmospheric drag). The behavior of M2 is close to the
         :meth:`~org.orekit.propagation.analytical.tle.FieldTLE.getBStar` parameter for the TLE. If the value of M2 is equal to
         :meth:`~org.orekit.propagation.analytical.BrouwerLyddanePropagator.M2`, the along-track secular effects are not
         considered in the dynamical model. Typical values for M2 are not known. It depends on the orbit type. However, the value
@@ -1704,4 +1730,5 @@ class __module_protocol__(Protocol):
     J2DifferentialEffect: typing.Type[J2DifferentialEffect]
     KeplerianPropagator: typing.Type[KeplerianPropagator]
     gnss: org.orekit.propagation.analytical.gnss.__module_protocol__
+    intelsat: org.orekit.propagation.analytical.intelsat.__module_protocol__
     tle: org.orekit.propagation.analytical.tle.__module_protocol__
diff --git a/org-stubs/orekit/propagation/analytical/gnss/__init__.pyi b/org-stubs/orekit/propagation/analytical/gnss/__init__.pyi
index cd78638e517dd97f47f2440d1822ae96648b4b52..c3f42897ffda222b5d831b02011516b8856238e0 100644
--- a/org-stubs/orekit/propagation/analytical/gnss/__init__.pyi
+++ b/org-stubs/orekit/propagation/analytical/gnss/__init__.pyi
@@ -79,6 +79,9 @@ class ClockCorrectionsProvider(org.orekit.propagation.AdditionalStateProvider):
         """
             Get the name of the additional state.
         
+            If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new state, it should
+            return the empty string as its name.
+        
             Specified by:
                 :meth:`~org.orekit.propagation.AdditionalStateProvider.getName` in
                 interface :class:`~org.orekit.propagation.AdditionalStateProvider`
diff --git a/org-stubs/orekit/propagation/analytical/intelsat/__init__.pyi b/org-stubs/orekit/propagation/analytical/intelsat/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..cf03069115c9fdbbe691bc02016b300cdf4316e8
--- /dev/null
+++ b/org-stubs/orekit/propagation/analytical/intelsat/__init__.pyi
@@ -0,0 +1,470 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import java.util
+import org.hipparchus
+import org.hipparchus.analysis.differentiation
+import org.orekit.attitudes
+import org.orekit.frames
+import org.orekit.propagation
+import org.orekit.propagation.analytical
+import org.orekit.time
+import org.orekit.utils
+import typing
+
+
+
+_FieldIntelsatElevenElements__T = typing.TypeVar('_FieldIntelsatElevenElements__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldIntelsatElevenElements(typing.Generic[_FieldIntelsatElevenElements__T]):
+    """
+    public class FieldIntelsatElevenElements<T extends :class:`~org.orekit.propagation.analytical.intelsat.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.analytical.intelsat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        This class is a container for a single set of Intelsat's 11 Elements data.
+    
+        Intelsat's 11 elements are defined in ITU-R S.1525 standard.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldIntelsatElevenElements__T], t: _FieldIntelsatElevenElements__T, t2: _FieldIntelsatElevenElements__T, t3: _FieldIntelsatElevenElements__T, t4: _FieldIntelsatElevenElements__T, t5: _FieldIntelsatElevenElements__T, t6: _FieldIntelsatElevenElements__T, t7: _FieldIntelsatElevenElements__T, t8: _FieldIntelsatElevenElements__T, t9: _FieldIntelsatElevenElements__T, t10: _FieldIntelsatElevenElements__T, t11: _FieldIntelsatElevenElements__T): ...
+    def getEpoch(self) -> org.orekit.time.FieldAbsoluteDate[_FieldIntelsatElevenElements__T]: ...
+    def getLatC(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the latitude oscillation-amplitude for the cosine term.
+        
+            Returns:
+                the latitude oscillation-amplitude for the cosine term in degrees
+        
+        
+        """
+        ...
+    def getLatC1(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the rate of change of latitude, for the cosine term.
+        
+            Returns:
+                the rate of change of latitude, for the cosine term, in degrees/day
+        
+        
+        """
+        ...
+    def getLatS(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the latitude oscillation-amplitude for the sine term.
+        
+            Returns:
+                the latitude oscillation-amplitude for the sine term in degrees
+        
+        
+        """
+        ...
+    def getLatS1(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the rate of change of latitude, for the sine term.
+        
+            Returns:
+                the rate of change of latitude, for the sine term, in degrees/day
+        
+        
+        """
+        ...
+    def getLm0(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the mean longitude (East of Greenwich).
+        
+            Returns:
+                the mean longitude (East of Greenwich) in degrees
+        
+        
+        """
+        ...
+    def getLm1(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the drift rate.
+        
+            Returns:
+                the drift rate in degrees/day
+        
+        
+        """
+        ...
+    def getLm2(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the drift acceleration.
+        
+            Returns:
+                the drift acceleration in degrees/day/day
+        
+        
+        """
+        ...
+    def getLonC(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the longitude oscillation-amplitude for the cosine term.
+        
+            Returns:
+                the longitude oscillation-amplitude for the cosine term in degrees
+        
+        
+        """
+        ...
+    def getLonC1(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the rate of change of longitude, for the cosine term.
+        
+            Returns:
+                the rate of change of longitude, for the cosine term, in degrees/day
+        
+        
+        """
+        ...
+    def getLonS(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the longitude oscillation-amplitude for the sine term.
+        
+            Returns:
+                the longitude oscillation-amplitude for the sine term in degrees
+        
+        
+        """
+        ...
+    def getLonS1(self) -> _FieldIntelsatElevenElements__T:
+        """
+            Get the rate of change of longitude, for the sine term.
+        
+            Returns:
+                the rate of change of longitude, for the sine term, in degrees/day
+        
+        
+        """
+        ...
+
+_FieldIntelsatElevenElementsPropagator__T = typing.TypeVar('_FieldIntelsatElevenElementsPropagator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldIntelsatElevenElementsPropagator(org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator[_FieldIntelsatElevenElementsPropagator__T], typing.Generic[_FieldIntelsatElevenElementsPropagator__T]):
+    """
+    public class FieldIntelsatElevenElementsPropagator<T extends :class:`~org.orekit.propagation.analytical.intelsat.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.analytical.FieldAbstractAnalyticalPropagator`<T>
+    
+        This class provides elements to propagate Intelsat's 11 elements.
+    
+        Intelsat's 11 elements propagation is defined in ITU-R S.1525 standard.
+    
+        Since:
+            12.1
+    """
+    @typing.overload
+    def __init__(self, fieldIntelsatElevenElements: FieldIntelsatElevenElements[_FieldIntelsatElevenElementsPropagator__T]): ...
+    @typing.overload
+    def __init__(self, fieldIntelsatElevenElements: FieldIntelsatElevenElements[_FieldIntelsatElevenElementsPropagator__T], frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame): ...
+    @typing.overload
+    def __init__(self, fieldIntelsatElevenElements: FieldIntelsatElevenElements[_FieldIntelsatElevenElementsPropagator__T], frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame, attitudeProvider: org.orekit.attitudes.AttitudeProvider, t: _FieldIntelsatElevenElementsPropagator__T): ...
+    def getEastLongitudeDegrees(self) -> org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2[_FieldIntelsatElevenElementsPropagator__T]: ...
+    def getFrame(self) -> org.orekit.frames.Frame:
+        """
+            Get the frame in which the orbit is propagated.
+        
+            The propagation frame is the definition frame of the initial state, so this method should be called after this state has
+            been set, otherwise it may return null.
+            .
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.FieldPropagator.getFrame` in interface :class:`~org.orekit.propagation.FieldPropagator`
+        
+            Overrides:
+                :meth:`~org.orekit.propagation.FieldAbstractPropagator.getFrame` in
+                class :class:`~org.orekit.propagation.FieldAbstractPropagator`
+        
+            Returns:
+                frame in which the orbit is propagated
+        
+            Also see:
+                :meth:`~org.orekit.propagation.FieldPropagator.resetInitialState`
+        
+        
+        """
+        ...
+    def getGeocentricLatitudeDegrees(self) -> org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2[_FieldIntelsatElevenElementsPropagator__T]: ...
+    def getOrbitRadius(self) -> org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2[_FieldIntelsatElevenElementsPropagator__T]: ...
+    def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
+    def propagateInEcef(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldIntelsatElevenElementsPropagator__T]) -> org.orekit.utils.FieldPVCoordinates[_FieldIntelsatElevenElementsPropagator__T]: ...
+    def resetInitialState(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldIntelsatElevenElementsPropagator__T]) -> None: ...
+
+class IntelsatElevenElements:
+    """
+    public class IntelsatElevenElements extends :class:`~org.orekit.propagation.analytical.intelsat.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        This class is a container for a single set of Intelsat's 11 Elements data.
+    
+        Intelsat's 11 elements are defined in ITU-R S.1525 standard.
+    
+        Since:
+            12.1
+    """
+    SYNCHRONOUS_RADIUS_KM: typing.ClassVar[float] = ...
+    """
+    public static final double SYNCHRONOUS_RADIUS_KM
+    
+        Sun synchronous radius in kilometers.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    K: typing.ClassVar[float] = ...
+    """
+    public static final double K
+    
+        PI over 360.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    DRIFT_RATE_SHIFT_DEG_PER_DAY: typing.ClassVar[float] = ...
+    """
+    public static final double DRIFT_RATE_SHIFT_DEG_PER_DAY
+    
+        Longitude drift rate.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, double: float, double2: float, double3: float, double4: float, double5: float, double6: float, double7: float, double8: float, double9: float, double10: float, double11: float): ...
+    def getEpoch(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get the elements epoch.
+        
+            Returns:
+                elements epoch
+        
+        
+        """
+        ...
+    def getLatC(self) -> float:
+        """
+            Get the latitude oscillation-amplitude for the cosine term.
+        
+            Returns:
+                the latitude oscillation-amplitude for the cosine term in degrees
+        
+        
+        """
+        ...
+    def getLatC1(self) -> float:
+        """
+            Get the rate of change of latitude, for the cosine term.
+        
+            Returns:
+                the rate of change of latitude, for the cosine term, in degrees/day
+        
+        
+        """
+        ...
+    def getLatS(self) -> float:
+        """
+            Get the latitude oscillation-amplitude for the sine term.
+        
+            Returns:
+                the latitude oscillation-amplitude for the sine term in degrees
+        
+        
+        """
+        ...
+    def getLatS1(self) -> float:
+        """
+            Get the rate of change of latitude, for the sine term.
+        
+            Returns:
+                the rate of change of latitude, for the sine term, in degrees/day
+        
+        
+        """
+        ...
+    def getLm0(self) -> float:
+        """
+            Get the mean longitude (East of Greenwich).
+        
+            Returns:
+                the mean longitude (East of Greenwich) in degrees
+        
+        
+        """
+        ...
+    def getLm1(self) -> float:
+        """
+            Get the drift rate.
+        
+            Returns:
+                the drift rate in degrees/day
+        
+        
+        """
+        ...
+    def getLm2(self) -> float:
+        """
+            Get the drift acceleration.
+        
+            Returns:
+                the drift acceleration in degrees/day/day
+        
+        
+        """
+        ...
+    def getLonC(self) -> float:
+        """
+            Get the longitude oscillation-amplitude for the cosine term.
+        
+            Returns:
+                the longitude oscillation-amplitude for the cosine term in degrees
+        
+        
+        """
+        ...
+    def getLonC1(self) -> float:
+        """
+            Get the rate of change of longitude, for the cosine term.
+        
+            Returns:
+                the rate of change of longitude, for the cosine term, in degrees/day
+        
+        
+        """
+        ...
+    def getLonS(self) -> float:
+        """
+            Get the longitude oscillation-amplitude for the sine term.
+        
+            Returns:
+                the longitude oscillation-amplitude for the sine term in degrees
+        
+        
+        """
+        ...
+    def getLonS1(self) -> float:
+        """
+            Get the rate of change of longitude, for the sine term.
+        
+            Returns:
+                the rate of change of longitude, for the sine term, in degrees/day
+        
+        
+        """
+        ...
+
+class IntelsatElevenElementsPropagator(org.orekit.propagation.analytical.AbstractAnalyticalPropagator):
+    """
+    public class IntelsatElevenElementsPropagator extends :class:`~org.orekit.propagation.analytical.AbstractAnalyticalPropagator`
+    
+        This class provides elements to propagate Intelsat's 11 elements.
+    
+        Intelsat's 11 elements propagation is defined in ITU-R S.1525 standard.
+    
+        Since:
+            12.1
+    """
+    @typing.overload
+    def __init__(self, intelsatElevenElements: IntelsatElevenElements): ...
+    @typing.overload
+    def __init__(self, intelsatElevenElements: IntelsatElevenElements, frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame): ...
+    @typing.overload
+    def __init__(self, intelsatElevenElements: IntelsatElevenElements, frame: org.orekit.frames.Frame, frame2: org.orekit.frames.Frame, attitudeProvider: org.orekit.attitudes.AttitudeProvider, double: float): ...
+    def getEastLongitudeDegrees(self) -> org.hipparchus.analysis.differentiation.UnivariateDerivative2:
+        """
+            Get the computed satellite's east longitude.
+        
+            Returns:
+                the satellite's east longitude in degrees
+        
+        
+        """
+        ...
+    def getFrame(self) -> org.orekit.frames.Frame:
+        """
+            Get the frame in which the orbit is propagated.
+        
+            The propagation frame is the definition frame of the initial state, so this method should be called after this state has
+            been set, otherwise it may return null.
+            .
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.getFrame` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Overrides:
+                :meth:`~org.orekit.propagation.AbstractPropagator.getFrame` in
+                class :class:`~org.orekit.propagation.AbstractPropagator`
+        
+            Returns:
+                frame in which the orbit is propagated
+        
+            Also see:
+                :meth:`~org.orekit.propagation.Propagator.resetInitialState`
+        
+        
+        """
+        ...
+    def getGeocentricLatitudeDegrees(self) -> org.hipparchus.analysis.differentiation.UnivariateDerivative2:
+        """
+            Get the computed satellite's geocentric latitude.
+        
+            Returns:
+                the satellite's geocentric latitude in degrees
+        
+        
+        """
+        ...
+    def getOrbitRadius(self) -> org.hipparchus.analysis.differentiation.UnivariateDerivative2:
+        """
+            Get the computed satellite's orbit.
+        
+            Returns:
+                satellite's orbit radius in meters
+        
+        
+        """
+        ...
+    def propagateInEcef(self, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.utils.PVCoordinates:
+        """
+            Converts the Intelsat's 11 elements into Position/Velocity coordinates in ECEF.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): computation epoch
+        
+            Returns:
+                Position/Velocity coordinates in ECEF
+        
+        
+        """
+        ...
+    def resetInitialState(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
+        """
+            Reset the propagator initial state..
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.Propagator.resetInitialState` in interface :class:`~org.orekit.propagation.Propagator`
+        
+            Overrides:
+                :meth:`~org.orekit.propagation.AbstractPropagator.resetInitialState` in
+                class :class:`~org.orekit.propagation.AbstractPropagator`
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): new initial state to consider
+        
+        
+        """
+        ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.orekit.propagation.analytical.intelsat")``.
+
+    FieldIntelsatElevenElements: typing.Type[FieldIntelsatElevenElements]
+    FieldIntelsatElevenElementsPropagator: typing.Type[FieldIntelsatElevenElementsPropagator]
+    IntelsatElevenElements: typing.Type[IntelsatElevenElements]
+    IntelsatElevenElementsPropagator: typing.Type[IntelsatElevenElementsPropagator]
diff --git a/org-stubs/orekit/propagation/analytical/tle/__init__.pyi b/org-stubs/orekit/propagation/analytical/tle/__init__.pyi
index 825b340c9e59c03c608dba4a78265de7ce8894de..0bbcf4bb7702dab32e233ee26870cbc78ae4a3b3 100644
--- a/org-stubs/orekit/propagation/analytical/tle/__init__.pyi
+++ b/org-stubs/orekit/propagation/analytical/tle/__init__.pyi
@@ -491,9 +491,9 @@ class FieldTLEPropagator(org.orekit.propagation.analytical.FieldAbstractAnalytic
         """
         ...
     @typing.overload
-    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTLEPropagator__T], tArray: typing.Union[typing.List[_FieldTLEPropagator__T], jpype.JArray]) -> org.orekit.utils.FieldPVCoordinates[_FieldTLEPropagator__T]: ...
-    @typing.overload
     def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTLEPropagator__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldTLEPropagator__T]: ...
+    @typing.overload
+    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTLEPropagator__T], tArray: typing.Union[typing.List[_FieldTLEPropagator__T], jpype.JArray]) -> org.orekit.utils.FieldPVCoordinates[_FieldTLEPropagator__T]: ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def getTLE(self) -> FieldTLE[_FieldTLEPropagator__T]: ...
     def propagateOrbit(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTLEPropagator__T], tArray: typing.Union[typing.List[_FieldTLEPropagator__T], jpype.JArray]) -> org.orekit.orbits.FieldOrbit[_FieldTLEPropagator__T]: ...
@@ -1576,6 +1576,8 @@ class TLEPropagator(org.orekit.propagation.analytical.AbstractAnalyticalPropagat
         """
         ...
     @typing.overload
+    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates: ...
+    @typing.overload
     def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate) -> org.orekit.utils.PVCoordinates:
         """
             Get the extrapolated position and velocity from an initial TLE.
@@ -1589,11 +1591,10 @@ class TLEPropagator(org.orekit.propagation.analytical.AbstractAnalyticalPropagat
         
         """
         ...
-    @typing.overload
-    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates: ...
     def getTLE(self) -> TLE:
         """
-            Get the underlying TLE.
+            Get the underlying TLE. If there has been calls to #resetInitialState or #resetIntermediateState, it will not be the
+            same as given to the constructor.
         
             Returns:
                 underlying TLE
diff --git a/org-stubs/orekit/propagation/conversion/__init__.pyi b/org-stubs/orekit/propagation/conversion/__init__.pyi
index d20f92e3a6bc2c990f816d7fc9bcc6c6cfb827c4..b75c32d0b379c0fb5f9904b0e1b1f5c2addf3e96 100644
--- a/org-stubs/orekit/propagation/conversion/__init__.pyi
+++ b/org-stubs/orekit/propagation/conversion/__init__.pyi
@@ -21,6 +21,7 @@ import org.orekit.propagation
 import org.orekit.propagation.analytical
 import org.orekit.propagation.analytical.tle
 import org.orekit.propagation.analytical.tle.generation
+import org.orekit.propagation.conversion.averaging
 import org.orekit.propagation.integration
 import org.orekit.propagation.numerical
 import org.orekit.propagation.semianalytical.dsst
@@ -106,6 +107,7 @@ class PropagatorBuilder:
             6.0
     """
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List['PropagatorBuilder'], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.AbstractBatchLSModel: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.Propagator:
         """
             Build a propagator.
@@ -116,6 +118,16 @@ class PropagatorBuilder:
             Returns:
                 an initialized propagator
         
+        """
+        ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator:
+        """
+            Build a propagator from current value of selected normalized parameters.
+        
+            Returns:
+                an initialized propagator
+        
         
         """
         ...
@@ -990,6 +1002,9 @@ class BrouwerLyddanePropagatorBuilder(AbstractPropagatorBuilder):
     @typing.overload
     def __init__(self, orbit: org.orekit.orbits.Orbit, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider, positionAngleType: org.orekit.orbits.PositionAngleType, double: float, attitudeProvider: org.orekit.attitudes.AttitudeProvider, double2: float): ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.AbstractBatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.analytical.BrouwerLyddanePropagator:
         """
             Build a propagator.
@@ -1040,6 +1055,9 @@ class DSSTPropagatorBuilder(AbstractPropagatorBuilder):
         """
         ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.DSSTBatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.semianalytical.dsst.DSSTPropagator:
         """
             Build a propagator.
@@ -1145,6 +1163,9 @@ class EcksteinHechlerPropagatorBuilder(AbstractPropagatorBuilder):
     @typing.overload
     def __init__(self, orbit: org.orekit.orbits.Orbit, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider, positionAngleType: org.orekit.orbits.PositionAngleType, double: float, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.AbstractBatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.Propagator:
         """
             Build a propagator.
@@ -1179,6 +1200,8 @@ class EphemerisPropagatorBuilder(AbstractPropagatorBuilder):
             11.3
     """
     @typing.overload
+    def __init__(self, list: java.util.List[org.orekit.propagation.SpacecraftState], int: int, double: float, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
+    @typing.overload
     def __init__(self, list: java.util.List[org.orekit.propagation.SpacecraftState], timeInterpolator: org.orekit.time.TimeInterpolator[org.orekit.propagation.SpacecraftState]): ...
     @typing.overload
     def __init__(self, list: java.util.List[org.orekit.propagation.SpacecraftState], timeInterpolator: org.orekit.time.TimeInterpolator[org.orekit.propagation.SpacecraftState], list2: java.util.List[org.orekit.propagation.StateCovariance], timeInterpolator2: org.orekit.time.TimeInterpolator[org.orekit.time.TimeStampedPair[org.orekit.orbits.Orbit, org.orekit.propagation.StateCovariance]]): ...
@@ -1187,6 +1210,9 @@ class EphemerisPropagatorBuilder(AbstractPropagatorBuilder):
     @typing.overload
     def __init__(self, list: java.util.List[org.orekit.propagation.SpacecraftState], timeInterpolator: org.orekit.time.TimeInterpolator[org.orekit.propagation.SpacecraftState], attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.AbstractBatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.Propagator:
         """
             Build a propagator..
@@ -1247,6 +1273,9 @@ class KeplerianPropagatorBuilder(AbstractPropagatorBuilder):
     @typing.overload
     def __init__(self, orbit: org.orekit.orbits.Orbit, positionAngleType: org.orekit.orbits.PositionAngleType, double: float, attitudeProvider: org.orekit.attitudes.AttitudeProvider): ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.AbstractBatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.Propagator:
         """
             Build a propagator.
@@ -1297,6 +1326,9 @@ class NumericalPropagatorBuilder(AbstractPropagatorBuilder):
         """
         ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.BatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.numerical.NumericalPropagator:
         """
             Build a propagator.
@@ -1372,6 +1404,9 @@ class TLEPropagatorBuilder(AbstractPropagatorBuilder):
     @typing.overload
     def __init__(self, tLE: org.orekit.propagation.analytical.tle.TLE, positionAngleType: org.orekit.orbits.PositionAngleType, double: float, tleGenerationAlgorithm: org.orekit.propagation.analytical.tle.generation.TleGenerationAlgorithm): ...
     def buildLeastSquaresModel(self, propagatorBuilderArray: typing.Union[typing.List[PropagatorBuilder], jpype.JArray], list: java.util.List[org.orekit.estimation.measurements.ObservedMeasurement[typing.Any]], parameterDriversList: org.orekit.utils.ParameterDriversList, modelObserver: typing.Union[org.orekit.estimation.leastsquares.ModelObserver, typing.Callable]) -> org.orekit.estimation.leastsquares.AbstractBatchLSModel: ...
+    @typing.overload
+    def buildPropagator(self) -> org.orekit.propagation.Propagator: ...
+    @typing.overload
     def buildPropagator(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> org.orekit.propagation.analytical.tle.TLEPropagator:
         """
             Build a propagator.
@@ -1656,3 +1691,4 @@ class __module_protocol__(Protocol):
     TLEPropagatorBuilder: typing.Type[TLEPropagatorBuilder]
     ThreeEighthesFieldIntegratorBuilder: typing.Type[ThreeEighthesFieldIntegratorBuilder]
     ThreeEighthesIntegratorBuilder: typing.Type[ThreeEighthesIntegratorBuilder]
+    averaging: org.orekit.propagation.conversion.averaging.__module_protocol__
diff --git a/org-stubs/orekit/propagation/conversion/averaging/__init__.pyi b/org-stubs/orekit/propagation/conversion/averaging/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..8e805ed84a84ea7dee42d14838c573226f3f653a
--- /dev/null
+++ b/org-stubs/orekit/propagation/conversion/averaging/__init__.pyi
@@ -0,0 +1,423 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import java.util
+import org
+import org.orekit.data
+import org.orekit.forces.gravity.potential
+import org.orekit.frames
+import org.orekit.orbits
+import org.orekit.propagation.analytical.tle
+import org.orekit.propagation.conversion.averaging.converters
+import org.orekit.propagation.conversion.averaging.elements
+import org.orekit.propagation.semianalytical.dsst.forces
+import org.orekit.time
+import typing
+
+
+
+class AveragedOrbitalState(org.orekit.time.TimeStamped):
+    """
+    public interface AveragedOrbitalState extends :class:`~org.orekit.time.TimeStamped`
+    
+        Interface representing averaged orbital elements at a specific instant. Inheritors shall implement a conversion method
+        to transform into an osculating :class:`~org.orekit.orbits.Orbit`.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.time.TimeStamped`,
+            :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    """
+    def getAveragedElements(self) -> org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements:
+        """
+            Getter for the averaged orbital elements.
+        
+            Returns:
+                averaged elements
+        
+        
+        """
+        ...
+    def getDate(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get the date.
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
+        
+            Returns:
+                date attached to the object
+        
+        
+        """
+        ...
+    def getFrame(self) -> org.orekit.frames.Frame:
+        """
+            Getter for the reference frame.
+        
+            Returns:
+                frame
+        
+        
+        """
+        ...
+    def getMu(self) -> float:
+        """
+            Getter for the central body's gravitational constant.
+        
+            Returns:
+                gravitational constant
+        
+        
+        """
+        ...
+    def getOrbitType(self) -> org.orekit.orbits.OrbitType:
+        """
+            Getter for the averaged orbit type.
+        
+            Returns:
+                orbit type
+        
+        
+        """
+        ...
+    def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
+        """
+            Getter for the averaged position angle.
+        
+            Returns:
+                position angle type
+        
+        
+        """
+        ...
+    def toOsculatingOrbit(self) -> org.orekit.orbits.Orbit:
+        """
+            Convert instance to an osculating orbit.
+        
+            Returns:
+                osculating orbit
+        
+        
+        """
+        ...
+
+class AbstractAveragedOrbitalState(AveragedOrbitalState):
+    """
+    public abstract class AbstractAveragedOrbitalState extends :class:`~org.orekit.propagation.conversion.averaging.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`
+    
+        Abstract class representing averaged orbital state. It is used to define the frame and the date.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`
+    """
+    def getDate(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Get the date.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState.getDate` in
+                interface :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
+        
+            Returns:
+                date attached to the object
+        
+        
+        """
+        ...
+    def getFrame(self) -> org.orekit.frames.Frame:
+        """
+            Getter for the reference frame.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState.getFrame` in
+                interface :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`
+        
+            Returns:
+                frame
+        
+        
+        """
+        ...
+
+class SGP4OrbitalState(AbstractAveragedOrbitalState):
+    """
+    public class SGP4OrbitalState extends :class:`~org.orekit.propagation.conversion.averaging.AbstractAveragedOrbitalState`
+    
+        Class representing an averaged orbital state as in the TLE-related theory. Note it is the averaged mean motion that is
+        written in a Two-Line Element and that, for now, conversions back and forth to averaged semi-major axis are approximated
+        with the osculating ones.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`,
+            :class:`~org.orekit.propagation.analytical.tle.TLEPropagator`
+    """
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, averagedKeplerianWithMeanAngle: org.orekit.propagation.conversion.averaging.elements.AveragedKeplerianWithMeanAngle): ...
+    @typing.overload
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, averagedKeplerianWithMeanAngle: org.orekit.propagation.conversion.averaging.elements.AveragedKeplerianWithMeanAngle, dataContext: org.orekit.data.DataContext): ...
+    def getAveragedElements(self) -> org.orekit.propagation.conversion.averaging.elements.AveragedKeplerianWithMeanAngle:
+        """
+            Getter for the averaged orbital elements.
+        
+            Returns:
+                averaged elements
+        
+        
+        """
+        ...
+    def getMu(self) -> float:
+        """
+            Getter for the central body's gravitational constant.
+        
+            Returns:
+                gravitational constant
+        
+        
+        """
+        ...
+    def getOrbitType(self) -> org.orekit.orbits.OrbitType:
+        """
+            Getter for the averaged orbit type.
+        
+            Returns:
+                orbit type
+        
+        
+        """
+        ...
+    def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
+        """
+            Getter for the averaged position angle.
+        
+            Returns:
+                position angle type
+        
+        
+        """
+        ...
+    @staticmethod
+    def of(tLE: org.orekit.propagation.analytical.tle.TLE, frame: org.orekit.frames.Frame) -> 'SGP4OrbitalState':
+        """
+            Static constructor. Input frame is implicitly assumed to be TEME (it is not checked).
+        
+            Parameters:
+                tle (:class:`~org.orekit.propagation.analytical.tle.TLE`): TLE
+                teme (:class:`~org.orekit.frames.Frame`): TEME frame (not checked)
+        
+            Returns:
+                TLE-based averaged orbital state
+        
+        
+        """
+        ...
+    def toOsculatingOrbit(self) -> org.orekit.orbits.Orbit:
+        """
+            Convert instance to an osculating orbit.
+        
+            Returns:
+                osculating orbit
+        
+        
+        """
+        ...
+
+class BrouwerLyddaneOrbitalState(org.orekit.propagation.conversion.averaging.AbstractHarmonicsBasedOrbitalState):
+    """
+    public class BrouwerLyddaneOrbitalState extends :class:`~org.orekit.propagation.conversion.averaging.AbstractAveragedOrbitalState`
+    
+        Class representing an averaged orbital state as in the Brouwer-Lyddane theory.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`,
+            :class:`~org.orekit.propagation.analytical.BrouwerLyddanePropagator`
+    """
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, averagedKeplerianWithMeanAngle: org.orekit.propagation.conversion.averaging.elements.AveragedKeplerianWithMeanAngle, frame: org.orekit.frames.Frame, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    def getAveragedElements(self) -> org.orekit.propagation.conversion.averaging.elements.AveragedKeplerianWithMeanAngle:
+        """
+            Getter for the averaged orbital elements.
+        
+            Returns:
+                averaged elements
+        
+        
+        """
+        ...
+    def getOrbitType(self) -> org.orekit.orbits.OrbitType:
+        """
+            Getter for the averaged orbit type.
+        
+            Returns:
+                orbit type
+        
+        
+        """
+        ...
+    def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
+        """
+            Getter for the averaged position angle.
+        
+            Returns:
+                position angle type
+        
+        
+        """
+        ...
+    def toOsculatingOrbit(self) -> org.orekit.orbits.Orbit:
+        """
+            Convert instance to an osculating orbit.
+        
+            Returns:
+                osculating orbit
+        
+        
+        """
+        ...
+
+class DSST6X0OrbitalState(org.orekit.propagation.conversion.averaging.AbstractHarmonicsBasedOrbitalState):
+    """
+    public class DSST6X0OrbitalState extends :class:`~org.orekit.propagation.conversion.averaging.AbstractAveragedOrbitalState`
+    
+        Class representing an averaged orbital state as in the DSST theory using only the first 6 zonal harmonics as
+        perturbations.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`,
+            :class:`~org.orekit.propagation.semianalytical.dsst.DSSTPropagator`,
+            :class:`~org.orekit.propagation.semianalytical.dsst.forces.DSSTZonal`
+    """
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, averagedEquinoctialWithMeanAngle: org.orekit.propagation.conversion.averaging.elements.AveragedEquinoctialWithMeanAngle, frame: org.orekit.frames.Frame, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    @staticmethod
+    def createForces(unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider) -> java.util.Collection[org.orekit.propagation.semianalytical.dsst.forces.DSSTForceModel]: ...
+    def getAveragedElements(self) -> org.orekit.propagation.conversion.averaging.elements.AveragedEquinoctialWithMeanAngle:
+        """
+            Getter for the averaged orbital elements.
+        
+            Returns:
+                averaged elements
+        
+        
+        """
+        ...
+    def getOrbitType(self) -> org.orekit.orbits.OrbitType:
+        """
+            Getter for the averaged orbit type.
+        
+            Returns:
+                orbit type
+        
+        
+        """
+        ...
+    def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
+        """
+            Getter for the averaged position angle.
+        
+            Returns:
+                position angle type
+        
+        
+        """
+        ...
+    def toOsculatingOrbit(self) -> org.orekit.orbits.Orbit:
+        """
+            Convert instance to an osculating orbit.
+        
+            Returns:
+                osculating orbit
+        
+        
+        """
+        ...
+
+class EcksteinHechlerOrbitalState(org.orekit.propagation.conversion.averaging.AbstractHarmonicsBasedOrbitalState):
+    """
+    public class EcksteinHechlerOrbitalState extends :class:`~org.orekit.propagation.conversion.averaging.AbstractAveragedOrbitalState`
+    
+        Class representing an averaged orbital state as in the Eckstein-Hechler theory.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`,
+            :class:`~org.orekit.propagation.analytical.EcksteinHechlerPropagator`
+    """
+    def __init__(self, absoluteDate: org.orekit.time.AbsoluteDate, averagedCircularWithMeanAngle: org.orekit.propagation.conversion.averaging.elements.AveragedCircularWithMeanAngle, frame: org.orekit.frames.Frame, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    def getAveragedElements(self) -> org.orekit.propagation.conversion.averaging.elements.AveragedCircularWithMeanAngle:
+        """
+            Getter for the averaged orbital elements.
+        
+            Returns:
+                averaged elements
+        
+        
+        """
+        ...
+    def getOrbitType(self) -> org.orekit.orbits.OrbitType:
+        """
+            Getter for the averaged orbit type.
+        
+            Returns:
+                orbit type
+        
+        
+        """
+        ...
+    def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
+        """
+            Getter for the averaged position angle.
+        
+            Returns:
+                position angle type
+        
+        
+        """
+        ...
+    def toOsculatingOrbit(self) -> org.orekit.orbits.Orbit:
+        """
+            Convert instance to an osculating orbit.
+        
+            Returns:
+                osculating orbit
+        
+        
+        """
+        ...
+
+class AbstractHarmonicsBasedOrbitalState: ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.orekit.propagation.conversion.averaging")``.
+
+    AbstractAveragedOrbitalState: typing.Type[AbstractAveragedOrbitalState]
+    AbstractHarmonicsBasedOrbitalState: typing.Type[AbstractHarmonicsBasedOrbitalState]
+    AveragedOrbitalState: typing.Type[AveragedOrbitalState]
+    BrouwerLyddaneOrbitalState: typing.Type[BrouwerLyddaneOrbitalState]
+    DSST6X0OrbitalState: typing.Type[DSST6X0OrbitalState]
+    EcksteinHechlerOrbitalState: typing.Type[EcksteinHechlerOrbitalState]
+    SGP4OrbitalState: typing.Type[SGP4OrbitalState]
+    converters: org.orekit.propagation.conversion.averaging.converters.__module_protocol__
+    elements: org.orekit.propagation.conversion.averaging.elements.__module_protocol__
diff --git a/org-stubs/orekit/propagation/conversion/averaging/converters/__init__.pyi b/org-stubs/orekit/propagation/conversion/averaging/converters/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..c50d23e89e05a8f11fbdfb84be6de94115fa0b1f
--- /dev/null
+++ b/org-stubs/orekit/propagation/conversion/averaging/converters/__init__.pyi
@@ -0,0 +1,255 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import org.orekit.data
+import org.orekit.forces.gravity.potential
+import org.orekit.orbits
+import org.orekit.propagation.conversion.averaging
+import typing
+
+
+
+_OsculatingToAveragedConverter__T = typing.TypeVar('_OsculatingToAveragedConverter__T', bound=org.orekit.propagation.conversion.averaging.AveragedOrbitalState)  # <T>
+class OsculatingToAveragedConverter(typing.Generic[_OsculatingToAveragedConverter__T]):
+    """
+    public interface OsculatingToAveragedConverter<T extends :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`>
+    
+        Interface for osculating-to-averaged converters.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`
+    """
+    def convertToAveraged(self, orbit: org.orekit.orbits.Orbit) -> _OsculatingToAveragedConverter__T:
+        """
+            Convert osculating orbit to averaged orbital state according to underlying theory.
+        
+            Parameters:
+                osculatingOrbit (:class:`~org.orekit.orbits.Orbit`): osculating orbit
+        
+            Returns:
+                averaged orbital state
+        
+        
+        """
+        ...
+
+_FixedPointOsculatingToAveragedConverter__T = typing.TypeVar('_FixedPointOsculatingToAveragedConverter__T', bound=org.orekit.propagation.conversion.averaging.AveragedOrbitalState)  # <T>
+class FixedPointOsculatingToAveragedConverter(OsculatingToAveragedConverter[_FixedPointOsculatingToAveragedConverter__T], typing.Generic[_FixedPointOsculatingToAveragedConverter__T]):
+    """
+    public abstract class FixedPointOsculatingToAveragedConverter<T extends :class:`~org.orekit.propagation.conversion.averaging.AveragedOrbitalState`> extends :class:`~org.orekit.propagation.conversion.averaging.converters.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.conversion.averaging.converters.OsculatingToAveragedConverter`<T>
+    
+        Abstract class for osculating-to-averaged converters based on a fixed-point algorithm.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.converters.OsculatingToAveragedConverter`
+    """
+    DEFAULT_EPSILON: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_EPSILON
+    
+        Default convergence threshold.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    DEFAULT_MAX_ITERATIONS: typing.ClassVar[int] = ...
+    """
+    public static final int DEFAULT_MAX_ITERATIONS
+    
+        Default maximum number of iterations.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    def getEpsilon(self) -> float:
+        """
+            Getter for the convergence threshold.
+        
+            Returns:
+                convergence threshold
+        
+        
+        """
+        ...
+    def getMaxIterations(self) -> int:
+        """
+            Getter for the maximum number of iterations.
+        
+            Returns:
+                maximum number of iterations
+        
+        
+        """
+        ...
+    def setEpsilon(self, double: float) -> None:
+        """
+            Setter for epsilon.
+        
+            Parameters:
+                epsilon (double): convergence threshold.
+        
+        
+        """
+        ...
+    def setMaxIterations(self, int: int) -> None:
+        """
+            Setter for maximum number of iterations.
+        
+            Parameters:
+                maxIterations (int): maximum iterations
+        
+        
+        """
+        ...
+
+class OsculatingToBrouwerLyddaneConverter(FixedPointOsculatingToAveragedConverter[org.orekit.propagation.conversion.averaging.BrouwerLyddaneOrbitalState]):
+    """
+    public class OsculatingToBrouwerLyddaneConverter extends :class:`~org.orekit.propagation.conversion.averaging.converters.FixedPointOsculatingToAveragedConverter`<:class:`~org.orekit.propagation.conversion.averaging.BrouwerLyddaneOrbitalState`>
+    
+        Class for osculating-to-averaged conversion according to Brouwer-Lyddane theory. Value of M2 parameter is set to zero.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.analytical.BrouwerLyddanePropagator`,
+            :class:`~org.orekit.propagation.conversion.averaging.BrouwerLyddaneOrbitalState`
+    """
+    @typing.overload
+    def __init__(self, double: float, int: int, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    @typing.overload
+    def __init__(self, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    def convertToAveraged(self, orbit: org.orekit.orbits.Orbit) -> org.orekit.propagation.conversion.averaging.BrouwerLyddaneOrbitalState:
+        """
+            Convert osculating orbit to averaged orbital state according to underlying theory.
+        
+            Parameters:
+                osculatingOrbit (:class:`~org.orekit.orbits.Orbit`): osculating orbit
+        
+            Returns:
+                averaged orbital state
+        
+        
+        """
+        ...
+
+class OsculatingToDSST6X0Converter(FixedPointOsculatingToAveragedConverter[org.orekit.propagation.conversion.averaging.DSST6X0OrbitalState]):
+    """
+    public class OsculatingToDSST6X0Converter extends :class:`~org.orekit.propagation.conversion.averaging.converters.FixedPointOsculatingToAveragedConverter`<:class:`~org.orekit.propagation.conversion.averaging.DSST6X0OrbitalState`>
+    
+        Class for osculating-to-averaged conversion according to DSST theory, using 6 zonal harmonics as the only perturbations.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.semianalytical.dsst.DSSTPropagator`,
+            :class:`~org.orekit.propagation.conversion.averaging.DSST6X0OrbitalState`
+    """
+    @typing.overload
+    def __init__(self, double: float, int: int, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    @typing.overload
+    def __init__(self, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    def convertToAveraged(self, orbit: org.orekit.orbits.Orbit) -> org.orekit.propagation.conversion.averaging.DSST6X0OrbitalState:
+        """
+            Convert osculating orbit to averaged orbital state according to underlying theory.
+        
+            Parameters:
+                osculatingOrbit (:class:`~org.orekit.orbits.Orbit`): osculating orbit
+        
+            Returns:
+                averaged orbital state
+        
+        
+        """
+        ...
+
+class OsculatingToEcksteinHechlerConverter(FixedPointOsculatingToAveragedConverter[org.orekit.propagation.conversion.averaging.EcksteinHechlerOrbitalState]):
+    """
+    public class OsculatingToEcksteinHechlerConverter extends :class:`~org.orekit.propagation.conversion.averaging.converters.FixedPointOsculatingToAveragedConverter`<:class:`~org.orekit.propagation.conversion.averaging.EcksteinHechlerOrbitalState`>
+    
+        Class for osculating-to-averaged conversion according to Eckstein-Hechler theory.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.analytical.EcksteinHechlerPropagator`,
+            :class:`~org.orekit.propagation.conversion.averaging.EcksteinHechlerOrbitalState`
+    """
+    @typing.overload
+    def __init__(self, double: float, int: int, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    @typing.overload
+    def __init__(self, unnormalizedSphericalHarmonicsProvider: org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider): ...
+    def convertToAveraged(self, orbit: org.orekit.orbits.Orbit) -> org.orekit.propagation.conversion.averaging.EcksteinHechlerOrbitalState:
+        """
+            Convert osculating orbit to averaged orbital state according to underlying theory.
+        
+            Parameters:
+                osculatingOrbit (:class:`~org.orekit.orbits.Orbit`): osculating orbit
+        
+            Returns:
+                averaged orbital state
+        
+        
+        """
+        ...
+
+class OsculatingToSGP4Converter(FixedPointOsculatingToAveragedConverter[org.orekit.propagation.conversion.averaging.SGP4OrbitalState]):
+    """
+    public class OsculatingToSGP4Converter extends :class:`~org.orekit.propagation.conversion.averaging.converters.FixedPointOsculatingToAveragedConverter`<:class:`~org.orekit.propagation.conversion.averaging.SGP4OrbitalState`>
+    
+        Class for osculating-to-averaged conversion according to "SGP4" theory, meant as the set of models associated to
+        Two-Line Elements.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.analytical.tle.TLEPropagator`,
+            :class:`~org.orekit.propagation.conversion.averaging.SGP4OrbitalState`
+    """
+    @typing.overload
+    def __init__(self): ...
+    @typing.overload
+    def __init__(self, double: float, int: int, double2: float, dataContext: org.orekit.data.DataContext): ...
+    @typing.overload
+    def __init__(self, dataContext: org.orekit.data.DataContext): ...
+    def convertToAveraged(self, orbit: org.orekit.orbits.Orbit) -> org.orekit.propagation.conversion.averaging.SGP4OrbitalState:
+        """
+            Convert osculating orbit to averaged orbital state according to underlying theory.
+        
+            Parameters:
+                osculatingOrbit (:class:`~org.orekit.orbits.Orbit`): osculating orbit
+        
+            Returns:
+                averaged orbital state
+        
+        
+        """
+        ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.orekit.propagation.conversion.averaging.converters")``.
+
+    FixedPointOsculatingToAveragedConverter: typing.Type[FixedPointOsculatingToAveragedConverter]
+    OsculatingToAveragedConverter: typing.Type[OsculatingToAveragedConverter]
+    OsculatingToBrouwerLyddaneConverter: typing.Type[OsculatingToBrouwerLyddaneConverter]
+    OsculatingToDSST6X0Converter: typing.Type[OsculatingToDSST6X0Converter]
+    OsculatingToEcksteinHechlerConverter: typing.Type[OsculatingToEcksteinHechlerConverter]
+    OsculatingToSGP4Converter: typing.Type[OsculatingToSGP4Converter]
diff --git a/org-stubs/orekit/propagation/conversion/averaging/elements/__init__.pyi b/org-stubs/orekit/propagation/conversion/averaging/elements/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..4cd52ff41ca34e532511aa5dba57decdfdce8030
--- /dev/null
+++ b/org-stubs/orekit/propagation/conversion/averaging/elements/__init__.pyi
@@ -0,0 +1,306 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import typing
+
+
+
+class AveragedOrbitalElements:
+    """
+    public interface AveragedOrbitalElements
+    
+        Interface for storing averaged orbital elements.
+    
+        Since:
+            12.1
+    """
+    def toArray(self) -> typing.MutableSequence[float]:
+        """
+            Write values from instance into an array of doubles.
+        
+            Returns:
+                array with values
+        
+        
+        """
+        ...
+
+class AveragedCircularWithMeanAngle(AveragedOrbitalElements):
+    """
+    public class AveragedCircularWithMeanAngle extends :class:`~org.orekit.propagation.conversion.averaging.elements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    
+        Immutable class containing values of averaged circular elements from any applicable theory (with MEAN as
+        :class:`~org.orekit.orbits.PositionAngleType`).
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float): ...
+    def getAveragedCircularEx(self) -> float:
+        """
+            Getter for averaged circular ex.
+        
+            Returns:
+                ex
+        
+        
+        """
+        ...
+    def getAveragedCircularEy(self) -> float:
+        """
+            Getter for averaged circular ey.
+        
+            Returns:
+                ey
+        
+        
+        """
+        ...
+    def getAveragedInclination(self) -> float:
+        """
+            Getter for averaged inclination.
+        
+            Returns:
+                inclination
+        
+        
+        """
+        ...
+    def getAveragedMeanLatitudeArgument(self) -> float:
+        """
+            Getter for averaged mean latitude argument.
+        
+            Returns:
+                mean latitude argument
+        
+        
+        """
+        ...
+    def getAveragedRightAscensionOfTheAscendingNode(self) -> float:
+        """
+            Getter for averaged RAAN.
+        
+            Returns:
+                RAAN
+        
+        
+        """
+        ...
+    def getAveragedSemiMajorAxis(self) -> float:
+        """
+            Getter for averaged semi-major axis.
+        
+            Returns:
+                semi-major axis.
+        
+        
+        """
+        ...
+    def toArray(self) -> typing.MutableSequence[float]:
+        """
+            Write values from instance into an array of doubles.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements.toArray` in
+                interface :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+        
+            Returns:
+                array with values
+        
+        
+        """
+        ...
+
+class AveragedEquinoctialWithMeanAngle(AveragedOrbitalElements):
+    """
+    public class AveragedEquinoctialWithMeanAngle extends :class:`~org.orekit.propagation.conversion.averaging.elements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    
+        Immutable class containing values of averaged equinoctial elements from any applicable theory (with MEAN as
+        :class:`~org.orekit.orbits.PositionAngleType`).
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float): ...
+    def getAveragedEquinoctialEx(self) -> float:
+        """
+            Getter for the averaged equinoctial ex.
+        
+            Returns:
+                ex
+        
+        
+        """
+        ...
+    def getAveragedEquinoctialEy(self) -> float:
+        """
+            Getter for the averaged equinoctial ey.
+        
+            Returns:
+                ey
+        
+        
+        """
+        ...
+    def getAveragedHx(self) -> float:
+        """
+            Getter for the averaged hx.
+        
+            Returns:
+                hx
+        
+        
+        """
+        ...
+    def getAveragedHy(self) -> float:
+        """
+            Getter for the averaged hy.
+        
+            Returns:
+                hy
+        
+        
+        """
+        ...
+    def getAveragedMeanLongitudeArgument(self) -> float:
+        """
+            Getter for the averaged mean longitude argument.
+        
+            Returns:
+                mean longitude argument
+        
+        
+        """
+        ...
+    def getAveragedSemiMajorAxis(self) -> float:
+        """
+            Getter for the averaged semi-major axis.
+        
+            Returns:
+                semi-major axis.
+        
+        
+        """
+        ...
+    def toArray(self) -> typing.MutableSequence[float]:
+        """
+            Write values from instance into an array of doubles.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements.toArray` in
+                interface :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+        
+            Returns:
+                array with values
+        
+        
+        """
+        ...
+
+class AveragedKeplerianWithMeanAngle(AveragedOrbitalElements):
+    """
+    public class AveragedKeplerianWithMeanAngle extends :class:`~org.orekit.propagation.conversion.averaging.elements.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    
+        Immutable class containing values of averaged Keplerian elements from any applicable theory (with MEAN as
+        :class:`~org.orekit.orbits.PositionAngleType`).
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+    """
+    def __init__(self, double: float, double2: float, double3: float, double4: float, double5: float, double6: float): ...
+    def getAveragedEccentricity(self) -> float:
+        """
+            Getter for the averaged eccentricity.
+        
+            Returns:
+                eccentricity
+        
+        
+        """
+        ...
+    def getAveragedInclination(self) -> float:
+        """
+            Getter for the averaged inclination.
+        
+            Returns:
+                inclination
+        
+        
+        """
+        ...
+    def getAveragedMeanAnomaly(self) -> float:
+        """
+            Getter for the averaged mean anomaly.
+        
+            Returns:
+                mean anomaly
+        
+        
+        """
+        ...
+    def getAveragedPerigeeArgument(self) -> float:
+        """
+            Getter for the averaged perigee argument.
+        
+            Returns:
+                perigee argument.
+        
+        
+        """
+        ...
+    def getAveragedRightAscensionOfTheAscendingNode(self) -> float:
+        """
+            Getter for the averaged RAAN.
+        
+            Returns:
+                RAAN
+        
+        
+        """
+        ...
+    def getAveragedSemiMajorAxis(self) -> float:
+        """
+            Getter for the averaged semi-major axis.
+        
+            Returns:
+                semi-major axis
+        
+        
+        """
+        ...
+    def toArray(self) -> typing.MutableSequence[float]:
+        """
+            Write values from instance into an array of doubles.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements.toArray` in
+                interface :class:`~org.orekit.propagation.conversion.averaging.elements.AveragedOrbitalElements`
+        
+            Returns:
+                array with values
+        
+        
+        """
+        ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.orekit.propagation.conversion.averaging.elements")``.
+
+    AveragedCircularWithMeanAngle: typing.Type[AveragedCircularWithMeanAngle]
+    AveragedEquinoctialWithMeanAngle: typing.Type[AveragedEquinoctialWithMeanAngle]
+    AveragedKeplerianWithMeanAngle: typing.Type[AveragedKeplerianWithMeanAngle]
+    AveragedOrbitalElements: typing.Type[AveragedOrbitalElements]
diff --git a/org-stubs/orekit/propagation/events/__init__.pyi b/org-stubs/orekit/propagation/events/__init__.pyi
index 10c1f9de1e1e04c4c6e003a1103688188ea62f2c..2b2e8b78ed93e2cf1de6cd1fecbf0d735302c8df 100644
--- a/org-stubs/orekit/propagation/events/__init__.pyi
+++ b/org-stubs/orekit/propagation/events/__init__.pyi
@@ -21,6 +21,7 @@ import org.orekit.models.earth
 import org.orekit.orbits
 import org.orekit.propagation
 import org.orekit.propagation.events.handlers
+import org.orekit.propagation.events.intervals
 import org.orekit.propagation.sampling
 import org.orekit.time
 import org.orekit.utils
@@ -51,6 +52,23 @@ class AdaptableInterval:
                 current value of maximal time interval between events handler checks
         
         
+        """
+        ...
+    @staticmethod
+    def of(double: float) -> 'AdaptableInterval':
+        """
+            Method creating a constant interval provider.
+        
+            Parameters:
+                constantInterval (double): value of constant interval
+        
+            Returns:
+                adaptable interval ready to be added to an event detector
+        
+            Since:
+                12.1
+        
+        
         """
         ...
 
@@ -401,6 +419,24 @@ class FieldAdaptableInterval(typing.Generic[_FieldAdaptableInterval__T]):
             :class:`~org.orekit.propagation.events.FieldEventDetector`
     """
     def currentInterval(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldAdaptableInterval__T]) -> float: ...
+    _of__T = typing.TypeVar('_of__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @staticmethod
+    def of(double: float) -> 'FieldAdaptableInterval'[_of__T]:
+        """
+            Method creating a constant interval provider.
+        
+            Parameters:
+                constantInterval (double): value of constant interval
+        
+            Returns:
+                adaptable interval ready to be added to an event detector
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
 
 _FieldEnablingPredicate__T = typing.TypeVar('_FieldEnablingPredicate__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldEnablingPredicate(typing.Generic[_FieldEnablingPredicate__T]):
@@ -1587,9 +1623,13 @@ class ApsideDetector(AbstractDetector['ApsideDetector']):
             :meth:`~org.orekit.propagation.Propagator.addEventDetector`
     """
     @typing.overload
+    def __init__(self, double: float): ...
+    @typing.overload
     def __init__(self, double: float, orbit: org.orekit.orbits.Orbit): ...
     @typing.overload
     def __init__(self, orbit: org.orekit.orbits.Orbit): ...
+    @typing.overload
+    def __init__(self, adaptableInterval: typing.Union[AdaptableInterval, typing.Callable], double: float, int: int, eventHandler: typing.Union[org.orekit.propagation.events.handlers.EventHandler, typing.Callable]): ...
     def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
         """
             Compute the value of the switching function. This function computes the dot product of the 2 vectors :
@@ -1613,6 +1653,163 @@ class ApsideDetector(AbstractDetector['ApsideDetector']):
         """
         ...
 
+class BetaAngleDetector(AbstractDetector['BetaAngleDetector']):
+    """
+    public class BetaAngleDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.BetaAngleDetector`>
+    
+        Finder for beta angle crossing events.
+    
+        Locate events when the beta angle (the angle between the orbit plane and the celestial body) crosses a threshold. The
+        :meth:`~org.orekit.propagation.events.BetaAngleDetector.g` function is negative when the beta angle is above the
+        threshold and positive when the beta angle is below the threshold.
+    
+        The inertial frame provided must have it's origin centered at the satellite's orbit plane. The beta angle is computed as
+        the angle between the celestial body's position in this frame with the satellite's orbital momentum vector.
+    
+        The default implementation behavior is to
+        :meth:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+        propagation at the first event date occurrence. This can be changed by calling
+        :meth:`~org.orekit.propagation.events.AbstractDetector.withHandler` after construction.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~org.orekit.propagation.Propagator.addEventDetector`
+    """
+    @typing.overload
+    def __init__(self, double: float): ...
+    @typing.overload
+    def __init__(self, double: float, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame): ...
+    @typing.overload
+    @staticmethod
+    def calculateBetaAngle(spacecraftState: org.orekit.propagation.SpacecraftState, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable]) -> float:
+        """
+            Calculate the beta angle between the orbit plane and the celestial body.
+        
+            This method computes the beta angle using the frame from the spacecraft state.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state
+                celestialBodyProvider (:class:`~org.orekit.utils.PVCoordinatesProvider`): celestial body coordinate provider
+        
+            Returns:
+                the beta angle (radians)
+        
+            Calculate the beta angle between the orbit plane and the celestial body.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.SpacecraftState`): spacecraft state
+                celestialBodyProvider (:class:`~org.orekit.utils.PVCoordinatesProvider`): celestial body coordinate provider
+                frame (:class:`~org.orekit.frames.Frame`): inertial frame in which beta angle will be computed
+        
+            Returns:
+                the beta angle (radians)
+        
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def calculateBetaAngle(spacecraftState: org.orekit.propagation.SpacecraftState, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], frame: org.orekit.frames.Frame) -> float: ...
+    def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
+        """
+            Compute the value of the switching function. This function must be continuous (at least in its roots neighborhood), as
+            the integrator will need to find its roots to locate the events.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.EventDetector.g` in
+                interface :class:`~org.orekit.propagation.events.EventDetector`
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.AbstractDetector.g` in
+                class :class:`~org.orekit.propagation.events.AbstractDetector`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): the current state information: date, kinematics, attitude
+        
+            Returns:
+                value of the switching function
+        
+        
+        """
+        ...
+    def getBetaAngleThreshold(self) -> float:
+        """
+            The beta angle threshold (radians).
+        
+            Returns:
+                the beta angle threshold (radians)
+        
+        
+        """
+        ...
+    def getCelestialBodyProvider(self) -> org.orekit.utils.PVCoordinatesProvider:
+        """
+            Coordinate provider for the celestial body.
+        
+            Returns:
+                celestial body's coordinate provider
+        
+        
+        """
+        ...
+    def getInertialFrame(self) -> org.orekit.frames.Frame:
+        """
+            The inertial frame in which beta angle is computed.
+        
+            Returns:
+                the inertial frame
+        
+        
+        """
+        ...
+    def withBetaThreshold(self, double: float) -> 'BetaAngleDetector':
+        """
+            Create a new instance with the provided beta angle threshold.
+        
+            This method does not change the current instance.
+        
+            Parameters:
+                newBetaAngleThreshold (double): the beta angle threshold (radians)
+        
+            Returns:
+                the new detector instance
+        
+        
+        """
+        ...
+    def withCelestialProvider(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable]) -> 'BetaAngleDetector':
+        """
+            Create a new instance with the provided coordinate provider.
+        
+            This method does not change the current instance.
+        
+            Parameters:
+                newProvider (:class:`~org.orekit.utils.PVCoordinatesProvider`): the new coordinate provider
+        
+            Returns:
+                the new detector instance
+        
+        
+        """
+        ...
+    def withInertialFrame(self, frame: org.orekit.frames.Frame) -> 'BetaAngleDetector':
+        """
+            Create a new instance with the provided inertial frame.
+        
+            This method does not change the current instance.
+        
+            Parameters:
+                newFrame (:class:`~org.orekit.frames.Frame`): the inertial frame
+        
+            Returns:
+                the new detector instance
+        
+        
+        """
+        ...
+
 class BooleanDetector(AbstractDetector['BooleanDetector']):
     """
     public class BooleanDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.BooleanDetector`>
@@ -1841,6 +2038,58 @@ class BooleanDetector(AbstractDetector['BooleanDetector']):
     @staticmethod
     def orCombine(*eventDetector: EventDetector) -> 'BooleanDetector': ...
 
+class CylindricalShadowEclipseDetector(AbstractDetector['CylindricalShadowEclipseDetector']):
+    """
+    public class CylindricalShadowEclipseDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.CylindricalShadowEclipseDetector`>
+    
+        Event detector for eclipses from a single, infinitely-distant light source, occulted by a spherical central body. The
+        shadow region is cylindrical, a model less accurate than a conical one but more computationally-performant.
+    
+        The so-called g function is negative in eclipse, positive otherwise.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.events.EclipseDetector`
+    """
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, adaptableInterval: typing.Union[AdaptableInterval, typing.Callable], double2: float, int: int, eventHandler: typing.Union[org.orekit.propagation.events.handlers.EventHandler, typing.Callable]): ...
+    @typing.overload
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float, eventHandler: typing.Union[org.orekit.propagation.events.handlers.EventHandler, typing.Callable]): ...
+    def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
+        """
+            Compute the value of the switching function. This function must be continuous (at least in its roots neighborhood), as
+            the integrator will need to find its roots to locate the events.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.EventDetector.g` in
+                interface :class:`~org.orekit.propagation.events.EventDetector`
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.AbstractDetector.g` in
+                class :class:`~org.orekit.propagation.events.AbstractDetector`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): the current state information: date, kinematics, attitude
+        
+            Returns:
+                value of the switching function
+        
+        
+        """
+        ...
+    def getOccultingBodyRadius(self) -> float:
+        """
+            Getter for occulting body radius.
+        
+            Returns:
+                radius
+        
+        
+        """
+        ...
+
 class DateDetector(AbstractDetector['DateDetector'], org.orekit.time.TimeStamped):
     """
     public class DateDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.DateDetector`> implements :class:`~org.orekit.time.TimeStamped`
@@ -2004,7 +2253,7 @@ class EclipseDetector(AbstractDetector['EclipseDetector']):
             :meth:`~org.orekit.propagation.Propagator.addEventDetector`
     """
     @typing.overload
-    def __init__(self, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid): ...
+    def __init__(self, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid): ...
     @typing.overload
     def __init__(self, occultationEngine: org.orekit.utils.OccultationEngine): ...
     def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
@@ -2142,6 +2391,8 @@ class ElevationDetector(AbstractDetector['ElevationDetector']):
     def __init__(self, double: float, double2: float, topocentricFrame: org.orekit.frames.TopocentricFrame): ...
     @typing.overload
     def __init__(self, topocentricFrame: org.orekit.frames.TopocentricFrame): ...
+    @typing.overload
+    def __init__(self, adaptableInterval: typing.Union[AdaptableInterval, typing.Callable], double: float, topocentricFrame: org.orekit.frames.TopocentricFrame): ...
     def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
         """
             Compute the value of the switching function. This function measures the difference between the current elevation (and
@@ -2700,6 +2951,9 @@ class ExtremumApproachDetector(AbstractDetector['ExtremumApproachDetector']):
     def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable]): ...
     def computeDeltaPV(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> org.orekit.utils.PVCoordinates:
         """
+            Deprecated.
+            The output type of this method shall be modified in the future to improve code efficiency (though it will still give
+            access to the relative position and velocity)
             Compute the relative PV between primary and secondary objects.
         
             Parameters:
@@ -2818,11 +3072,106 @@ class FieldApsideDetector(FieldAbstractDetector['FieldApsideDetector'[_FieldApsi
             :meth:`~org.orekit.propagation.FieldPropagator.addEventDetector`
     """
     @typing.overload
+    def __init__(self, t: _FieldApsideDetector__T): ...
+    @typing.overload
     def __init__(self, t: _FieldApsideDetector__T, fieldOrbit: org.orekit.orbits.FieldOrbit[_FieldApsideDetector__T]): ...
     @typing.overload
     def __init__(self, fieldOrbit: org.orekit.orbits.FieldOrbit[_FieldApsideDetector__T]): ...
+    @typing.overload
+    def __init__(self, fieldAdaptableInterval: typing.Union[FieldAdaptableInterval[_FieldApsideDetector__T], typing.Callable[[org.orekit.propagation.FieldSpacecraftState[org.hipparchus.CalculusFieldElement]], float]], t: _FieldApsideDetector__T, int: int, fieldEventHandler: typing.Union[org.orekit.propagation.events.handlers.FieldEventHandler[_FieldApsideDetector__T], typing.Callable[[org.orekit.propagation.FieldSpacecraftState[org.hipparchus.CalculusFieldElement], FieldEventDetector[org.hipparchus.CalculusFieldElement], bool], org.hipparchus.ode.events.Action]]): ...
     def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldApsideDetector__T]) -> _FieldApsideDetector__T: ...
 
+_FieldBetaAngleDetector__T = typing.TypeVar('_FieldBetaAngleDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldBetaAngleDetector(FieldAbstractDetector['FieldBetaAngleDetector'[_FieldBetaAngleDetector__T], _FieldBetaAngleDetector__T], typing.Generic[_FieldBetaAngleDetector__T]):
+    """
+    public class FieldBetaAngleDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldBetaAngleDetector`<T>, T>
+    
+        Finder for beta angle crossing events.
+    
+        Locate events when the beta angle (the angle between the orbit plane and the celestial body) crosses a threshold. The
+        :meth:`~org.orekit.propagation.events.FieldBetaAngleDetector.g` function is negative when the beta angle is above the
+        threshold and positive when the beta angle is below the threshold.
+    
+        The inertial frame provided must have it's origin centered at the satellite's orbit plane. The beta angle is computed as
+        the angle between the celestial body's position in this frame with the satellite's orbital momentum vector.
+    
+        The default implementation behavior is to
+        :meth:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+        propagation at the first event date occurrence. This can be changed by calling
+        :meth:`~org.orekit.propagation.events.FieldAbstractDetector.withHandler` after construction.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~org.orekit.propagation.Propagator.addEventDetector`
+    """
+    @typing.overload
+    def __init__(self, t: _FieldBetaAngleDetector__T): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldBetaAngleDetector__T], t: _FieldBetaAngleDetector__T, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_FieldBetaAngleDetector__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], frame: org.orekit.frames.Frame): ...
+    _calculateBetaAngle_0__T = typing.TypeVar('_calculateBetaAngle_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _calculateBetaAngle_1__T = typing.TypeVar('_calculateBetaAngle_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    @staticmethod
+    def calculateBetaAngle(fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_calculateBetaAngle_0__T], fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_calculateBetaAngle_0__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]]) -> _calculateBetaAngle_0__T:
+        """
+            Calculate the beta angle between the orbit plane and the celestial body.
+        
+            This method computes the beta angle using the frame from the spacecraft state.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> state): spacecraft state
+                celestialBodyProvider (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> celestialBodyProvider): celestial body coordinate provider
+        
+            Returns:
+                the beta angle (radians)
+        
+        """
+        ...
+    @typing.overload
+    @staticmethod
+    def calculateBetaAngle(fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_calculateBetaAngle_1__T], fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_calculateBetaAngle_1__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], frame: org.orekit.frames.Frame) -> _calculateBetaAngle_1__T:
+        """
+            Calculate the beta angle between the orbit plane and the celestial body.
+        
+            Parameters:
+                state (:class:`~org.orekit.propagation.FieldSpacecraftState`<T> state): spacecraft state
+                celestialBodyProvider (:class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T> celestialBodyProvider): celestial body coordinate provider
+                frame (:class:`~org.orekit.frames.Frame`): inertial frame in which beta angle will be computed
+        
+            Returns:
+                the beta angle (radians)
+        
+        
+        """
+        ...
+    def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldBetaAngleDetector__T]) -> _FieldBetaAngleDetector__T: ...
+    def getBetaAngleThreshold(self) -> _FieldBetaAngleDetector__T:
+        """
+            The beta angle threshold (radians).
+        
+            Returns:
+                the beta angle threshold (radians)
+        
+        
+        """
+        ...
+    def getCelestialBodyProvider(self) -> org.orekit.utils.FieldPVCoordinatesProvider[_FieldBetaAngleDetector__T]: ...
+    def getInertialFrame(self) -> org.orekit.frames.Frame:
+        """
+            The inertial frame in which beta angle is computed.
+        
+            Returns:
+                the inertial frame
+        
+        
+        """
+        ...
+    def withBetaThreshold(self, t: _FieldBetaAngleDetector__T) -> 'FieldBetaAngleDetector'[_FieldBetaAngleDetector__T]: ...
+    def withCelestialProvider(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_FieldBetaAngleDetector__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]]) -> 'FieldBetaAngleDetector'[_FieldBetaAngleDetector__T]: ...
+    def withInertialFrame(self, frame: org.orekit.frames.Frame) -> 'FieldBetaAngleDetector'[_FieldBetaAngleDetector__T]: ...
+
 _FieldBooleanDetector__T = typing.TypeVar('_FieldBooleanDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldBooleanDetector(FieldAbstractDetector['FieldBooleanDetector'[_FieldBooleanDetector__T], _FieldBooleanDetector__T], typing.Generic[_FieldBooleanDetector__T]):
     """
@@ -2902,6 +3251,39 @@ class FieldBooleanDetector(FieldAbstractDetector['FieldBooleanDetector'[_FieldBo
     @staticmethod
     def orCombine(*fieldEventDetector: FieldEventDetector[_orCombine_1__T]) -> 'FieldBooleanDetector'[_orCombine_1__T]: ...
 
+_FieldCylindricalShadowEclipseDetector__T = typing.TypeVar('_FieldCylindricalShadowEclipseDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldCylindricalShadowEclipseDetector(FieldAbstractDetector['FieldCylindricalShadowEclipseDetector'[_FieldCylindricalShadowEclipseDetector__T], _FieldCylindricalShadowEclipseDetector__T], typing.Generic[_FieldCylindricalShadowEclipseDetector__T]):
+    """
+    public class FieldCylindricalShadowEclipseDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldCylindricalShadowEclipseDetector`<T>, T>
+    
+        Event detector for eclipses from a single, infinitely-distant light source, occulted by a spherical central body. The
+        shadow region is cylindrical, a model less accurate than a conical one but more computationally-performant.
+    
+        The so-called g function is negative in eclipse, positive otherwise.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.events.FieldEclipseDetector`,
+            :class:`~org.orekit.propagation.events.CylindricalShadowEclipseDetector`
+    """
+    @typing.overload
+    def __init__(self, extendedPositionProvider: typing.Union[org.orekit.utils.ExtendedPositionProvider, typing.Callable], t: _FieldCylindricalShadowEclipseDetector__T, fieldAdaptableInterval: typing.Union[FieldAdaptableInterval[_FieldCylindricalShadowEclipseDetector__T], typing.Callable[[org.orekit.propagation.FieldSpacecraftState[org.hipparchus.CalculusFieldElement]], float]], t2: _FieldCylindricalShadowEclipseDetector__T, int: int, fieldEventHandler: typing.Union[org.orekit.propagation.events.handlers.FieldEventHandler[_FieldCylindricalShadowEclipseDetector__T], typing.Callable[[org.orekit.propagation.FieldSpacecraftState[org.hipparchus.CalculusFieldElement], FieldEventDetector[org.hipparchus.CalculusFieldElement], bool], org.hipparchus.ode.events.Action]]): ...
+    @typing.overload
+    def __init__(self, extendedPositionProvider: typing.Union[org.orekit.utils.ExtendedPositionProvider, typing.Callable], t: _FieldCylindricalShadowEclipseDetector__T, fieldEventHandler: typing.Union[org.orekit.propagation.events.handlers.FieldEventHandler[_FieldCylindricalShadowEclipseDetector__T], typing.Callable[[org.orekit.propagation.FieldSpacecraftState[org.hipparchus.CalculusFieldElement], FieldEventDetector[org.hipparchus.CalculusFieldElement], bool], org.hipparchus.ode.events.Action]]): ...
+    def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldCylindricalShadowEclipseDetector__T]) -> _FieldCylindricalShadowEclipseDetector__T: ...
+    def getOccultingBodyRadius(self) -> _FieldCylindricalShadowEclipseDetector__T:
+        """
+            Getter for occulting body radius.
+        
+            Returns:
+                radius
+        
+        
+        """
+        ...
+
 _FieldDateDetector__T = typing.TypeVar('_FieldDateDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldDateDetector(FieldAbstractDetector['FieldDateDetector'[_FieldDateDetector__T], _FieldDateDetector__T], org.orekit.time.FieldTimeStamped[_FieldDateDetector__T], typing.Generic[_FieldDateDetector__T]):
     """
@@ -2996,7 +3378,7 @@ class FieldEclipseDetector(FieldAbstractDetector['FieldEclipseDetector'[_FieldEc
             :meth:`~org.orekit.propagation.FieldPropagator.addEventDetector`
     """
     @typing.overload
-    def __init__(self, field: org.hipparchus.Field[_FieldEclipseDetector__T], extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, double: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid): ...
+    def __init__(self, field: org.hipparchus.Field[_FieldEclipseDetector__T], extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], double: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid): ...
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldEclipseDetector__T], occultationEngine: org.orekit.utils.OccultationEngine): ...
     def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldEclipseDetector__T]) -> _FieldEclipseDetector__T: ...
@@ -3237,13 +3619,73 @@ class FieldEventSlopeFilter(FieldAbstractDetector['FieldEventSlopeFilter'[_Field
         ...
     def init(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldEventSlopeFilter__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldEventSlopeFilter__T]) -> None: ...
 
-_FieldFunctionalDetector__T = typing.TypeVar('_FieldFunctionalDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-class FieldFunctionalDetector(FieldAbstractDetector['FieldFunctionalDetector'[_FieldFunctionalDetector__T], _FieldFunctionalDetector__T], typing.Generic[_FieldFunctionalDetector__T]):
+_FieldExtremumApproachDetector__T = typing.TypeVar('_FieldExtremumApproachDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldExtremumApproachDetector(FieldAbstractDetector['FieldExtremumApproachDetector'[_FieldExtremumApproachDetector__T], _FieldExtremumApproachDetector__T], typing.Generic[_FieldExtremumApproachDetector__T]):
     """
-    public class FieldFunctionalDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldFunctionalDetector`<T>, T>
+    public class FieldExtremumApproachDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldExtremumApproachDetector`<T>, T>
     
-        A detector that implements the :meth:`~org.orekit.propagation.events.FieldFunctionalDetector.g` function using a lambda
-        that can be set using :meth:`~org.orekit.propagation.events.FieldFunctionalDetector.withFunction`.
+        Finder for extremum approach events.
+    
+        This class finds extremum approach events (i.e. closest or farthest approach).
+    
+        The default implementation behavior is to
+        :meth:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+        propagation at farthest approach and to
+        :meth:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+        propagation at closest approach. This can be changed by calling
+        :meth:`~org.orekit.propagation.events.FieldAbstractDetector.withHandler` after construction (go to the end of the
+        documentation to see an example).
+    
+        As this detector needs two objects (moving relative to each other), it embeds one
+        :class:`~org.orekit.utils.FieldPVCoordinatesProvider` for the secondary object and is registered as an event detector in
+        the propagator of the primary object. The secondary object :class:`~org.orekit.utils.FieldPVCoordinatesProvider` will
+        therefore be driven by this detector (and hence by the propagator in which this detector is registered). Note that you
+        can also create this detector using a standard :class:`~org.orekit.utils.PVCoordinatesProvider`
+    
+        **In order to avoid infinite recursion, care must be taken to have the secondary object provider being *completely
+        independent* from anything else. In particular, if the provider is a propagator, it should *not* be run together in a
+        :class:`~org.orekit.propagation.PropagatorsParallelizer` with the propagator this detector is registered in. It is fine
+        however to configure two separate propagators PsA and PsB with similar settings for the secondary object and one
+        propagator Pm for the primary object and then use Psa in this detector registered within Pm while Pm and Psb are run in
+        the context of a :class:`~org.orekit.propagation.PropagatorsParallelizer`.**
+    
+        For efficiency reason during the event search loop, it is recommended to have the secondary provider be an analytical
+        propagator or an ephemeris. A numerical propagator as a secondary propagator works but is expected to be computationally
+        costly.
+    
+        Also, it is possible to detect solely one type of event using an
+        :class:`~org.orekit.propagation.events.EventSlopeFilter`. For example in order to only detect closest approach, one
+        should type the following :
+    
+        .. code-block: java
+        
+         FieldExtremumApproachDetector<Type> extremumApproachDetector = new FieldExtremumApproachDetector<>(field, secondaryPVProvider);
+         FieldEventDetector<Type> closeApproachDetector = new FieldEventSlopeFilter<>(extremumApproachDetector, FilterType.TRIGGER_ONLY_INCREASING_EVENTS);
+          
+         
+    
+        Since:
+            11.3
+    
+        Also see:
+            :meth:`~org.orekit.propagation.FieldPropagator.addEventDetector`,
+            :class:`~org.orekit.propagation.events.FieldEventSlopeFilter`, :class:`~org.orekit.propagation.events.FilterType`
+    """
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldExtremumApproachDetector__T], fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_FieldExtremumApproachDetector__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]]): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldExtremumApproachDetector__T], pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable]): ...
+    def computeDeltaPV(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldExtremumApproachDetector__T]) -> org.orekit.utils.FieldPVCoordinates[_FieldExtremumApproachDetector__T]: ...
+    def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldExtremumApproachDetector__T]) -> _FieldExtremumApproachDetector__T: ...
+    def getSecondaryPVProvider(self) -> org.orekit.utils.FieldPVCoordinatesProvider[_FieldExtremumApproachDetector__T]: ...
+
+_FieldFunctionalDetector__T = typing.TypeVar('_FieldFunctionalDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldFunctionalDetector(FieldAbstractDetector['FieldFunctionalDetector'[_FieldFunctionalDetector__T], _FieldFunctionalDetector__T], typing.Generic[_FieldFunctionalDetector__T]):
+    """
+    public class FieldFunctionalDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldFunctionalDetector`<T>, T>
+    
+        A detector that implements the :meth:`~org.orekit.propagation.events.FieldFunctionalDetector.g` function using a lambda
+        that can be set using :meth:`~org.orekit.propagation.events.FieldFunctionalDetector.withFunction`.
     
         For example, to create a simple date detector use:
     
@@ -3300,6 +3742,54 @@ class FieldLatitudeCrossingDetector(FieldAbstractDetector['FieldLatitudeCrossing
         """
         ...
 
+_FieldLatitudeRangeCrossingDetector__T = typing.TypeVar('_FieldLatitudeRangeCrossingDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldLatitudeRangeCrossingDetector(FieldAbstractDetector['FieldLatitudeRangeCrossingDetector'[_FieldLatitudeRangeCrossingDetector__T], _FieldLatitudeRangeCrossingDetector__T], typing.Generic[_FieldLatitudeRangeCrossingDetector__T]):
+    """
+    public class FieldLatitudeRangeCrossingDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldLatitudeRangeCrossingDetector`<T>, T>
+    
+        Detector for geographic latitude crossing.
+    
+        This detector identifies when a spacecraft crosses a fixed latitude range with respect to a central body.
+    
+        Since:
+            12.0
+    """
+    @typing.overload
+    def __init__(self, t: _FieldLatitudeRangeCrossingDetector__T, t2: _FieldLatitudeRangeCrossingDetector__T, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float, double2: float): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldLatitudeRangeCrossingDetector__T], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float, double2: float): ...
+    def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldLatitudeRangeCrossingDetector__T]) -> _FieldLatitudeRangeCrossingDetector__T: ...
+    def getBody(self) -> org.orekit.bodies.OneAxisEllipsoid:
+        """
+            Get the body on which the geographic zone is defined.
+        
+            Returns:
+                body on which the geographic zone is defined
+        
+        
+        """
+        ...
+    def getFromLatitude(self) -> float:
+        """
+            Get the fixed latitude range to be crossed (radians), lower boundary.
+        
+            Returns:
+                fixed lower boundary latitude range to be crossed (radians)
+        
+        
+        """
+        ...
+    def getToLatitude(self) -> float:
+        """
+            Get the fixed latitude range to be crossed (radians), upper boundary.
+        
+            Returns:
+                fixed lower boundary latitude range to be crossed (radians)
+        
+        
+        """
+        ...
+
 _FieldLongitudeCrossingDetector__T = typing.TypeVar('_FieldLongitudeCrossingDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldLongitudeCrossingDetector(FieldAbstractDetector['FieldLongitudeCrossingDetector'[_FieldLongitudeCrossingDetector__T], _FieldLongitudeCrossingDetector__T], typing.Generic[_FieldLongitudeCrossingDetector__T]):
     """
@@ -3339,6 +3829,54 @@ class FieldLongitudeCrossingDetector(FieldAbstractDetector['FieldLongitudeCrossi
         ...
     def init(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldLongitudeCrossingDetector__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldLongitudeCrossingDetector__T]) -> None: ...
 
+_FieldLongitudeRangeCrossingDetector__T = typing.TypeVar('_FieldLongitudeRangeCrossingDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldLongitudeRangeCrossingDetector(FieldAbstractDetector['FieldLongitudeRangeCrossingDetector'[_FieldLongitudeRangeCrossingDetector__T], _FieldLongitudeRangeCrossingDetector__T], typing.Generic[_FieldLongitudeRangeCrossingDetector__T]):
+    """
+    public class FieldLongitudeRangeCrossingDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldLongitudeRangeCrossingDetector`<T>, T>
+    
+        Detector for geographic longitude crossing.
+    
+        This detector identifies when a spacecraft crosses a fixed longitude range with respect to a central body.
+    
+        Since:
+            12.0
+    """
+    @typing.overload
+    def __init__(self, t: _FieldLongitudeRangeCrossingDetector__T, t2: _FieldLongitudeRangeCrossingDetector__T, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float, double2: float): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldLongitudeRangeCrossingDetector__T], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float, double2: float): ...
+    def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldLongitudeRangeCrossingDetector__T]) -> _FieldLongitudeRangeCrossingDetector__T: ...
+    def getBody(self) -> org.orekit.bodies.OneAxisEllipsoid:
+        """
+            Get the body on which the geographic zone is defined.
+        
+            Returns:
+                body on which the geographic zone is defined
+        
+        
+        """
+        ...
+    def getFromLongitude(self) -> float:
+        """
+            Get the fixed longitude range to be crossed (radians), lower boundary.
+        
+            Returns:
+                fixed lower boundary longitude range to be crossed (radians)
+        
+        
+        """
+        ...
+    def getToLongitude(self) -> float:
+        """
+            Get the fixed longitude range to be crossed (radians), upper boundary.
+        
+            Returns:
+                fixed upper boundary longitude range to be crossed (radians)
+        
+        
+        """
+        ...
+
 _FieldNegateDetector__T = typing.TypeVar('_FieldNegateDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldNegateDetector(FieldAbstractDetector['FieldNegateDetector'[_FieldNegateDetector__T], _FieldNegateDetector__T], typing.Generic[_FieldNegateDetector__T]):
     """
@@ -3612,6 +4150,47 @@ class FieldParameterDrivenDateIntervalDetector(FieldAbstractDetector['FieldParam
         """
         ...
 
+_FieldRelativeDistanceDetector__T = typing.TypeVar('_FieldRelativeDistanceDetector__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldRelativeDistanceDetector(FieldAbstractDetector['FieldRelativeDistanceDetector'[_FieldRelativeDistanceDetector__T], _FieldRelativeDistanceDetector__T], typing.Generic[_FieldRelativeDistanceDetector__T]):
+    """
+    public class FieldRelativeDistanceDetector<T extends :class:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.FieldAbstractDetector`<:class:`~org.orekit.propagation.events.FieldRelativeDistanceDetector`<T>, T>
+    
+        Detector of specific value for the distance relative to another trajectory (using the Euclidean norm).
+    
+        The default implementation behavior is to
+        :meth:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+        propagation. This can be changed by calling :meth:`~org.orekit.propagation.events.FieldAbstractDetector.withHandler`
+        after construction.
+    
+        As this detector needs two objects (moving relative to each other), it embeds one
+        :class:`~org.orekit.utils.FieldPVCoordinatesProvider` for the secondary object and is registered as an event detector in
+        the propagator of the primary object. The secondary object :class:`~org.orekit.utils.FieldPVCoordinatesProvider` will
+        therefore be driven by this detector (and hence by the propagator in which this detector is registered).
+    
+        For efficiency reason during the event search loop, it is recommended to have the secondary provider be an analytical
+        propagator or an ephemeris. A numerical propagator as a secondary propagator works but is expected to be computationally
+        costly.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~org.orekit.propagation.FieldPropagator.addEventDetector`
+    """
+    def __init__(self, fieldPVCoordinatesProvider: typing.Union[org.orekit.utils.FieldPVCoordinatesProvider[_FieldRelativeDistanceDetector__T], typing.Callable[[org.orekit.time.FieldAbsoluteDate[org.hipparchus.CalculusFieldElement], org.orekit.frames.Frame], org.orekit.utils.TimeStampedFieldPVCoordinates[org.hipparchus.CalculusFieldElement]]], t: _FieldRelativeDistanceDetector__T): ...
+    def g(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldRelativeDistanceDetector__T]) -> _FieldRelativeDistanceDetector__T: ...
+    def getDistanceThreshold(self) -> _FieldRelativeDistanceDetector__T:
+        """
+            Get the relative distance threshold.
+        
+            Returns:
+                threshold triggering detection
+        
+        
+        """
+        ...
+    def getSecondaryPVProvider(self) -> org.orekit.utils.FieldPVCoordinatesProvider[_FieldRelativeDistanceDetector__T]: ...
+
 class FootprintOverlapDetector(AbstractDetector['FootprintOverlapDetector']):
     """
     public class FootprintOverlapDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.FootprintOverlapDetector`>
@@ -4247,6 +4826,76 @@ class LatitudeExtremumDetector(AbstractDetector['LatitudeExtremumDetector']):
         """
         ...
 
+class LatitudeRangeCrossingDetector(AbstractDetector['LatitudeRangeCrossingDetector']):
+    """
+    public class LatitudeRangeCrossingDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.LatitudeRangeCrossingDetector`>
+    
+        Detector for geographic latitude crossing.
+    
+        This detector identifies when a spacecraft crosses a fixed latitude range with respect to a central body.
+    
+        Since:
+            12.0
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double3: float, double4: float): ...
+    @typing.overload
+    def __init__(self, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float, double2: float): ...
+    def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
+        """
+            Compute the value of the detection function.
+        
+            The value is positive if the spacecraft latitude is inside the latitude range. It is positive if the spacecraft is
+            northward to lower boundary range and southward to upper boundary range, with respect to the fixed latitude range.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.EventDetector.g` in
+                interface :class:`~org.orekit.propagation.events.EventDetector`
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.AbstractDetector.g` in
+                class :class:`~org.orekit.propagation.events.AbstractDetector`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): the current state information: date, kinematics, attitude
+        
+            Returns:
+                positive if spacecraft inside the range
+        
+        
+        """
+        ...
+    def getBody(self) -> org.orekit.bodies.OneAxisEllipsoid:
+        """
+            Get the body on which the geographic zone is defined.
+        
+            Returns:
+                body on which the geographic zone is defined
+        
+        
+        """
+        ...
+    def getFromLatitude(self) -> float:
+        """
+            Get the fixed latitude range to be crossed (radians), lower boundary.
+        
+            Returns:
+                fixed lower boundary latitude range to be crossed (radians)
+        
+        
+        """
+        ...
+    def getToLatitude(self) -> float:
+        """
+            Get the fixed latitude range to be crossed (radians), upper boundary.
+        
+            Returns:
+                fixed lower boundary latitude range to be crossed (radians)
+        
+        
+        """
+        ...
+
 class LongitudeCrossingDetector(AbstractDetector['LongitudeCrossingDetector']):
     """
     public class LongitudeCrossingDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.LongitudeCrossingDetector`>
@@ -4387,6 +5036,76 @@ class LongitudeExtremumDetector(AbstractDetector['LongitudeExtremumDetector']):
         """
         ...
 
+class LongitudeRangeCrossingDetector(AbstractDetector['LongitudeRangeCrossingDetector']):
+    """
+    public class LongitudeRangeCrossingDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.LongitudeRangeCrossingDetector`>
+    
+        Detector for geographic longitude crossing.
+    
+        This detector identifies when a spacecraft crosses a fixed longitude range with respect to a central body.
+    
+        Since:
+            12.0
+    """
+    @typing.overload
+    def __init__(self, double: float, double2: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double3: float, double4: float): ...
+    @typing.overload
+    def __init__(self, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double: float, double2: float): ...
+    def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
+        """
+            Compute the value of the detection function.
+        
+            The value is positive if the spacecraft longitude is inside the longitude range. The longitude value is reflected from
+            [-PI, +PI] to [0, 2 PI] to ensure continuity.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.EventDetector.g` in
+                interface :class:`~org.orekit.propagation.events.EventDetector`
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.AbstractDetector.g` in
+                class :class:`~org.orekit.propagation.events.AbstractDetector`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): the current state information: date, kinematics, attitude
+        
+            Returns:
+                positive if spacecraft inside the range
+        
+        
+        """
+        ...
+    def getBody(self) -> org.orekit.bodies.OneAxisEllipsoid:
+        """
+            Get the body on which the geographic zone is defined.
+        
+            Returns:
+                body on which the geographic zone is defined
+        
+        
+        """
+        ...
+    def getFromLongitude(self) -> float:
+        """
+            Get the fixed longitude range to be crossed (radians), lower boundary.
+        
+            Returns:
+                fixed lower boundary longitude range to be crossed (radians)
+        
+        
+        """
+        ...
+    def getToLongitude(self) -> float:
+        """
+            Get the fixed longitude range to be crossed (radians), upper boundary.
+        
+            Returns:
+                fixed upper boundary longitude range to be crossed (radians)
+        
+        
+        """
+        ...
+
 class MagneticFieldDetector(AbstractDetector['MagneticFieldDetector']):
     """
     public class MagneticFieldDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.MagneticFieldDetector`>
@@ -4854,6 +5573,82 @@ class PositionAngleDetector(AbstractDetector['PositionAngleDetector']):
         """
         ...
 
+class RelativeDistanceDetector(AbstractDetector['RelativeDistanceDetector']):
+    """
+    public class RelativeDistanceDetector extends :class:`~org.orekit.propagation.events.AbstractDetector`<:class:`~org.orekit.propagation.events.RelativeDistanceDetector`>
+    
+        Detector of specific value for the distance relative to another trajectory (using the Euclidean norm).
+    
+        The default implementation behavior is to
+        :meth:`~org.orekit.propagation.events.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+        propagation. This can be changed by calling :meth:`~org.orekit.propagation.events.AbstractDetector.withHandler` after
+        construction.
+    
+        As this detector needs two objects (moving relative to each other), it embeds one
+        :class:`~org.orekit.utils.PVCoordinatesProvider` for the secondary object and is registered as an event detector in the
+        propagator of the primary object. The secondary object :class:`~org.orekit.utils.PVCoordinatesProvider` will therefore
+        be driven by this detector (and hence by the propagator in which this detector is registered).
+    
+        **In order to avoid infinite recursion, care must be taken to have the secondary object provider being *completely
+        independent* from anything else. In particular, if the provider is a propagator, it should *not* be run together in a
+        :class:`~org.orekit.propagation.PropagatorsParallelizer` with the propagator this detector is registered in. It is fine
+        however to configure two separate propagators PsA and PsB with similar settings for the secondary object and one
+        propagator Pm for the primary object and then use Psa in this detector registered within Pm while Pm and Psb are run in
+        the context of a :class:`~org.orekit.propagation.PropagatorsParallelizer`.**
+    
+        For efficiency reason during the event search loop, it is recommended to have the secondary provider be an analytical
+        propagator or an ephemeris. A numerical propagator as a secondary propagator works but is expected to be computationally
+        costly.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :meth:`~org.orekit.propagation.Propagator.addEventDetector`
+    """
+    def __init__(self, pVCoordinatesProvider: typing.Union[org.orekit.utils.PVCoordinatesProvider, typing.Callable], double: float): ...
+    def g(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> float:
+        """
+            The :code:`g` is positive when the relative distance is larger or equal than the threshold, non-positive otherwise.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.EventDetector.g` in
+                interface :class:`~org.orekit.propagation.events.EventDetector`
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.AbstractDetector.g` in
+                class :class:`~org.orekit.propagation.events.AbstractDetector`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): the current state information: date, kinematics, attitude
+        
+            Returns:
+                value of the switching function
+        
+        
+        """
+        ...
+    def getDistanceThreshold(self) -> float:
+        """
+            Get the relative distance threshold.
+        
+            Returns:
+                threshold triggering detection
+        
+        
+        """
+        ...
+    def getSecondaryPVProvider(self) -> org.orekit.utils.PVCoordinatesProvider:
+        """
+            Get the secondary position-velocity provider stored in this instance.
+        
+            Returns:
+                the secondary position-velocity provider stored in this instance
+        
+        
+        """
+        ...
+
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.propagation.events")``.
@@ -4866,7 +5661,9 @@ class __module_protocol__(Protocol):
     AngularSeparationDetector: typing.Type[AngularSeparationDetector]
     AngularSeparationFromSatelliteDetector: typing.Type[AngularSeparationFromSatelliteDetector]
     ApsideDetector: typing.Type[ApsideDetector]
+    BetaAngleDetector: typing.Type[BetaAngleDetector]
     BooleanDetector: typing.Type[BooleanDetector]
+    CylindricalShadowEclipseDetector: typing.Type[CylindricalShadowEclipseDetector]
     DateDetector: typing.Type[DateDetector]
     EclipseDetector: typing.Type[EclipseDetector]
     ElevationDetector: typing.Type[ElevationDetector]
@@ -4885,7 +5682,9 @@ class __module_protocol__(Protocol):
     FieldAdapterDetector: typing.Type[FieldAdapterDetector]
     FieldAltitudeDetector: typing.Type[FieldAltitudeDetector]
     FieldApsideDetector: typing.Type[FieldApsideDetector]
+    FieldBetaAngleDetector: typing.Type[FieldBetaAngleDetector]
     FieldBooleanDetector: typing.Type[FieldBooleanDetector]
+    FieldCylindricalShadowEclipseDetector: typing.Type[FieldCylindricalShadowEclipseDetector]
     FieldDateDetector: typing.Type[FieldDateDetector]
     FieldEclipseDetector: typing.Type[FieldEclipseDetector]
     FieldElevationDetector: typing.Type[FieldElevationDetector]
@@ -4896,13 +5695,17 @@ class __module_protocol__(Protocol):
     FieldEventSlopeFilter: typing.Type[FieldEventSlopeFilter]
     FieldEventState: typing.Type[FieldEventState]
     FieldEventsLogger: typing.Type[FieldEventsLogger]
+    FieldExtremumApproachDetector: typing.Type[FieldExtremumApproachDetector]
     FieldFunctionalDetector: typing.Type[FieldFunctionalDetector]
     FieldLatitudeCrossingDetector: typing.Type[FieldLatitudeCrossingDetector]
+    FieldLatitudeRangeCrossingDetector: typing.Type[FieldLatitudeRangeCrossingDetector]
     FieldLongitudeCrossingDetector: typing.Type[FieldLongitudeCrossingDetector]
+    FieldLongitudeRangeCrossingDetector: typing.Type[FieldLongitudeRangeCrossingDetector]
     FieldNegateDetector: typing.Type[FieldNegateDetector]
     FieldNodeDetector: typing.Type[FieldNodeDetector]
     FieldOfViewDetector: typing.Type[FieldOfViewDetector]
     FieldParameterDrivenDateIntervalDetector: typing.Type[FieldParameterDrivenDateIntervalDetector]
+    FieldRelativeDistanceDetector: typing.Type[FieldRelativeDistanceDetector]
     FilterType: typing.Type[FilterType]
     FootprintOverlapDetector: typing.Type[FootprintOverlapDetector]
     FunctionalDetector: typing.Type[FunctionalDetector]
@@ -4913,12 +5716,16 @@ class __module_protocol__(Protocol):
     InterSatDirectViewDetector: typing.Type[InterSatDirectViewDetector]
     LatitudeCrossingDetector: typing.Type[LatitudeCrossingDetector]
     LatitudeExtremumDetector: typing.Type[LatitudeExtremumDetector]
+    LatitudeRangeCrossingDetector: typing.Type[LatitudeRangeCrossingDetector]
     LongitudeCrossingDetector: typing.Type[LongitudeCrossingDetector]
     LongitudeExtremumDetector: typing.Type[LongitudeExtremumDetector]
+    LongitudeRangeCrossingDetector: typing.Type[LongitudeRangeCrossingDetector]
     MagneticFieldDetector: typing.Type[MagneticFieldDetector]
     NegateDetector: typing.Type[NegateDetector]
     NodeDetector: typing.Type[NodeDetector]
     ParameterDrivenDateIntervalDetector: typing.Type[ParameterDrivenDateIntervalDetector]
     PositionAngleDetector: typing.Type[PositionAngleDetector]
+    RelativeDistanceDetector: typing.Type[RelativeDistanceDetector]
     VisibilityTrigger: typing.Type[VisibilityTrigger]
     handlers: org.orekit.propagation.events.handlers.__module_protocol__
+    intervals: org.orekit.propagation.events.intervals.__module_protocol__
diff --git a/org-stubs/orekit/propagation/events/handlers/__init__.pyi b/org-stubs/orekit/propagation/events/handlers/__init__.pyi
index 140a6e62464cd58485019b3cfc73410082ca263c..4fcd120db100c3b8610aad9c067849898f9d7fa5 100644
--- a/org-stubs/orekit/propagation/events/handlers/__init__.pyi
+++ b/org-stubs/orekit/propagation/events/handlers/__init__.pyi
@@ -264,6 +264,27 @@ class FieldContinueOnEvent(FieldEventHandler[_FieldContinueOnEvent__T], typing.G
     def __init__(self): ...
     def eventOccurred(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldContinueOnEvent__T], fieldEventDetector: org.orekit.propagation.events.FieldEventDetector[_FieldContinueOnEvent__T], boolean: bool) -> org.hipparchus.ode.events.Action: ...
 
+_FieldRecallLastOccurrence__T = typing.TypeVar('_FieldRecallLastOccurrence__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldRecallLastOccurrence(FieldEventHandler[_FieldRecallLastOccurrence__T], typing.Generic[_FieldRecallLastOccurrence__T]):
+    """
+    public class FieldRecallLastOccurrence<T extends :class:`~org.orekit.propagation.events.handlers.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.propagation.events.handlers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.events.handlers.FieldEventHandler`<T>
+    
+        Event handler wrapping another, arbitrary one whilst remembering date of last detection. If never used, the cache is
+        null. If used but nothing detected, it returns past infinity in case of forward propagation and future infinity
+        otherwise.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.events.handlers.RecallLastOccurrence`
+    """
+    def __init__(self, fieldEventHandler: typing.Union[FieldEventHandler[_FieldRecallLastOccurrence__T], typing.Callable[[org.orekit.propagation.FieldSpacecraftState[org.hipparchus.CalculusFieldElement], org.orekit.propagation.events.FieldEventDetector[org.hipparchus.CalculusFieldElement], bool], org.hipparchus.ode.events.Action]]): ...
+    def eventOccurred(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldRecallLastOccurrence__T], fieldEventDetector: org.orekit.propagation.events.FieldEventDetector[_FieldRecallLastOccurrence__T], boolean: bool) -> org.hipparchus.ode.events.Action: ...
+    def getLastOccurrence(self) -> org.orekit.time.FieldAbsoluteDate[_FieldRecallLastOccurrence__T]: ...
+    def init(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldRecallLastOccurrence__T], fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldRecallLastOccurrence__T], fieldEventDetector: org.orekit.propagation.events.FieldEventDetector[_FieldRecallLastOccurrence__T]) -> None: ...
+    def resetState(self, fieldEventDetector: org.orekit.propagation.events.FieldEventDetector[_FieldRecallLastOccurrence__T], fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldRecallLastOccurrence__T]) -> org.orekit.propagation.FieldSpacecraftState[_FieldRecallLastOccurrence__T]: ...
+
 _FieldRecordAndContinue__Event__T = typing.TypeVar('_FieldRecordAndContinue__Event__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 _FieldRecordAndContinue__T = typing.TypeVar('_FieldRecordAndContinue__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldRecordAndContinue(FieldEventHandler[_FieldRecordAndContinue__T], typing.Generic[_FieldRecordAndContinue__T]):
@@ -344,6 +365,100 @@ class FieldStopOnIncreasing(FieldEventHandler[_FieldStopOnIncreasing__T], typing
     def __init__(self): ...
     def eventOccurred(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldStopOnIncreasing__T], fieldEventDetector: org.orekit.propagation.events.FieldEventDetector[_FieldStopOnIncreasing__T], boolean: bool) -> org.hipparchus.ode.events.Action: ...
 
+class RecallLastOccurrence(EventHandler):
+    """
+    public class RecallLastOccurrence extends :class:`~org.orekit.propagation.events.handlers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.events.handlers.EventHandler`
+    
+        Event handler wrapping another, arbitrary one whilst remembering date of last detection. If never used, the cache is
+        null. If used but nothing detected, it returns past infinity in case of forward propagation and future infinity
+        otherwise.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.events.handlers.RecordAndContinue`
+    """
+    def __init__(self, eventHandler: typing.Union[EventHandler, typing.Callable]): ...
+    def eventOccurred(self, spacecraftState: org.orekit.propagation.SpacecraftState, eventDetector: org.orekit.propagation.events.EventDetector, boolean: bool) -> org.hipparchus.ode.events.Action:
+        """
+            Handle an event.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.handlers.EventHandler.eventOccurred` in
+                interface :class:`~org.orekit.propagation.events.handlers.EventHandler`
+        
+            Parameters:
+                s (:class:`~org.orekit.propagation.SpacecraftState`): SpaceCraft state to be used in the evaluation
+                detector (:class:`~org.orekit.propagation.events.EventDetector`): object with appropriate type that can be used in determining correct return state
+                increasing (boolean): with the event occurred in an "increasing" or "decreasing" slope direction
+        
+            Returns:
+                the Action that the calling detector should pass back to the evaluation system
+        
+        
+        """
+        ...
+    def getLastOccurrence(self) -> org.orekit.time.AbsoluteDate:
+        """
+            Getter for last occurrence.
+        
+            Returns:
+                last date when underlying event was detected
+        
+        
+        """
+        ...
+    def init(self, spacecraftState: org.orekit.propagation.SpacecraftState, absoluteDate: org.orekit.time.AbsoluteDate, eventDetector: org.orekit.propagation.events.EventDetector) -> None:
+        """
+            Initialize event handler at the start of a propagation.
+        
+            This method is called once at the start of the propagation. It may be used by the event handler to initialize some
+            internal data if needed.
+        
+            The default implementation does nothing
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.handlers.EventHandler.init` in
+                interface :class:`~org.orekit.propagation.events.handlers.EventHandler`
+        
+            Parameters:
+                initialState (:class:`~org.orekit.propagation.SpacecraftState`): initial state
+                target (:class:`~org.orekit.time.AbsoluteDate`): target date for the propagation
+                detector (:class:`~org.orekit.propagation.events.EventDetector`): event detector related to the event handler
+        
+        
+        """
+        ...
+    def resetState(self, eventDetector: org.orekit.propagation.events.EventDetector, spacecraftState: org.orekit.propagation.SpacecraftState) -> org.orekit.propagation.SpacecraftState:
+        """
+            Reset the state prior to continue propagation.
+        
+            This method is called after the step handler has returned and before the next step is started, but only when
+            :meth:`~org.orekit.propagation.events.handlers.EventHandler.eventOccurred` has itself returned the
+            :meth:`~org.orekit.propagation.events.handlers.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+            indicator. It allows the user to reset the state for the next step, without perturbing the step handler of the finishing
+            step. If the :meth:`~org.orekit.propagation.events.handlers.EventHandler.eventOccurred` never returns the
+            :meth:`~org.orekit.propagation.events.handlers.https:.www.hipparchus.org.apidocs.org.hipparchus.ode.events.Action.html?is`
+            indicator, this function will never be called, and it is safe to simply return null.
+        
+            The default implementation simply return its argument.
+        
+            Specified by:
+                :meth:`~org.orekit.propagation.events.handlers.EventHandler.resetState` in
+                interface :class:`~org.orekit.propagation.events.handlers.EventHandler`
+        
+            Parameters:
+                detector (:class:`~org.orekit.propagation.events.EventDetector`): object with appropriate type that can be used in determining correct return state
+                oldState (:class:`~org.orekit.propagation.SpacecraftState`): old state
+        
+            Returns:
+                new state
+        
+        
+        """
+        ...
+
 class RecordAndContinue(EventHandler):
     """
     public class RecordAndContinue extends :class:`~org.orekit.propagation.events.handlers.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.propagation.events.handlers.EventHandler`
@@ -524,10 +639,12 @@ class __module_protocol__(Protocol):
     EventMultipleHandler: typing.Type[EventMultipleHandler]
     FieldContinueOnEvent: typing.Type[FieldContinueOnEvent]
     FieldEventHandler: typing.Type[FieldEventHandler]
+    FieldRecallLastOccurrence: typing.Type[FieldRecallLastOccurrence]
     FieldRecordAndContinue: typing.Type[FieldRecordAndContinue]
     FieldStopOnDecreasing: typing.Type[FieldStopOnDecreasing]
     FieldStopOnEvent: typing.Type[FieldStopOnEvent]
     FieldStopOnIncreasing: typing.Type[FieldStopOnIncreasing]
+    RecallLastOccurrence: typing.Type[RecallLastOccurrence]
     RecordAndContinue: typing.Type[RecordAndContinue]
     StopOnDecreasing: typing.Type[StopOnDecreasing]
     StopOnEvent: typing.Type[StopOnEvent]
diff --git a/org-stubs/orekit/propagation/events/intervals/__init__.pyi b/org-stubs/orekit/propagation/events/intervals/__init__.pyi
new file mode 100644
index 0000000000000000000000000000000000000000..d2ea8f4e34537b9a0d27d791483187af3744a927
--- /dev/null
+++ b/org-stubs/orekit/propagation/events/intervals/__init__.pyi
@@ -0,0 +1,179 @@
+
+import sys
+if sys.version_info >= (3, 8):
+    from typing import Protocol
+else:
+    from typing_extensions import Protocol
+
+import org.orekit.frames
+import org.orekit.propagation.events
+import typing
+
+
+
+class ApsideDetectionAdaptableIntervalFactory:
+    """
+    public class ApsideDetectionAdaptableIntervalFactory extends :class:`~org.orekit.propagation.events.intervals.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Factory class for :class:`~org.orekit.propagation.events.AdaptableInterval` suitable for apside detection on eccentric
+        orbits. It requires :class:`~org.orekit.propagation.SpacecraftState` to be based on :class:`~org.orekit.orbits.Orbit` in
+        order to work.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.events.AdaptableInterval`, :class:`~org.orekit.propagation.events.ApsideDetector`,
+            :class:`~org.orekit.propagation.events.EventSlopeFilter`
+    """
+    @staticmethod
+    def computeKeplerianDurationFromPreviousApoapsis(double: float, double2: float) -> float:
+        """
+            Method computing time elapsed since last apoapsis, assuming Keplerian motion.
+        
+            Parameters:
+                meanAnomaly (double): mean anomaly
+                meanMotion (double): Keplerian mean motion
+        
+            Returns:
+                duration elapsed since last apoapsis
+        
+        
+        """
+        ...
+    @staticmethod
+    def computeKeplerianDurationFromPreviousPeriapsis(double: float, double2: float) -> float:
+        """
+            Method computing time elapsed since last periapsis, assuming Keplerian motion.
+        
+            Parameters:
+                meanAnomaly (double): mean anomaly
+                meanMotion (double): Keplerian mean motion
+        
+            Returns:
+                duration elapsed since last periapsis
+        
+        
+        """
+        ...
+    @staticmethod
+    def getBackwardApoapsisDetectionAdaptableInterval() -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for apoapsis detection with
+            backward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Returns:
+                adaptable interval for backward apoapsis detection
+        
+        
+        """
+        ...
+    @staticmethod
+    def getBackwardApsideDetectionAdaptableInterval() -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for arbitrary apside detection
+            with backward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Returns:
+                adaptable interval for backward apside detection
+        
+        
+        """
+        ...
+    @staticmethod
+    def getBackwardPeriapsisDetectionAdaptableInterval() -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for periapsis detection with
+            backward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Returns:
+                adaptable interval for backward periaspsis detection
+        
+        
+        """
+        ...
+    @staticmethod
+    def getForwardApoapsisDetectionAdaptableInterval() -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for apoapsis detection with
+            forward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Returns:
+                adaptable interval for forward apoapsis detection
+        
+        
+        """
+        ...
+    @staticmethod
+    def getForwardApsideDetectionAdaptableInterval() -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for arbitrary apside detection
+            with forward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Returns:
+                adaptable interval for forward apside detection
+        
+        
+        """
+        ...
+    @staticmethod
+    def getForwardPeriapsisDetectionAdaptableInterval() -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for periapsis detection with
+            forward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Returns:
+                adaptable interval for forward periaspsis detection
+        
+        
+        """
+        ...
+
+class ElevationDetectionAdaptableIntervalFactory:
+    """
+    public class ElevationDetectionAdaptableIntervalFactory extends :class:`~org.orekit.propagation.events.intervals.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        Factory class for :class:`~org.orekit.propagation.events.AdaptableInterval` suitable for elevation detection on
+        eccentric orbits. It requires :class:`~org.orekit.propagation.SpacecraftState` to be based on
+        :class:`~org.orekit.orbits.Orbit` in order to work.
+    
+        Since:
+            12.1
+    
+        Also see:
+            :class:`~org.orekit.propagation.events.AdaptableInterval`, :class:`~org.orekit.propagation.events.ApsideDetector`,
+            :class:`~org.orekit.propagation.events.EventSlopeFilter`
+    """
+    DEFAULT_ELEVATION_SWITCH: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_ELEVATION_SWITCH
+    
+        Default elevation abovde which interval should be switched to fine interval (-5°).
+    
+    """
+    @staticmethod
+    def getAdaptableInterval(topocentricFrame: org.orekit.frames.TopocentricFrame, double: float, double2: float) -> org.orekit.propagation.events.AdaptableInterval:
+        """
+            Method providing a candidate :class:`~org.orekit.propagation.events.AdaptableInterval` for arbitrary elevation detection
+            with forward propagation. It uses a Keplerian, eccentric approximation.
+        
+            Parameters:
+                topo (:class:`~org.orekit.frames.TopocentricFrame`): topocentric frame centered at ground interest point
+                elevationSwitch (double): elevation above which interval will switch to :code:`fineCheckInterval` (typically
+                    :meth:`~org.orekit.propagation.events.intervals.ElevationDetectionAdaptableIntervalFactory.DEFAULT_ELEVATION_SWITCH`
+                    which is -5°)
+                fineCheckInterval (double): check interval to use when elevation is above :code:`elevationSwitch`
+        
+            Returns:
+                adaptable interval for detection of elevation with respect to :code:`topo`
+        
+        
+        """
+        ...
+
+
+class __module_protocol__(Protocol):
+    # A module protocol which reflects the result of ``jp.JPackage("org.orekit.propagation.events.intervals")``.
+
+    ApsideDetectionAdaptableIntervalFactory: typing.Type[ApsideDetectionAdaptableIntervalFactory]
+    ElevationDetectionAdaptableIntervalFactory: typing.Type[ElevationDetectionAdaptableIntervalFactory]
diff --git a/org-stubs/orekit/propagation/integration/__init__.pyi b/org-stubs/orekit/propagation/integration/__init__.pyi
index 1dc109a1de0374af66229081bdcd8b42cc3c7c44..26337b6536788e02a476991160352d86f52cdd6d 100644
--- a/org-stubs/orekit/propagation/integration/__init__.pyi
+++ b/org-stubs/orekit/propagation/integration/__init__.pyi
@@ -831,7 +831,6 @@ class FieldIntegratedEphemeris(org.orekit.propagation.analytical.FieldAbstractAn
     def getInitialState(self) -> org.orekit.propagation.FieldSpacecraftState[_FieldIntegratedEphemeris__T]: ...
     def getMaxDate(self) -> org.orekit.time.FieldAbsoluteDate[_FieldIntegratedEphemeris__T]: ...
     def getMinDate(self) -> org.orekit.time.FieldAbsoluteDate[_FieldIntegratedEphemeris__T]: ...
-    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldIntegratedEphemeris__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldIntegratedEphemeris__T]: ...
     def getParametersDrivers(self) -> java.util.List[org.orekit.utils.ParameterDriver]: ...
     def resetInitialState(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldIntegratedEphemeris__T]) -> None: ...
 
@@ -903,6 +902,16 @@ class FieldStateMapper(typing.Generic[_FieldStateMapper__T]):
     @typing.overload
     def mapDoubleToDate(self, t: _FieldStateMapper__T, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldStateMapper__T]) -> org.orekit.time.FieldAbsoluteDate[_FieldStateMapper__T]: ...
     def mapStateToArray(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_FieldStateMapper__T], tArray: typing.Union[typing.List[_FieldStateMapper__T], jpype.JArray], tArray2: typing.Union[typing.List[_FieldStateMapper__T], jpype.JArray]) -> None: ...
+    def setAttitudeProvider(self, attitudeProvider: org.orekit.attitudes.AttitudeProvider) -> None:
+        """
+            Setter for the attitude provider.
+        
+            Parameters:
+                attitudeProvider (:class:`~org.orekit.attitudes.AttitudeProvider`): new attitude provider
+        
+        
+        """
+        ...
     def setPositionAngleType(self) -> None:
         """
             Set position angle type.
@@ -1000,28 +1009,6 @@ class IntegratedEphemeris(org.orekit.propagation.analytical.AbstractAnalyticalPr
                 the first date of the range
         
         
-        """
-        ...
-    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
-        
-            Specified by:
-                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
-                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
-        
-            Overrides:
-                :meth:`~org.orekit.propagation.AbstractPropagator.getPVCoordinates` in
-                class :class:`~org.orekit.propagation.AbstractPropagator`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date
-                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
-        
-            Returns:
-                time-stamped position/velocity of the body (m and m/s)
-        
-        
         """
         ...
     def resetInitialState(self, spacecraftState: org.orekit.propagation.SpacecraftState) -> None:
diff --git a/org-stubs/orekit/propagation/numerical/__init__.pyi b/org-stubs/orekit/propagation/numerical/__init__.pyi
index 514c9acdc65a0cfd4d966315e0013dcbdf6614ac..d50e51f2e24de35adfbbd38e42492427442e3685 100644
--- a/org-stubs/orekit/propagation/numerical/__init__.pyi
+++ b/org-stubs/orekit/propagation/numerical/__init__.pyi
@@ -247,7 +247,7 @@ class FieldNumericalPropagator(org.orekit.propagation.integration.FieldAbstractI
          
     
         By default, at the end of the propagation, the propagator resets the initial state to the final state, thus allowing a
-        new propagation to be started from there without recomputing the part already performed. This behaviour can be chenged
+        new propagation to be started from there without recomputing the part already performed. This behaviour can be changed
         by calling :meth:`~org.orekit.propagation.integration.FieldAbstractIntegratedPropagator.setResetAtEnd`.
     
         Beware the same instance cannot be used simultaneously by different threads, the class is *not* thread-safe.
@@ -294,7 +294,6 @@ class FieldNumericalPropagator(org.orekit.propagation.integration.FieldAbstractI
         
         """
         ...
-    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldNumericalPropagator__T], frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedFieldPVCoordinates[_FieldNumericalPropagator__T]: ...
     def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
         """
             Get propagation parameter type.
@@ -705,7 +704,7 @@ class NumericalPropagator(org.orekit.propagation.integration.AbstractIntegratedP
          
     
         By default, at the end of the propagation, the propagator resets the initial state to the final state, thus allowing a
-        new propagation to be started from there without recomputing the part already performed. This behaviour can be chenged
+        new propagation to be started from there without recomputing the part already performed. This behaviour can be changed
         by calling :meth:`~org.orekit.propagation.integration.AbstractIntegratedPropagator.setResetAtEnd`.
     
         Beware the same instance cannot be used simultaneously by different threads, the class is *not* thread-safe.
@@ -752,28 +751,6 @@ class NumericalPropagator(org.orekit.propagation.integration.AbstractIntegratedP
                 :class:`~org.orekit.orbits.Orbit`
         
         
-        """
-        ...
-    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.orekit.utils.TimeStampedPVCoordinates:
-        """
-            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
-        
-            Specified by:
-                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
-                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
-        
-            Overrides:
-                :meth:`~org.orekit.propagation.AbstractPropagator.getPVCoordinates` in
-                class :class:`~org.orekit.propagation.AbstractPropagator`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): current date
-                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
-        
-            Returns:
-                time-stamped position/velocity of the body (m and m/s)
-        
-        
         """
         ...
     def getPositionAngleType(self) -> org.orekit.orbits.PositionAngleType:
@@ -846,7 +823,7 @@ class NumericalPropagator(org.orekit.propagation.integration.AbstractIntegratedP
         
             Setting the central attraction coefficient is equivalent to
             :meth:`~org.orekit.propagation.numerical.NumericalPropagator.addForceModel` a
-            :class:`~org.orekit.forces.gravity.NewtonianAttraction` force model.
+            :class:`~org.orekit.forces.gravity.NewtonianAttraction` force model. *
         
             Overrides:
                 :meth:`~org.orekit.propagation.integration.AbstractIntegratedPropagator.setMu` in
diff --git a/org-stubs/orekit/propagation/numerical/cr3bp/__init__.pyi b/org-stubs/orekit/propagation/numerical/cr3bp/__init__.pyi
index cbe975959d8326947def045ea00943760635f216..1c8f6f84c4d5b670fed8563ccd414f456904fb9d 100644
--- a/org-stubs/orekit/propagation/numerical/cr3bp/__init__.pyi
+++ b/org-stubs/orekit/propagation/numerical/cr3bp/__init__.pyi
@@ -135,7 +135,7 @@ class CR3BPForceModel(org.orekit.forces.ForceModel):
         ...
     def dependsOnPositionOnly(self) -> bool:
         """
-            Check if force models depends on position only.
+            Check if force model depends on position only at a given, fixed date.
         
             Specified by:
                 :meth:`~org.orekit.forces.ForceModel.dependsOnPositionOnly` in interface :class:`~org.orekit.forces.ForceModel`
diff --git a/org-stubs/orekit/propagation/semianalytical/dsst/forces/__init__.pyi b/org-stubs/orekit/propagation/semianalytical/dsst/forces/__init__.pyi
index fdc4e624bf374e01728bdcc1a0b6e3030304991d..fc3ff0c5911e99748d848a3d9bae611149b94f7c 100644
--- a/org-stubs/orekit/propagation/semianalytical/dsst/forces/__init__.pyi
+++ b/org-stubs/orekit/propagation/semianalytical/dsst/forces/__init__.pyi
@@ -3077,6 +3077,17 @@ class DSSTAtmosphericDrag(AbstractGaussianContribution):
                 spacecraft shape
         
         
+        """
+        ...
+    def setRbar(self, double: float) -> None:
+        """
+            Set the critical distance from the center of the central body at which the atmosphere is considered to end, i.e. beyond
+            this distance atmospheric drag is not considered.
+        
+            Parameters:
+                rbar (double): the critical distance from the center of the central body (m)
+        
+        
         """
         ...
 
@@ -3090,13 +3101,13 @@ class DSSTSolarRadiationPressure(AbstractGaussianContribution):
         :class:`~org.orekit.forces.radiation.SolarRadiationPressure`.
     """
     @typing.overload
-    def __init__(self, double: float, double2: float, double3: float, double4: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double5: float): ...
+    def __init__(self, double: float, double2: float, double3: float, double4: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double5: float): ...
     @typing.overload
-    def __init__(self, double: float, double2: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double3: float): ...
+    def __init__(self, double: float, double2: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, double3: float): ...
     @typing.overload
-    def __init__(self, double: float, double2: float, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: org.orekit.forces.radiation.RadiationSensitive, double3: float): ...
+    def __init__(self, double: float, double2: float, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: org.orekit.forces.radiation.RadiationSensitive, double3: float): ...
     @typing.overload
-    def __init__(self, extendedPVCoordinatesProvider: org.orekit.utils.ExtendedPVCoordinatesProvider, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: org.orekit.forces.radiation.RadiationSensitive, double: float): ...
+    def __init__(self, extendedPVCoordinatesProvider: typing.Union[org.orekit.utils.ExtendedPVCoordinatesProvider, typing.Callable], oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid, radiationSensitive: org.orekit.forces.radiation.RadiationSensitive, double: float): ...
     def getEquatorialRadius(self) -> float:
         """
             Get the central body equatorial radius.
diff --git a/org-stubs/orekit/propagation/semianalytical/dsst/utilities/hansen/__init__.pyi b/org-stubs/orekit/propagation/semianalytical/dsst/utilities/hansen/__init__.pyi
index c439894e7d380a9192735270dd02280678668edc..9e551558e3bc555c609a924ccc0f862145581fb3 100644
--- a/org-stubs/orekit/propagation/semianalytical/dsst/utilities/hansen/__init__.pyi
+++ b/org-stubs/orekit/propagation/semianalytical/dsst/utilities/hansen/__init__.pyi
@@ -387,6 +387,61 @@ class HansenUtilities:
                 the identity matrix of order 4
         
         
+        """
+        ...
+    @staticmethod
+    def generateTesseralPolynomials(int: int, int2: int, int3: int, int4: int, int5: int, int6: int, polynomialFunctionArray: typing.Union[typing.List[typing.MutableSequence[org.hipparchus.analysis.polynomials.PolynomialFunction]], jpype.JArray], polynomialFunctionArray2: typing.Union[typing.List[typing.MutableSequence[org.hipparchus.analysis.polynomials.PolynomialFunction]], jpype.JArray]) -> None:
+        """
+            Generate the polynomials needed in the linear transformation.
+        
+            Parameters:
+                n0 (int): the index of the initial condition, Petre's paper
+                nMin (int): rhe minimum value for the order
+                offset (int): offset used to identify the polynomial that corresponds to a negative value of n in the internal array that starts at 0
+                slice (int): number of coefficients that will be computed with a set of roots
+                j (int): the j coefficient
+                s (int): the s coefficient
+                mpvec (:class:`~org.orekit.propagation.semianalytical.dsst.utilities.hansen.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.polynomials.PolynomialFunction?is`[][]): array to store the first vector of polynomials associated to Hansen coefficients and derivatives.
+                mpvecDeriv (:class:`~org.orekit.propagation.semianalytical.dsst.utilities.hansen.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.polynomials.PolynomialFunction?is`[][]): array to store the second vector of polynomials associated only to derivatives.
+        
+        
+        """
+        ...
+    @staticmethod
+    def generateThirdBodyPolynomials(int: int, int2: int, int3: int, int4: int, polynomialFunctionArray: typing.Union[typing.List[typing.MutableSequence[org.hipparchus.analysis.polynomials.PolynomialFunction]], jpype.JArray], polynomialFunctionArray2: typing.Union[typing.List[typing.MutableSequence[org.hipparchus.analysis.polynomials.PolynomialFunction]], jpype.JArray]) -> None:
+        """
+            Generate the polynomials needed in the linear transformation.
+        
+            Parameters:
+                n0 (int): the index of the initial condition, Petre's paper
+                nMax (int): the maximum order of n indexes
+                slice (int): number of coefficients that will be computed with a set of roots
+                s (int): the s coefficient
+                mpvec (:class:`~org.orekit.propagation.semianalytical.dsst.utilities.hansen.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.polynomials.PolynomialFunction?is`[][]): array to store the first vector of polynomials associated to Hansen coefficients and derivatives.
+                mpvecDeriv (:class:`~org.orekit.propagation.semianalytical.dsst.utilities.hansen.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.polynomials.PolynomialFunction?is`[][]): array to store the second vector of polynomials associated only to derivatives.
+        
+                    See Petre's paper
+        
+        
+        """
+        ...
+    @staticmethod
+    def generateZonalPolynomials(int: int, int2: int, int3: int, int4: int, int5: int, polynomialFunctionArray: typing.Union[typing.List[typing.MutableSequence[org.hipparchus.analysis.polynomials.PolynomialFunction]], jpype.JArray], polynomialFunctionArray2: typing.Union[typing.List[typing.MutableSequence[org.hipparchus.analysis.polynomials.PolynomialFunction]], jpype.JArray]) -> None:
+        """
+            Generate the polynomials needed in the linear transformation.
+        
+            Parameters:
+                n0 (int): the index of the initial condition, Petre's paper
+                nMin (int): rhe minimum value for the order
+                offset (int): offset used to identify the polynomial that corresponds to a negative value of n in the internal array that starts at 0
+                slice (int): number of coefficients that will be computed with a set of roots
+                s (int): the s coefficient
+                mpvec (:class:`~org.orekit.propagation.semianalytical.dsst.utilities.hansen.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.polynomials.PolynomialFunction?is`[][]): array to store the first vector of polynomials associated to Hansen coefficients and derivatives.
+                mpvecDeriv (:class:`~org.orekit.propagation.semianalytical.dsst.utilities.hansen.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.polynomials.PolynomialFunction?is`[][]): array to store the second vector of polynomials associated only to derivatives.
+        
+                    See Petre's paper
+        
+        
         """
         ...
 
diff --git a/org-stubs/orekit/rugged/api/__init__.pyi b/org-stubs/orekit/rugged/api/__init__.pyi
index 9a305704270f8ba58dd41fe1ffeed737782ec840..2669b912215698f5b0b83f8b4ba28158e84bb3de 100644
--- a/org-stubs/orekit/rugged/api/__init__.pyi
+++ b/org-stubs/orekit/rugged/api/__init__.pyi
@@ -832,6 +832,7 @@ class RuggedBuilder:
                 maximum number of tiles stored in the cache
         
             Also see:
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.getTileUpdater`
         
@@ -978,10 +979,24 @@ class RuggedBuilder:
                 updater used to load Digital Elevation Model tiles
         
             Also see:
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.getMaxCachedTiles`
         
         
+        """
+        ...
+    def isOverlappingTiles(self) -> bool:
+        """
+            Get the flag telling if the DEM tiles are overlapping.
+        
+            Returns:
+                true if the Digital Elevation Model tiles are overlapping; false otherwise. Default = true.
+        
+            Since:
+                4.0
+        
+        
         """
         ...
     def setAberrationOfLightCorrection(self, boolean: bool) -> 'RuggedBuilder':
@@ -1015,6 +1030,7 @@ class RuggedBuilder:
         
               - :meth:`~org.orekit.rugged.api.AlgorithmId.DUVENHAGE`, :meth:`~org.orekit.rugged.api.AlgorithmId.DUVENHAGE_FLAT_BODY` and
                 :meth:`~org.orekit.rugged.api.AlgorithmId.BASIC_SLOW_EXHAUSTIVE_SCAN_FOR_TESTS_ONLY` all require
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel` or
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel` to be called,
               - :meth:`~org.orekit.rugged.api.AlgorithmId.CONSTANT_ELEVATION_OVER_ELLIPSOID` requires
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.setConstantElevation` to be called,
@@ -1028,6 +1044,7 @@ class RuggedBuilder:
                 the builder instance
         
             Also see:
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.getAlgorithm`
         
@@ -1056,10 +1073,14 @@ class RuggedBuilder:
         
         """
         ...
+    @typing.overload
     def setDigitalElevationModel(self, tileUpdater: typing.Union[org.orekit.rugged.raster.TileUpdater, typing.Callable], int: int) -> 'RuggedBuilder':
         """
             Set the user-provided :class:`~org.orekit.rugged.raster.TileUpdater`.
         
+            The DEM tiles must be overlapping, otherwise use :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`
+            with flag set to false.
+        
             Note that when the algorithm specified in :meth:`~org.orekit.rugged.api.RuggedBuilder.setAlgorithm` is either
             :meth:`~org.orekit.rugged.api.AlgorithmId.CONSTANT_ELEVATION_OVER_ELLIPSOID` or
             :meth:`~org.orekit.rugged.api.AlgorithmId.IGNORE_DEM_USE_ELLIPSOID`, then this method becomes irrelevant and can either
@@ -1074,13 +1095,41 @@ class RuggedBuilder:
                 the builder instance
         
             Also see:
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.setAlgorithm`, :meth:`~org.orekit.rugged.api.RuggedBuilder.getTileUpdater`,
                 :meth:`~org.orekit.rugged.api.RuggedBuilder.getMaxCachedTiles`
         
+            Set the user-provided :class:`~org.orekit.rugged.raster.TileUpdater`.
+        
+            Note that when the algorithm specified in :meth:`~org.orekit.rugged.api.RuggedBuilder.setAlgorithm` is either
+            :meth:`~org.orekit.rugged.api.AlgorithmId.CONSTANT_ELEVATION_OVER_ELLIPSOID` or
+            :meth:`~org.orekit.rugged.api.AlgorithmId.IGNORE_DEM_USE_ELLIPSOID`, then this method becomes irrelevant and can either
+            be not called at all, or it can be called with an updater set to :code:`null`. For all other algorithms, the updater
+            must be properly configured.
+        
+            Parameters:
+                newTileUpdater (:class:`~org.orekit.rugged.raster.TileUpdater`): updater used to load Digital Elevation Model tiles
+                newMaxCachedTiles (int): maximum number of tiles stored in the cache
+                newIsOverlappingTiles (boolean): flag to tell if the DEM tiles are overlapping: true if overlapping; false otherwise.
+        
+            Returns:
+                the builder instance
+        
+            Since:
+                4.0
+        
+            Also see:
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setDigitalElevationModel`,
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.setAlgorithm`, :meth:`~org.orekit.rugged.api.RuggedBuilder.getTileUpdater`,
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.getMaxCachedTiles`,
+                :meth:`~org.orekit.rugged.api.RuggedBuilder.isOverlappingTiles`
+        
         
         """
         ...
     @typing.overload
+    def setDigitalElevationModel(self, tileUpdater: typing.Union[org.orekit.rugged.raster.TileUpdater, typing.Callable], int: int, boolean: bool) -> 'RuggedBuilder': ...
+    @typing.overload
     def setEllipsoid(self, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid) -> 'RuggedBuilder':
         """
             Set the reference ellipsoid.
@@ -1144,6 +1193,19 @@ class RuggedBuilder:
                 2.0
         
         
+        """
+        ...
+    def setOverlappingTiles(self, boolean: bool) -> None:
+        """
+            Set the DEM overlapping tiles flag.
+        
+            Parameters:
+                newIsOverlappingTiles (boolean): flag to tell if the Digital Elevation Model tiles are overlapping: true if overlapping; false otherwise
+        
+            Since:
+                4.0
+        
+        
         """
         ...
     def setRefractionCorrection(self, atmosphericRefraction: org.orekit.rugged.refraction.AtmosphericRefraction) -> 'RuggedBuilder':
diff --git a/org-stubs/orekit/rugged/errors/__init__.pyi b/org-stubs/orekit/rugged/errors/__init__.pyi
index 7fc8468dc223b7c92da9764c3b8e04c063a55c1f..4729306e8979da34940286692009884977e904ab 100644
--- a/org-stubs/orekit/rugged/errors/__init__.pyi
+++ b/org-stubs/orekit/rugged/errors/__init__.pyi
@@ -382,11 +382,11 @@ class RuggedException(java.lang.RuntimeException, org.hipparchus.exception.Local
 
 class RuggedExceptionWrapper(java.lang.RuntimeException):
     """
-    Deprecated. 
-    as of 2.1, this class is not used anymore, as :class:`~org.orekit.rugged.errors.RuggedException` is now an unchecked
-    exception
     :class:`~org.orekit.rugged.errors.https:.docs.oracle.com.javase.8.docs.api.java.lang.Deprecated?is` public class RuggedExceptionWrapper extends :class:`~org.orekit.rugged.errors.https:.docs.oracle.com.javase.8.docs.api.java.lang.RuntimeException?is`
     
+        Deprecated.
+        as of 2.1, this class is not used anymore, as :class:`~org.orekit.rugged.errors.RuggedException` is now an unchecked
+        exception
         This class allows to wrap :class:`~org.orekit.rugged.errors.RuggedException` instances in :code:`RuntimeException`.
     
         Wrapping :class:`~org.orekit.rugged.errors.RuggedException` instances is useful when a low level method throws one such
@@ -401,7 +401,7 @@ class RuggedExceptionWrapper(java.lang.RuntimeException):
     def __init__(self, ruggedException: RuggedException): ...
     def getException(self) -> RuggedException:
         """
-            Deprecated. 
+            Deprecated.
             Get the wrapped exception.
         
             Returns:
diff --git a/org-stubs/orekit/rugged/intersection/__init__.pyi b/org-stubs/orekit/rugged/intersection/__init__.pyi
index 50fcedc27b98f78c36e25754ab89f7d1b274aadc..c6148742213db7e5566f97a72ec40a56c767f85a 100644
--- a/org-stubs/orekit/rugged/intersection/__init__.pyi
+++ b/org-stubs/orekit/rugged/intersection/__init__.pyi
@@ -92,7 +92,7 @@ class BasicScanAlgorithm(IntersectionAlgorithm):
         The algorithm simply computes entry and exit points at high and low altitudes, and scans all Digital Elevation Models in
         the sub-tiles defined by these two corner points. It is not designed for operational use.
     """
-    def __init__(self, tileUpdater: typing.Union[org.orekit.rugged.raster.TileUpdater, typing.Callable], int: int): ...
+    def __init__(self, tileUpdater: typing.Union[org.orekit.rugged.raster.TileUpdater, typing.Callable], int: int, boolean: bool): ...
     def getAlgorithmId(self) -> org.orekit.rugged.api.AlgorithmId:
         """
             Get the algorithmId.
diff --git a/org-stubs/orekit/rugged/intersection/duvenhage/__init__.pyi b/org-stubs/orekit/rugged/intersection/duvenhage/__init__.pyi
index 6cab0c354cf446ea858c03bd48283bc464dcfb28..5c228e5910f3934875d6ddf0752a29969e523602 100644
--- a/org-stubs/orekit/rugged/intersection/duvenhage/__init__.pyi
+++ b/org-stubs/orekit/rugged/intersection/duvenhage/__init__.pyi
@@ -20,10 +20,10 @@ class DuvenhageAlgorithm(org.orekit.rugged.intersection.IntersectionAlgorithm):
     
         Digital Elevation Model intersection using Bernardt Duvenhage's algorithm.
     
-        The algorithm is described in the 2009 paper: `Using An Implicit Min/Max KD-Tree for Doing Efficient Terrain Line of
-        Sight Calculations <http://researchspace.csir.co.za/dspace/bitstream/10204/3041/1/Duvenhage_2009.pdf>`.
+        The algorithm is described in the 2009 paper:
+        :class:`~org.orekit.rugged.intersection.duvenhage.https:.researchspace.csir.co.za.dspace.bitstream.10204.3041.1.Duvenhage_2009.pdf`.
     """
-    def __init__(self, tileUpdater: typing.Union[org.orekit.rugged.raster.TileUpdater, typing.Callable], int: int, boolean: bool): ...
+    def __init__(self, tileUpdater: typing.Union[org.orekit.rugged.raster.TileUpdater, typing.Callable], int: int, boolean: bool, boolean2: bool): ...
     def getAlgorithmId(self) -> org.orekit.rugged.api.AlgorithmId:
         """
             Get the algorithmId.
@@ -101,21 +101,226 @@ class DuvenhageAlgorithm(org.orekit.rugged.intersection.IntersectionAlgorithm):
         ...
 
 class MinMaxTreeTile(org.orekit.rugged.raster.SimpleTile):
-    def getCrossedBoundaryColumns(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]: ...
-    def getCrossedBoundaryRows(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]: ...
-    def getLevels(self) -> int: ...
+    """
+    public class MinMaxTreeTile extends :class:`~org.orekit.rugged.raster.SimpleTile`
+    
+        Implementation of a :class:`~org.orekit.rugged.raster.Tile` with a min/max kd tree.
+    
+        A n level min/max kd-tree contains sub-tiles merging individual cells together from coarse-grained (at level 0) to
+        fine-grained (at level n-1). Level n-1, which is the deepest one, is computed from the raw cells by merging adjacent
+        cells pairs columns (i.e. cells at indices (i, 2j) and (i, 2j+1) are merged together by computing and storing the
+        minimum and maximum in a sub-tile. Level n-1 therefore has the same number of rows but half the number of columns of the
+        raw tile, and its sub-tiles are 1 cell high and 2 cells wide. Level n-2 is computed from level n-1 by merging sub-tiles
+        rows. Level n-2 therefore has half the number of rows and half the number of columns of the raw tile, and its sub-tiles
+        are 2 cells high and 2 cells wide. Level n-3 is again computed by merging columns, level n-4 merging rows and so on. As
+        depth decreases, the number of sub-tiles decreases and their size increase. Level 0 is reached when there is only either
+        one row or one column of large sub-tiles.
+    
+        During the merging process, if at some stage there is an odd number of rows or columns, then the last sub-tile at next
+        level will not be computed by merging two rows/columns from the current level, but instead computed by simply copying
+        the last single row/column. The process is therefore well defined for any raw tile initial dimensions. A direct
+        consequence is that the dimension of the sub-tiles in the last row or column may be smaller than the dimension of
+        regular sub-tiles.
+    
+        If we consider for example a tall 107 ⨉ 19 raw tile, the min/max kd-tree will have 9 levels:
+    
+        Also see:
+            :class:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTileFactory`
+    """
+    def getCrossedBoundaryColumns(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]:
+        """
+            Get the index of sub-tiles start columns crossed.
+        
+            When going from one column to another column at some tree level, we cross sub-tiles boundaries. This method returns the
+            index of these boundaries.
+        
+            Parameters:
+                column1 (int): starting column
+                column2 (int): ending column (excluded)
+                level (int): tree level
+        
+            Returns:
+                indices of columns crossed at sub-tiles boundaries, in crossing order, the endpoints *are* included (i.e. if
+                :code:`column1` or :code:`column2` are boundary columns, they will be in returned array)
+        
+        
+        """
+        ...
+    def getCrossedBoundaryRows(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]:
+        """
+            Get the index of sub-tiles start rows crossed.
+        
+            When going from one row to another row at some tree level, we cross sub-tiles boundaries. This method returns the index
+            of these boundaries.
+        
+            Parameters:
+                row1 (int): starting row
+                row2 (int): ending row
+                level (int): tree level
+        
+            Returns:
+                indices of rows crossed at sub-tiles boundaries, in crossing order, the endpoints *are* included (i.e. if :code:`row1`
+                or :code:`row2` are boundary rows, they will be in returned array)
+        
+        
+        """
+        ...
+    def getLevels(self) -> int:
+        """
+            Get the number of kd-tree levels (not counting raw elevations).
+        
+            Returns:
+                number of kd-tree levels
+        
+            Also see:
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMinElevation`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMaxElevation`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMergeLevel`
+        
+        
+        """
+        ...
     @typing.overload
-    def getMaxElevation(self, int: int, int2: int, int3: int) -> float: ...
+    def getMaxElevation(self, int: int, int2: int, int3: int) -> float:
+        """
+            Get the maximum elevation at some level tree.
+        
+            Note that the max elevation is *not* computed only at cell center, but considering that it is interpolated considering
+            also Eastwards and Northwards neighbors, and extends up to the center of these neighbors. As an example, lets consider
+            four neighboring cells in some Digital Elevation Model:
+            When we interpolate elevation at a point located slightly South-West to the center of the (i+1, j+1) cell, we use all
+            four cells in the interpolation, and we will get a result very close to 12 if we start close to (i+1, j+1) cell center.
+            As the max value for this interpolation is stored at (i, j) indices, this implies that :code:`getMaxElevation(i, j, l)`
+            must return 12 if l is chosen such that the sub-tile at tree level l includes cell (i,j) but not cell (i+1, j+1). In
+            other words, interpolation implies sub-tile boundaries are overshoot by one column to the East and one row to the North
+            when computing max.
+        
+            Parameters:
+                i (int): row index of the cell
+                j (int): column index of the cell
+                level (int): tree level
+        
+            Returns:
+                maximum value that can be reached when interpolating elevation in the sub-tile
+        
+            Also see:
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getLevels`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMinElevation`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMergeLevel`
+        
+        
+        """
+        ...
     @typing.overload
     def getMaxElevation(self) -> float: ...
-    def getMergeLevel(self, int: int, int2: int, int3: int, int4: int) -> int: ...
+    def getMergeLevel(self, int: int, int2: int, int3: int, int4: int) -> int:
+        """
+            Get the deepest level at which two cells are merged in the same min/max sub-tile.
+        
+            Parameters:
+                i1 (int): row index of first cell
+                j1 (int): column index of first cell
+                i2 (int): row index of second cell
+                j2 (int): column index of second cell
+        
+            Returns:
+                deepest level at which two cells are merged in the same min/max sub-tile, or -1 if they are never merged in the same
+                sub-tile
+        
+            Also see:
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getLevels`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMinElevation`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMaxElevation`
+        
+        
+        """
+        ...
     @typing.overload
-    def getMinElevation(self, int: int, int2: int, int3: int) -> float: ...
+    def getMinElevation(self, int: int, int2: int, int3: int) -> float:
+        """
+            Get the minimum elevation at some level tree.
+        
+            Note that the min elevation is *not* computed only at cell center, but considering that it is interpolated considering
+            also Eastwards and Northwards neighbors, and extends up to the center of these neighbors. As an example, lets consider
+            four neighboring cells in some Digital Elevation Model:
+            When we interpolate elevation at a point located slightly South-West to the center of the (i+1, j+1) cell, we use all
+            four cells in the interpolation, and we will get a result very close to 10 if we start close to (i+1, j+1) cell center.
+            As the min value for this interpolation is stored at (i, j) indices, this implies that :code:`getMinElevation(i, j, l)`
+            must return 10 if l is chosen such that the sub-tile at tree level l includes cell (i,j) but not cell (i+1, j+1). In
+            other words, interpolation implies sub-tile boundaries are overshoot by one column to the East and one row to the North
+            when computing min.
+        
+            Parameters:
+                i (int): row index of the cell
+                j (int): column index of the cell
+                level (int): tree level
+        
+            Returns:
+                minimum value that can be reached when interpolating elevation in the sub-tile
+        
+            Also see:
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getLevels`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMaxElevation`,
+                :meth:`~org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile.getMergeLevel`
+        
+        
+        """
+        ...
     @typing.overload
     def getMinElevation(self) -> float: ...
-    def isColumnMerging(self, int: int) -> bool: ...
-    def locateMax(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]: ...
-    def locateMin(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]: ...
+    def isColumnMerging(self, int: int) -> bool:
+        """
+            Check if the merging operation between level and level-1 is a column merging.
+        
+            Parameters:
+                level (int): level to check
+        
+            Returns:
+                true if the merging operation between level and level-1 is a column merging, false if is a row merging
+        
+        
+        """
+        ...
+    def locateMax(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]:
+        """
+            Locate the cell at which max elevation is reached for a specified level.
+        
+            Max is computed with respect to the continuous interpolated elevation, which takes four neighboring cells into account.
+            This implies that the cell at which max value is reached for some level is either within the sub-tile for this level, or
+            in some case it may be one column outside to the East or one row outside to the North. See
+            :meth:`~org.orekit.rugged.raster.SimpleTile.getMaxElevation` for a more complete explanation.
+        
+            Parameters:
+                i (int): row index of the cell
+                j (int): column index of the cell
+                level (int): tree level of the sub-tile considered
+        
+            Returns:
+                row/column indices of the cell at which min elevation is reached
+        
+        
+        """
+        ...
+    def locateMin(self, int: int, int2: int, int3: int) -> typing.MutableSequence[int]:
+        """
+            Locate the cell at which min elevation is reached for a specified level.
+        
+            Min is computed with respect to the continuous interpolated elevation, which takes four neighboring cells into account.
+            This implies that the cell at which min value is reached for some level is either within the sub-tile for this level, or
+            in some case it may be one column outside to the East or one row outside to the North. See
+            :meth:`~org.orekit.rugged.raster.SimpleTile.getMinElevation` for a more complete explanation.
+        
+            Parameters:
+                i (int): row index of the cell
+                j (int): column index of the cell
+                level (int): tree level of the sub-tile considered
+        
+            Returns:
+                row/column indices of the cell at which min elevation is reached
+        
+        
+        """
+        ...
 
 class MinMaxTreeTileFactory(org.orekit.rugged.raster.TileFactory[MinMaxTreeTile]):
     """
diff --git a/org-stubs/orekit/rugged/raster/__init__.pyi b/org-stubs/orekit/rugged/raster/__init__.pyi
index 67f9e92ed92875c3c6e5fada2f765c12edbab589..06dac26401a806cc043691ef5c9305b83b9a4bcf 100644
--- a/org-stubs/orekit/rugged/raster/__init__.pyi
+++ b/org-stubs/orekit/rugged/raster/__init__.pyi
@@ -12,6 +12,68 @@ import typing
 
 
 
+class EarthHemisphere(java.lang.Enum['EarthHemisphere']):
+    """
+    public enum EarthHemisphere extends :class:`~org.orekit.rugged.raster.https:.docs.oracle.com.javase.8.docs.api.java.lang.Enum?is`<:class:`~org.orekit.rugged.raster.EarthHemisphere`>
+    
+        Enumerate for Earth hemispheres for tiles definition.
+    
+        For Latitude: NORTH / SOUTH
+    
+        For Longitude: WESTEXTREME / WEST / EAST / EASTEXTREME
+    
+        Since:
+            4.0
+    """
+    SOUTH: typing.ClassVar['EarthHemisphere'] = ...
+    NORTH: typing.ClassVar['EarthHemisphere'] = ...
+    WESTEXTREME: typing.ClassVar['EarthHemisphere'] = ...
+    WEST: typing.ClassVar['EarthHemisphere'] = ...
+    EAST: typing.ClassVar['EarthHemisphere'] = ...
+    EASTEXTREME: typing.ClassVar['EarthHemisphere'] = ...
+    _valueOf_0__T = typing.TypeVar('_valueOf_0__T', bound=java.lang.Enum)  # <T>
+    @typing.overload
+    @staticmethod
+    def valueOf(class_: typing.Type[_valueOf_0__T], string: str) -> _valueOf_0__T: ...
+    @typing.overload
+    @staticmethod
+    def valueOf(string: str) -> 'EarthHemisphere':
+        """
+            Returns the enum constant of this type with the specified name. The string must match *exactly* an identifier used to
+            declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+        
+            Parameters:
+                name (:class:`~org.orekit.rugged.raster.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is`): the name of the enum constant to be returned.
+        
+            Returns:
+                the enum constant with the specified name
+        
+            Raises:
+                :class:`~org.orekit.rugged.raster.https:.docs.oracle.com.javase.8.docs.api.java.lang.IllegalArgumentException?is`: if this enum type has no constant with the specified name
+                :class:`~org.orekit.rugged.raster.https:.docs.oracle.com.javase.8.docs.api.java.lang.NullPointerException?is`: if the argument is null
+        
+        
+        """
+        ...
+    @staticmethod
+    def values() -> typing.MutableSequence['EarthHemisphere']:
+        """
+            Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to
+            iterate over the constants as follows:
+        
+            .. code-block: java
+            
+            for (EarthHemisphere c : EarthHemisphere.values())
+                System.out.println(c);
+            
+        
+            Returns:
+                an array containing the constants of this enum type, in the order they are declared
+        
+        
+        """
+        ...
+
 _TileFactory__T = typing.TypeVar('_TileFactory__T', bound='Tile')  # <T>
 class TileFactory(typing.Generic[_TileFactory__T]):
     """
@@ -84,14 +146,14 @@ class TilesCache(typing.Generic[_TilesCache__T]):
     
         Beware, this cache is *not* thread-safe!
     """
-    def __init__(self, tileFactory: typing.Union[TileFactory[_TilesCache__T], typing.Callable[[], _TilesCache__T]], tileUpdater: typing.Union[TileUpdater, typing.Callable], int: int): ...
+    def __init__(self, tileFactory: typing.Union[TileFactory[_TilesCache__T], typing.Callable[[], _TilesCache__T]], tileUpdater: typing.Union[TileUpdater, typing.Callable], int: int, boolean: bool): ...
     def getTile(self, double: float, double2: float) -> _TilesCache__T:
         """
             Get the tile covering a ground point.
         
             Parameters:
-                latitude (double): ground point latitude
-                longitude (double): ground point longitude
+                latitude (double): ground point latitude (rad)
+                longitude (double): ground point longitude (rad)
         
             Returns:
                 tile covering the ground point
@@ -899,6 +961,7 @@ class SimpleTile(Tile):
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.rugged.raster")``.
 
+    EarthHemisphere: typing.Type[EarthHemisphere]
     SimpleTile: typing.Type[SimpleTile]
     SimpleTileFactory: typing.Type[SimpleTileFactory]
     Tile: typing.Type[Tile]
diff --git a/org-stubs/orekit/rugged/utils/__init__.pyi b/org-stubs/orekit/rugged/utils/__init__.pyi
index 8ccd955c0e594c3a3272dafac94787dc875b901f..192f480b9210d91b38ddcff0103c004ad4830d87 100644
--- a/org-stubs/orekit/rugged/utils/__init__.pyi
+++ b/org-stubs/orekit/rugged/utils/__init__.pyi
@@ -7,6 +7,7 @@ else:
 
 import java.io
 import java.util
+import jpype
 import org.hipparchus
 import org.hipparchus.analysis.differentiation
 import org.hipparchus.geometry.euclidean.threed
@@ -18,6 +19,93 @@ import typing
 
 
 
+class AbsoluteDateArrayHandling:
+    """
+    public class AbsoluteDateArrayHandling extends :class:`~org.orekit.rugged.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        AbsoluteDateArrayHandling consist of additions to AbsoluteDate to handle arrays.
+    """
+    def __init__(self, absoluteDateArray: typing.Union[typing.List[org.orekit.time.AbsoluteDate], jpype.JArray]): ...
+    def durationFrom(self, absoluteDateArray: typing.Union[typing.List[org.orekit.time.AbsoluteDate], jpype.JArray]) -> typing.MutableSequence[float]:
+        """
+            Get array with durations between instances dates and corresponding given dates If instance dates = [date1, date2, ...,
+            daten] and argument datesForDuration = [d1, d2, ..., dn] then this function will return [date1 durationFrom d1, date2
+            durationFrom d2, ..., daten durationFrom dn]. If duration from from all arguments dates wants to be compute on each date
+            see :meth:`~org.orekit.rugged.utils.AbsoluteDateArrayHandling.multipleDurationFrom`.
+        
+            Parameters:
+                datesForDuration (org.orekit.time.AbsoluteDate[]): dates for which we want to compute the duration form instances dates. Warning must have same length as instance dates.
+        
+            Returns:
+                a array of double representing durations between instance dates and corresponding argument dates
+        
+        
+        """
+        ...
+    def getDates(self) -> typing.MutableSequence[org.orekit.time.AbsoluteDate]:
+        """
+            Get instance dates array.
+        
+            Returns:
+                dates array
+        
+        
+        """
+        ...
+    def multipleDurationFrom(self, absoluteDateArray: typing.Union[typing.List[org.orekit.time.AbsoluteDate], jpype.JArray]) -> typing.MutableSequence[typing.MutableSequence[float]]:
+        """
+            Get array with durations between instances dates and given dates If instance dates = [date1, date2, ..., daten] and
+            argument datesForDuration = [d1, d2, ..., dn] then this function will return a matrix [[date1 durationFrom d1, date1
+            durationFrom d2, ..., date1 durationFrom dn], [date2 durationFrom d1, date2 durationFrom d2, ..., date2 durationFrom
+            dn], [...] [daten durationFrom d1, daten durationFrom d2, ..., date1 durationFrom dn]]. If ones want to compute duration
+            from only 1 date corresponding to 1 instance date see
+            :meth:`~org.orekit.rugged.utils.AbsoluteDateArrayHandling.durationFrom`.
+        
+            Parameters:
+                datesForDuration (org.orekit.time.AbsoluteDate[]): dates for which we want to compute the duration form instances dates
+        
+            Returns:
+                a matrix of double representing durations from instance dates If instance dates = [date1, date2, ..., daten] each line
+                correspond to one date (for example date1 duration from all given dates in arguments (building the different columns))
+        
+        
+        """
+        ...
+    def multipleShiftedBy(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[typing.MutableSequence[org.orekit.time.AbsoluteDate]]:
+        """
+            Get time-shifted dates for several dates or several time shifts. If instance dates = [date1, date2, ..., daten] and
+            argument dts = [dts1, dts2, ..., dtsn] then this function will return a matrix [[date1 shiftedby dts1, date1 shiftedBy
+            dts2, ..., date1 shiftedBy dtsn], [date2 shiftedby dts1, date2 shiftedBy dts2, ..., date2 shiftedBy dtsn], [...] [daten
+            shiftedby dts1, daten shiftedBy dts2, ..., date1 shiftedBy dtsn]]. If ones want to apply only 1 time shift corresponding
+            to 1 date see :meth:`~org.orekit.rugged.utils.AbsoluteDateArrayHandling.shiftedBy`.
+        
+            Parameters:
+                dts (double[]): time shifts array in seconds we want to apply to dates
+        
+            Returns:
+                a matrix of new dates, shifted with respect to wanted time shifts. If instance dates = [date1, date2, ..., daten] each
+                line correspond to one date (for example date1 shiftedBy all timeshifts (building the different columns))
+        
+        
+        """
+        ...
+    def shiftedBy(self, doubleArray: typing.Union[typing.List[float], jpype.JArray]) -> typing.MutableSequence[org.orekit.time.AbsoluteDate]:
+        """
+            Get time-shifted dates for several dates and corresponding time shifts. If instance dates = [date1, date2, ..., daten]
+            and argument dts = [dts1, dts2, ..., dtsn] then this function will return [date1 shiftedby dts1, date2 shiftedBy dts2,
+            ..., daten shiftedBy dtsn]. If several time shift want to be applied on each date see
+            :meth:`~org.orekit.rugged.utils.AbsoluteDateArrayHandling.multipleShiftedBy`.
+        
+            Parameters:
+                dts (double[]): time shifts array in seconds we want to apply to corresponding dates. Warning, must be same length as dates.
+        
+            Returns:
+                an 1D array of new dates, shifted with respect to wanted corresponding time shifts.
+        
+        
+        """
+        ...
+
 _DerivativeGenerator__T = typing.TypeVar('_DerivativeGenerator__T', bound=org.hipparchus.analysis.differentiation.Derivative)  # <T>
 class DerivativeGenerator(typing.Generic[_DerivativeGenerator__T]):
     """
@@ -483,10 +571,10 @@ class SpacecraftToObservedBody(java.io.Serializable):
 
 class DSGenerator(DerivativeGenerator[org.hipparchus.analysis.differentiation.DerivativeStructure]):
     """
-    Deprecated. 
-    as of 2.2, replaced by :class:`~org.orekit.rugged.utils.DerivativeGenerator`
     public interface DSGenerator extends :class:`~org.orekit.rugged.utils.DerivativeGenerator`<org.hipparchus.analysis.differentiation.DerivativeStructure>
     
+        Deprecated.
+        as of 2.2, replaced by :class:`~org.orekit.rugged.utils.DerivativeGenerator`
         Generator for :code:`DerivativeStructure` instances from :code:`ParameterDriver`.
     
         Note that this interface is for Rugged library internal use only.
@@ -582,6 +670,7 @@ class MinSelector(Selector):
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.rugged.utils")``.
 
+    AbsoluteDateArrayHandling: typing.Type[AbsoluteDateArrayHandling]
     DSGenerator: typing.Type[DSGenerator]
     DerivativeGenerator: typing.Type[DerivativeGenerator]
     ExtendedEllipsoid: typing.Type[ExtendedEllipsoid]
diff --git a/org-stubs/orekit/ssa/collision/shorttermencounter/probability/twod/__init__.pyi b/org-stubs/orekit/ssa/collision/shorttermencounter/probability/twod/__init__.pyi
index a7a9ae47afea53d66b73a85e133acc30e4ad2c30..5bcb900fc29bff1ef7c085ce96dbbbf553d60f85 100644
--- a/org-stubs/orekit/ssa/collision/shorttermencounter/probability/twod/__init__.pyi
+++ b/org-stubs/orekit/ssa/collision/shorttermencounter/probability/twod/__init__.pyi
@@ -88,9 +88,7 @@ class FieldShortTermEncounter2DDefinition(typing.Generic[_FieldShortTermEncounte
         """
             Compute the Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly
             called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.FieldShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Uses a default zero threshold of 1e-15 for the computation of the diagonalizing of the projected covariance matrix.
         
@@ -107,9 +105,7 @@ class FieldShortTermEncounter2DDefinition(typing.Generic[_FieldShortTermEncounte
         """
             Compute the Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly
             called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.FieldShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Parameters:
                 zeroThreshold (double): threshold below which values are considered equal to zero
@@ -149,9 +145,7 @@ class FieldShortTermEncounter2DDefinition(typing.Generic[_FieldShortTermEncounte
         """
             Compute the squared Mahalanobis distance computed with the other collision object projected onto the collision plane
             (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.FieldShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Uses a default zero threshold of 1e-15 for the computation of the diagonalizing of the projected covariance matrix.
         
@@ -168,9 +162,7 @@ class FieldShortTermEncounter2DDefinition(typing.Generic[_FieldShortTermEncounte
         """
             Compute the squared Mahalanobis distance computed with the other collision object projected onto the collision plane
             (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.FieldShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Parameters:
                 zeroThreshold (double): threshold below which values are considered equal to zero
@@ -337,9 +329,7 @@ class ShortTermEncounter2DDefinition:
         """
             Compute the Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly
             called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Uses a default zero threshold of 1e-15 for the computation of the diagonalizing of the projected covariance matrix.
         
@@ -356,9 +346,7 @@ class ShortTermEncounter2DDefinition:
         """
             Compute the Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly
             called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Parameters:
                 zeroThreshold (double): threshold below which values are considered equal to zero
@@ -485,9 +473,7 @@ class ShortTermEncounter2DDefinition:
         """
             Compute the squared Mahalanobis distance computed with the other collision object projected onto the collision plane
             (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Uses a default zero threshold of 1e-15 for the computation of the diagonalizing of the projected covariance matrix.
         
@@ -524,9 +510,7 @@ class ShortTermEncounter2DDefinition:
         
             Compute the squared Mahalanobis distance computed with the other collision object projected onto the collision plane
             (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is
-            diagonalized, see
-            :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition.computeEncounterPlaneRotationMatrix`
-            for more details).
+            diagonalized, see :code:`computeEncounterPlaneRotationMatrix(double)` for more details).
         
             Parameters:
                 zeroThreshold (double): threshold below which values are considered equal to zero
@@ -829,14 +813,6 @@ class AbstractAlfriend1999(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (T): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (T): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -869,14 +845,6 @@ class AbstractAlfriend1999(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (double): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (double): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1047,14 +1015,6 @@ class AbstractShortTermEncounter1DNumerical2DPOCMethod(AbstractShortTermEncounte
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (T): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (T): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1126,14 +1086,6 @@ class AbstractShortTermEncounter1DNumerical2DPOCMethod(AbstractShortTermEncounte
         
             It uses the defaults integrator and maximum number of function evaluation when integrating.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (double): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (double): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1223,14 +1175,6 @@ class Alfano2005(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (T): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (T): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1263,14 +1207,6 @@ class Alfano2005(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (double): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (double): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1365,14 +1301,6 @@ class Chan1997(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (T): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (T): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1405,14 +1333,6 @@ class Chan1997(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (double): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (double): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1534,14 +1454,6 @@ class Laas2015(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (double): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (double): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
@@ -1562,14 +1474,6 @@ class Laas2015(AbstractShortTermEncounter2DPOCMethod):
             :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DDefinition`) rotated by the
             rotation matrix which is used to diagonalize the combined covariance matrix.
         
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod.compute` in
-                interface :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.ShortTermEncounter2DPOCMethod`
-        
-            Specified by:
-                :meth:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod.compute` in
-                class :class:`~org.orekit.ssa.collision.shorttermencounter.probability.twod.AbstractShortTermEncounter2DPOCMethod`
-        
             Parameters:
                 xm (T): other collision object projected position onto the collision plane in the rotated encounter frame x-axis (m)
                 ym (T): other collision object projected position onto the collision plane in the rotated encounter frame y-axis (m)
diff --git a/org-stubs/orekit/time/__init__.pyi b/org-stubs/orekit/time/__init__.pyi
index ab0ff8ae391e553596878c1321bef6ce33505ec0..9f1e5ec7ae7fcdbdbbf540ed32f9536ef8534612 100644
--- a/org-stubs/orekit/time/__init__.pyi
+++ b/org-stubs/orekit/time/__init__.pyi
@@ -10,6 +10,7 @@ import java.io
 import java.lang
 import java.time
 import java.util
+import java.util.concurrent
 import java.util.function
 import java.util.stream
 import jpype
@@ -51,6 +52,64 @@ class ChronologicalComparator(java.util.Comparator['TimeStamped'], java.io.Seria
         """
         ...
 
+class ClockModel:
+    """
+    public interface ClockModel
+    
+        Offset clock model.
+    
+        Since:
+            12.1
+    """
+    _getOffset_1__T = typing.TypeVar('_getOffset_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getOffset(self, absoluteDate: 'AbsoluteDate') -> 'ClockOffset':
+        """
+            Get the clock offset at date.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which offset is requested
+        
+            Returns:
+                clock offset at specified date
+        
+        """
+        ...
+    @typing.overload
+    def getOffset(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_getOffset_1__T]) -> 'FieldClockOffset'[_getOffset_1__T]:
+        """
+            Get the clock offset at date.
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which offset is requested
+        
+            Returns:
+                clock offset at specified date
+        
+        
+        """
+        ...
+    def getValidityEnd(self) -> 'AbsoluteDate':
+        """
+            Get validity end.
+        
+            Returns:
+                model validity end
+        
+        
+        """
+        ...
+    def getValidityStart(self) -> 'AbsoluteDate':
+        """
+            Get validity start.
+        
+            Returns:
+                model validity start
+        
+        
+        """
+        ...
+
 class DateComponents(java.io.Serializable, java.lang.Comparable['DateComponents']):
     """
     public class DateComponents extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Comparable?is`<:class:`~org.orekit.time.DateComponents`>
@@ -414,6 +473,8 @@ class DateTimeComponents(java.io.Serializable, java.lang.Comparable['DateTimeCom
     def __init__(self, dateComponents: DateComponents, timeComponents: 'TimeComponents'): ...
     @typing.overload
     def __init__(self, dateTimeComponents: 'DateTimeComponents', double: float): ...
+    @typing.overload
+    def __init__(self, dateTimeComponents: 'DateTimeComponents', long: int, timeUnit: java.util.concurrent.TimeUnit): ...
     def compareTo(self, dateTimeComponents: 'DateTimeComponents') -> int:
         """
         
@@ -464,6 +525,7 @@ class DateTimeComponents(java.io.Serializable, java.lang.Comparable['DateTimeCom
         
         """
         ...
+    @typing.overload
     def offsetFrom(self, dateTimeComponents: 'DateTimeComponents') -> float:
         """
             Compute the seconds offset between two instances.
@@ -477,9 +539,28 @@ class DateTimeComponents(java.io.Serializable, java.lang.Comparable['DateTimeCom
             Also see:
                 :meth:`~org.orekit.time.DateTimeComponents.%3Cinit%3E`
         
+            Compute the seconds offset between two instances.
+        
+            Parameters:
+                dateTime (:class:`~org.orekit.time.DateTimeComponents`): dateTime to subtract from the instance
+                timeUnit (:class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`): the desired :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`
+        
+            Returns:
+                offset in the given timeunit between the two instants (positive if the instance is posterior to the argument), rounded
+                to the nearest integer
+                :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`
+        
+            Since:
+                12.1
+        
+            Also see:
+                :meth:`~org.orekit.time.DateTimeComponents.%3Cinit%3E`
+        
         
         """
         ...
+    @typing.overload
+    def offsetFrom(self, dateTimeComponents: 'DateTimeComponents', timeUnit: java.util.concurrent.TimeUnit) -> int: ...
     @staticmethod
     def parseDateTime(string: str) -> 'DateTimeComponents':
         """
@@ -2387,14 +2468,20 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
     @typing.overload
     def __init__(self, string: str, timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, instant: typing.Union[java.time.Instant, datetime.datetime]): ...
+    @typing.overload
     def __init__(self, instant: typing.Union[java.time.Instant, datetime.datetime], timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, instant: typing.Union[java.time.Instant, datetime.datetime], uTCScale: 'UTCScale'): ...
+    @typing.overload
     def __init__(self, date: java.util.Date, timeScale: TimeScale): ...
     @typing.overload
     def __init__(self, absoluteDate: 'AbsoluteDate', double: float): ...
     @typing.overload
     def __init__(self, absoluteDate: 'AbsoluteDate', double: float, timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, absoluteDate: 'AbsoluteDate', long: int, timeUnit: java.util.concurrent.TimeUnit): ...
+    @typing.overload
     def __init__(self, dateComponents: DateComponents, timeComponents: TimeComponents, timeScale: TimeScale): ...
     @typing.overload
     def __init__(self, dateComponents: DateComponents, timeScale: TimeScale): ...
@@ -2419,6 +2506,7 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
         ...
     @staticmethod
     def createBesselianEpoch(double: float) -> 'AbsoluteDate': ...
+    @typing.overload
     @staticmethod
     def createJDDate(int: int, double: float, timeScale: TimeScale) -> 'AbsoluteDate':
         """
@@ -2432,9 +2520,31 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
             Returns:
                 a new instant
         
+            Build an instance corresponding to a Julian Day date.
+        
+            This function should be preferred to :meth:`~org.orekit.time.AbsoluteDate.createMJDDate` when the target time scale has
+            a non-constant offset with respect to TAI.
+        
+            The idea is to introduce a pivot time scale that is close to the target time scale but has a constant bias with TAI.
+        
+            For example, to get a date from an MJD in TDB time scale, it's advised to use the TT time scale as a pivot scale. TT is
+            very close to TDB and has constant offset to TAI.
+        
+            Parameters:
+                jd (int): Julian day
+                secondsSinceNoon (double): seconds in the Julian day (BEWARE, Julian days start at noon, so 0.0 is noon)
+                timeScale (:class:`~org.orekit.time.TimeScale`): timescale in which the seconds in day are defined
+                pivotTimeScale (:class:`~org.orekit.time.TimeScale`): pivot timescale used as intermediate timescale
+        
+            Returns:
+                a new instant
+        
         
         """
         ...
+    @typing.overload
+    @staticmethod
+    def createJDDate(int: int, double: float, timeScale: TimeScale, timeScale2: TimeScale) -> 'AbsoluteDate': ...
     @staticmethod
     def createJulianEpoch(double: float) -> 'AbsoluteDate': ...
     @staticmethod
@@ -2463,11 +2573,38 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
             Also see:
                 :meth:`~org.orekit.time.AbsoluteDate.offsetFrom`, :meth:`~org.orekit.time.AbsoluteDate.%3Cinit%3E`
         
+            Compute the physically elapsed duration between two instants.
+        
+            The returned duration is the duration physically elapsed between the two instants, using the given time unit and rounded
+            to the nearest integer, measured in a regular time scale with respect to surface of the Earth (i.e either the
+            :class:`~org.orekit.time.TAIScale`, the :class:`~org.orekit.time.TTScale` or the :class:`~org.orekit.time.GPSScale`). It
+            is the only method that gives a duration with a physical meaning.
+        
+            This method is the reverse of the :meth:`~org.orekit.time.AbsoluteDate.%3Cinit%3E` constructor.
+        
+            Parameters:
+                instant (:class:`~org.orekit.time.AbsoluteDate`): instant to subtract from the instance
+                timeUnit (:class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`): :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is` precision for the
+                    offset
+        
+            Returns:
+                offset in the given timeunit between the two instants (positive if the instance is posterior to the argument), rounded
+                to the nearest integer
+                :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`
+        
+            Since:
+                12.1
+        
+            Also see:
+                :meth:`~org.orekit.time.AbsoluteDate.%3Cinit%3E`
+        
         
         """
         ...
     @typing.overload
     def durationFrom(self, absoluteDate: 'AbsoluteDate') -> float: ...
+    @typing.overload
+    def durationFrom(self, absoluteDate: 'AbsoluteDate', timeUnit: java.util.concurrent.TimeUnit) -> int: ...
     def equals(self, object: typing.Any) -> bool:
         """
             Check if the instance represents the same time as another instance.
@@ -2866,6 +3003,7 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
     @typing.overload
     @staticmethod
     def parseCCSDSUnsegmentedTimeCode(byte: int, byte2: int, byteArray: typing.Union[typing.List[int], jpype.JArray, bytes], absoluteDate: 'AbsoluteDate', absoluteDate2: 'AbsoluteDate') -> 'AbsoluteDate': ...
+    @typing.overload
     def shiftedBy(self, double: float) -> 'AbsoluteDate':
         """
             Get a time-shifted date.
@@ -2885,9 +3023,25 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
                 :meth:`~org.orekit.utils.PVCoordinates.shiftedBy`, :meth:`~org.orekit.attitudes.Attitude.shiftedBy`,
                 :meth:`~org.orekit.orbits.Orbit.shiftedBy`, :meth:`~org.orekit.propagation.SpacecraftState.shiftedBy`
         
+            Get a time-shifted date.
+        
+            Calling this method is equivalent to call :code:`new AbsoluteDate(this, shift, timeUnit)`.
+        
+            Parameters:
+                dt (long): time shift in time units
+                timeUnit (:class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`): :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is` of the shift
+        
+            Returns:
+                a new date, shifted with respect to instance (which is immutable)
+        
+            Since:
+                12.1
+        
         
         """
         ...
+    @typing.overload
+    def shiftedBy(self, long: int, timeUnit: java.util.concurrent.TimeUnit) -> 'AbsoluteDate': ...
     def timeScalesOffset(self, timeScale: TimeScale, timeScale2: TimeScale) -> float:
         """
             Compute the offset between two time scales at the current instant.
@@ -2920,6 +3074,40 @@ class AbsoluteDate(TimeStamped, TimeShiftable['AbsoluteDate'], java.lang.Compara
                 location of the instant in the time scale
         
         
+        """
+        ...
+    @typing.overload
+    def toInstant(self) -> java.time.Instant:
+        """
+            Convert the instance to a Java :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is`.
+            Nanosecond precision is preserved during this conversion
+        
+            Returns:
+                a :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is` instance representing the
+                location of the instant in the utc time scale
+        
+            Since:
+                12.1
+        
+        """
+        ...
+    @typing.overload
+    def toInstant(self, timeScales: TimeScales) -> java.time.Instant:
+        """
+            Convert the instance to a Java :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is`.
+            Nanosecond precision is preserved during this conversion
+        
+            Parameters:
+                timeScales (:class:`~org.orekit.time.TimeScales`): the timescales to use
+        
+            Returns:
+                a :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is` instance representing the
+                location of the instant in the utc time scale
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     @typing.overload
@@ -3650,101 +3838,73 @@ class AbstractTimeScales(TimeScales):
         """
         ...
 
-class BDTScale(TimeScale):
+class AggregatedClockModel(ClockModel):
     """
-    public class BDTScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
+    public class AggregatedClockModel extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.ClockModel`
     
-        Beidou system time scale.
-    
-        By convention, BDT = UTC on January 1st 2006.
-    
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+        Offset clock model aggregating several other clock models.
     
-        Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+        Since:
+            12.1
     """
-    def getName(self) -> str:
-        """
-            Get the name time scale.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Returns:
-                name of the time scale
-        
-        
-        """
-        ...
-    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    def __init__(self, timeSpanMap: org.orekit.utils.TimeSpanMap[ClockModel]): ...
+    def getModels(self) -> org.orekit.utils.TimeSpanMap[ClockModel]: ...
+    _getOffset_1__T = typing.TypeVar('_getOffset_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
+    def getOffset(self, absoluteDate: AbsoluteDate) -> 'ClockOffset':
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
+            Get the clock offset at date.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
         
             Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which offset is requested
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+                clock offset at specified date
         
         """
         ...
     @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
+    def getOffset(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_getOffset_1__T]) -> 'FieldClockOffset'[_getOffset_1__T]:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
+            Get the clock offset at date.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
         
             Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which offset is requested
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+                clock offset at specified date
         
         
         """
         ...
-    def offsetToTAI(self, dateComponents: DateComponents, timeComponents: TimeComponents) -> float:
+    def getValidityEnd(self) -> AbsoluteDate:
         """
-            Get the offset to convert locations from instance to :class:`~org.orekit.time.TAIScale`.
+            Get validity end.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.DateComponents`): date location in the time scale
-                time (:class:`~org.orekit.time.TimeComponents`): time location in the time scale
+                :meth:`~org.orekit.time.ClockModel.getValidityEnd` in interface :class:`~org.orekit.time.ClockModel`
         
             Returns:
-                offset in seconds to add to a location in *instance time scale* to get a location in *:class:`~org.orekit.time.TAIScale`
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI`
+                model validity end
         
         
         """
         ...
-    def toString(self) -> str:
+    def getValidityStart(self) -> AbsoluteDate:
         """
+            Get validity start.
         
-            Overrides:
-                :meth:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getValidityStart` in interface :class:`~org.orekit.time.ClockModel`
+        
+            Returns:
+                model validity start
         
         
         """
@@ -3771,243 +3931,141 @@ class BurstSelector(DatesSelector):
     def __init__(self, int: int, double: float, double2: float, timeScale: TimeScale): ...
     def selectDates(self, absoluteDate: AbsoluteDate, absoluteDate2: AbsoluteDate) -> java.util.List[AbsoluteDate]: ...
 
-_FieldTimeShiftable__T = typing.TypeVar('_FieldTimeShiftable__T', bound='FieldTimeShiftable')  # <T>
-_FieldTimeShiftable__KK = typing.TypeVar('_FieldTimeShiftable__KK', bound=org.hipparchus.CalculusFieldElement)  # <KK>
-class FieldTimeShiftable(TimeShiftable[_FieldTimeShiftable__T], typing.Generic[_FieldTimeShiftable__T, _FieldTimeShiftable__KK]):
+class ClockOffset(TimeStamped):
     """
-    public interface FieldTimeShiftable<T extends FieldTimeShiftable<T, KK>, KK extends :class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<KK>> extends :class:`~org.orekit.time.TimeShiftable`<T>
+    public class ClockOffset extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeStamped`
     
-        This interface represents objects that can be shifted in time.
+        Container for time stamped clock offset.
     
         Since:
-            9.0
+            12.1
     """
-    @typing.overload
-    def shiftedBy(self, kK: _FieldTimeShiftable__KK) -> _FieldTimeShiftable__T:
+    def __init__(self, absoluteDate: AbsoluteDate, double: float, double2: float, double3: float): ...
+    def getAcceleration(self) -> float:
         """
-            Get a time-shifted instance.
+            Get acceleration.
         
-            Parameters:
-                dt (:class:`~org.orekit.time.FieldTimeShiftable`): time shift in seconds
+            Returns:
+                acceleration (:code:`Double.NaN` if unknown)
+        
+        
+        """
+        ...
+    def getDate(self) -> AbsoluteDate:
+        """
+            Get the date.
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
         
             Returns:
-                a new instance, shifted with respect to instance (which is not changed)
+                date attached to the object
         
         
         """
         ...
-    @typing.overload
-    def shiftedBy(self, double: float) -> _FieldTimeShiftable__T: ...
-
-_FieldTimeStampedPair__F = typing.TypeVar('_FieldTimeStampedPair__F', bound=FieldTimeStamped)  # <F>
-_FieldTimeStampedPair__S = typing.TypeVar('_FieldTimeStampedPair__S', bound=FieldTimeStamped)  # <S>
-_FieldTimeStampedPair__KK = typing.TypeVar('_FieldTimeStampedPair__KK', bound=org.hipparchus.CalculusFieldElement)  # <KK>
-class FieldTimeStampedPair(FieldTimeStamped[_FieldTimeStampedPair__KK], typing.Generic[_FieldTimeStampedPair__F, _FieldTimeStampedPair__S, _FieldTimeStampedPair__KK]):
-    """
-    public class FieldTimeStampedPair<F extends :class:`~org.orekit.time.FieldTimeStamped`<KK>, S extends :class:`~org.orekit.time.FieldTimeStamped`<KK>, KK extends :class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<KK>> extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.FieldTimeStamped`<KK>
-    
-        Pair of time stamped values being defined at the same date.
-    
-        Also see:
-            :class:`~org.orekit.time.FieldTimeStamped`
-    """
-    DEFAULT_DATE_EQUALITY_THRESHOLD: typing.ClassVar[float] = ...
-    """
-    public static final double DEFAULT_DATE_EQUALITY_THRESHOLD
-    
-        Default date equality threshold of 1 ns.
-    
-        Also see:
-            :meth:`~constant`
-    
-    
-    """
-    @typing.overload
-    def __init__(self, f: _FieldTimeStampedPair__F, s2: _FieldTimeStampedPair__S): ...
-    @typing.overload
-    def __init__(self, f: _FieldTimeStampedPair__F, s2: _FieldTimeStampedPair__S, double: float): ...
-    def getDate(self) -> 'FieldAbsoluteDate'[_FieldTimeStampedPair__KK]: ...
-    def getFirst(self) -> _FieldTimeStampedPair__F:
+    def getOffset(self) -> float:
         """
-            Get first time stamped value.
+            Get offset.
         
             Returns:
-                first time stamped value
+                offset
         
         
         """
         ...
-    def getSecond(self) -> _FieldTimeStampedPair__S:
+    def getRate(self) -> float:
         """
-            Get second time stamped value.
+            Get rate.
         
             Returns:
-                second time stamped value
+                rate (:code:`Double.NaN` if unknown)
         
         
         """
         ...
 
-class FixedStepSelector(DatesSelector):
+class ClockTimeScale(TimeScale):
     """
-    public class FixedStepSelector extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.DatesSelector`
-    
-        Selector generating a continuous stream of dates separated by a constant step.
-    
-        The dates can be aligned to whole steps in some time scale. So for example if a step of 60s is used and the alignment
-        time scale is set to :meth:`~org.orekit.time.TimeScales.getUTC`, dates will be selected at whole minutes in UTC time.
+    public class ClockTimeScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
     
-        BEWARE! This class stores internally the last selected dates, so it is *neither* reusable across several
-        :class:`~org.orekit.estimation.measurements.generation.EventBasedScheduler` or
-        :class:`~org.orekit.estimation.measurements.generation.ContinuousScheduler` schedulers, *nor* thread-safe. A separate
-        selector should be used for each scheduler and for each thread in multi-threading context.
+        Time scale with clock offset from another time scale.
     
         Since:
-            9.3
-    """
-    def __init__(self, double: float, timeScale: TimeScale): ...
-    def selectDates(self, absoluteDate: AbsoluteDate, absoluteDate2: AbsoluteDate) -> java.util.List[AbsoluteDate]: ...
-
-class GLONASSDate(java.io.Serializable, TimeStamped):
-    """
-    public class GLONASSDate extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.time.TimeStamped`
-    
-        Container for date in GLONASS form.
-    
-        Since:
-            10.0
+            12.1
     
         Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, "GLONASS Interface Control Document v1.0, 2016", :meth:`~serialized`
+            :meth:`~serialized`
     """
-    @typing.overload
-    def __init__(self, int: int, int2: int, double: float): ...
-    @typing.overload
-    def __init__(self, int: int, int2: int, double: float, timeScale: TimeScale): ...
-    @typing.overload
-    def __init__(self, absoluteDate: AbsoluteDate): ...
-    @typing.overload
-    def __init__(self, absoluteDate: AbsoluteDate, timeScale: TimeScale): ...
-    def getDate(self) -> AbsoluteDate:
+    def __init__(self, string: str, timeScale: TimeScale, clockModel: ClockModel): ...
+    def getName(self) -> str:
         """
-            Description copied from interface: :meth:`~org.orekit.time.TimeStamped.getDate`
-            Get the date.
+            Get the name time scale.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
+                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
         
             Returns:
-                date attached to the object
+                name of the time scale
         
         
         """
         ...
-    def getDayNumber(self) -> int:
+    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
         """
-            Get the number of the current day in a four year interval.
-        
-            Returns:
-                the number of the current day in a four year interval
+            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
         
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
         
-        """
-        ...
-    def getGMST(self) -> float:
-        """
-            Get the Greenwich Mean Sidereal Time.
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
         
             Returns:
-                the Greenwich Mean Sidereal Time (rad)
+                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
+                time scale*
         
+            Also see:
+                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         """
         ...
-    def getIntervalNumber(self) -> int:
+    @typing.overload
+    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
         """
-            Get the number of the current four year interval.
-        
-            Returns:
-                the number of the current four year interval
+            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
         
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
         
-        """
-        ...
-    def getJD0(self) -> float:
-        """
-            Get the current Julian date JD0.
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
         
             Returns:
-                the current date JD0
-        
-        
-        """
-        ...
-    def getSecInDay(self) -> float:
-        """
-            Get the number of seconds since N :sub:`a` start.
+                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
+                time scale*
         
-            Returns:
-                number of seconds since N :sub:`a` start
+            Also see:
+                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         
         """
         ...
 
-class GLONASSScale(TimeScale):
+class ConstantOffsetTimeScale(TimeScale):
     """
-    public class GLONASSScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
-    
-        GLONASS time scale.
+    public class ConstantOffsetTimeScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
     
-        By convention, TGLONASS = UTC + 3 hours.
-    
-        The time scale is defined in ` Global Navigation Sattelite System GLONASS - Interface Control document
-        <http://www.spacecorp.ru/upload/iblock/1c4/cgs-aaixymyt%205.1%20ENG%20v%202014.02.18w.pdf>`, version 5.1 2008 (the typo
-        in the title is in the original document title).
+        Base class for time scales with constant offset with respecto to TAI.
     
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+        Since:
+            12.1
     
         Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+            :meth:`~serialized`
     """
-    _getLeap_1__T = typing.TypeVar('_getLeap_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def getLeap(self, absoluteDate: AbsoluteDate) -> float:
-        """
-            Get the value of the previous leap.
-        
-            This method will return 0.0 for all time scales that do *not* implement leap seconds.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.getLeap` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): date to check
-        
-            Returns:
-                value of the previous leap
-        
-        """
-        ...
-    @typing.overload
-    def getLeap(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_getLeap_1__T]) -> _getLeap_1__T:
-        """
-            Get the value of the previous leap.
-        
-            This method will return 0.0 for all time scales that do *not* implement leap seconds.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.getLeap` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date to check
-        
-            Returns:
-                value of the previous leap
-        
-        
-        """
-        ...
     def getName(self) -> str:
         """
             Get the name time scale.
@@ -4019,88 +4077,6 @@ class GLONASSScale(TimeScale):
                 name of the time scale
         
         
-        """
-        ...
-    _insideLeap_1__T = typing.TypeVar('_insideLeap_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def insideLeap(self, absoluteDate: AbsoluteDate) -> bool:
-        """
-            Check if date is within a leap second introduction *in this time scale*.
-        
-            This method will return false for all time scales that do *not* implement leap seconds, even if the date corresponds to
-            a leap second in :class:`~org.orekit.time.UTCScale`.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.insideLeap` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): date to check
-        
-            Returns:
-                true if time is within a leap second introduction
-        
-        """
-        ...
-    @typing.overload
-    def insideLeap(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_insideLeap_1__T]) -> bool:
-        """
-            Check if date is within a leap second introduction *in this time scale*.
-        
-            This method will return false for all time scales that do *not* implement leap seconds, even if the date corresponds to
-            a leap second in :class:`~org.orekit.time.UTCScale`.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.insideLeap` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date to check
-        
-            Returns:
-                true if time is within a leap second introduction
-        
-        
-        """
-        ...
-    _minuteDuration_1__T = typing.TypeVar('_minuteDuration_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def minuteDuration(self, absoluteDate: AbsoluteDate) -> int:
-        """
-            Check length of the current minute *in this time scale*.
-        
-            This method will return 60 for all time scales that do *not* implement leap seconds, even if the date corresponds to a
-            leap second in :class:`~org.orekit.time.UTCScale`, and 61 for time scales that do implement leap second when the current
-            date is within the last minute before the leap, or during the leap itself.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.minuteDuration` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): date to check
-        
-            Returns:
-                60 or 61 depending on leap seconds introduction
-        
-        """
-        ...
-    @typing.overload
-    def minuteDuration(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_minuteDuration_1__T]) -> int:
-        """
-            Check length of the current minute *in this time scale*.
-        
-            This method will return 60 for all time scales that do *not* implement leap seconds, even if the date corresponds to a
-            leap second in :class:`~org.orekit.time.UTCScale`, and 61 for time scales that do implement leap second when the current
-            date is within the last minute before the leap, or during the leap itself.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.minuteDuration` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date to check
-        
-            Returns:
-                60 or 61 depending on leap seconds introduction
-        
-        
         """
         ...
     _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -4177,113 +4153,169 @@ class GLONASSScale(TimeScale):
         """
         ...
 
-class GMSTScale(TimeScale):
+_FieldClockOffset__T = typing.TypeVar('_FieldClockOffset__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldClockOffset(FieldTimeStamped[_FieldClockOffset__T], typing.Generic[_FieldClockOffset__T]):
     """
-    public class GMSTScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
+    public class FieldClockOffset<T extends :class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.FieldTimeStamped`<T>
     
-        Greenwich Mean Sidereal Time.
-    
-        The Greenwich Mean Sidereal Time is the hour angle between the meridian of Greenwich and mean equinox of date at 0h UT1.
-    
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+        Container for time stamped clock offset.
     
         Since:
-            5.1
-    
-        Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+            12.1
     """
-    def getName(self) -> str:
+    def __init__(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldClockOffset__T], t: _FieldClockOffset__T, t2: _FieldClockOffset__T, t3: _FieldClockOffset__T): ...
+    def getAcceleration(self) -> _FieldClockOffset__T:
         """
-            Get the name time scale.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
+            Get acceleration.
         
             Returns:
-                name of the time scale
+                acceleration (:code:`null` if unknown)
         
         
         """
         ...
-    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
+    def getDate(self) -> 'FieldAbsoluteDate'[_FieldClockOffset__T]: ...
+    def getOffset(self) -> _FieldClockOffset__T:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
+            Get offset.
         
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+            Returns:
+                offset
         
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
+        
+        """
+        ...
+    def getRate(self) -> _FieldClockOffset__T:
+        """
+            Get rate.
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
+                rate (:code:`null` if unknown)
         
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         """
         ...
+
+_FieldTimeShiftable__T = typing.TypeVar('_FieldTimeShiftable__T', bound='FieldTimeShiftable')  # <T>
+_FieldTimeShiftable__KK = typing.TypeVar('_FieldTimeShiftable__KK', bound=org.hipparchus.CalculusFieldElement)  # <KK>
+class FieldTimeShiftable(TimeShiftable[_FieldTimeShiftable__T], typing.Generic[_FieldTimeShiftable__T, _FieldTimeShiftable__KK]):
+    """
+    public interface FieldTimeShiftable<T extends FieldTimeShiftable<T, KK>, KK extends :class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<KK>> extends :class:`~org.orekit.time.TimeShiftable`<T>
+    
+        This interface represents objects that can be shifted in time.
+    
+        Since:
+            9.0
+    """
     @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
+    def shiftedBy(self, kK: _FieldTimeShiftable__KK) -> _FieldTimeShiftable__T:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+            Get a time-shifted instance.
         
             Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
+                dt (:class:`~org.orekit.time.FieldTimeShiftable`): time shift in seconds
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
+                a new instance, shifted with respect to instance (which is not changed)
         
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+        
+        """
+        ...
+    @typing.overload
+    def shiftedBy(self, double: float) -> _FieldTimeShiftable__T: ...
+
+_FieldTimeStampedPair__F = typing.TypeVar('_FieldTimeStampedPair__F', bound=FieldTimeStamped)  # <F>
+_FieldTimeStampedPair__S = typing.TypeVar('_FieldTimeStampedPair__S', bound=FieldTimeStamped)  # <S>
+_FieldTimeStampedPair__KK = typing.TypeVar('_FieldTimeStampedPair__KK', bound=org.hipparchus.CalculusFieldElement)  # <KK>
+class FieldTimeStampedPair(FieldTimeStamped[_FieldTimeStampedPair__KK], typing.Generic[_FieldTimeStampedPair__F, _FieldTimeStampedPair__S, _FieldTimeStampedPair__KK]):
+    """
+    public class FieldTimeStampedPair<F extends :class:`~org.orekit.time.FieldTimeStamped`<KK>, S extends :class:`~org.orekit.time.FieldTimeStamped`<KK>, KK extends :class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<KK>> extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.FieldTimeStamped`<KK>
+    
+        Pair of time stamped values being defined at the same date.
+    
+        Also see:
+            :class:`~org.orekit.time.FieldTimeStamped`
+    """
+    DEFAULT_DATE_EQUALITY_THRESHOLD: typing.ClassVar[float] = ...
+    """
+    public static final double DEFAULT_DATE_EQUALITY_THRESHOLD
+    
+        Default date equality threshold of 1 ns.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
+    """
+    @typing.overload
+    def __init__(self, f: _FieldTimeStampedPair__F, s2: _FieldTimeStampedPair__S): ...
+    @typing.overload
+    def __init__(self, f: _FieldTimeStampedPair__F, s2: _FieldTimeStampedPair__S, double: float): ...
+    def getDate(self) -> 'FieldAbsoluteDate'[_FieldTimeStampedPair__KK]: ...
+    def getFirst(self) -> _FieldTimeStampedPair__F:
+        """
+            Get first time stamped value.
+        
+            Returns:
+                first time stamped value
         
         
         """
         ...
-    def toString(self) -> str:
+    def getSecond(self) -> _FieldTimeStampedPair__S:
         """
+            Get second time stamped value.
         
-            Overrides:
-                :meth:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Returns:
+                second time stamped value
         
         
         """
         ...
 
-class GNSSDate(java.io.Serializable, TimeStamped):
+class FixedStepSelector(DatesSelector):
     """
-    public class GNSSDate extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.time.TimeStamped`
+    public class FixedStepSelector extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.DatesSelector`
     
-        Container for date in GNSS form.
+        Selector generating a continuous stream of dates separated by a constant step.
     
-        This class can be used to handle :meth:`~org.orekit.gnss.SatelliteSystem.GPS`,
-        :meth:`~org.orekit.gnss.SatelliteSystem.GALILEO`, :meth:`~org.orekit.gnss.SatelliteSystem.BEIDOU` and
-        :meth:`~org.orekit.gnss.SatelliteSystem.QZSS` dates.
+        The dates can be aligned to whole steps in some time scale. So for example if a step of 60s is used and the alignment
+        time scale is set to :meth:`~org.orekit.time.TimeScales.getUTC`, dates will be selected at whole minutes in UTC time.
+    
+        BEWARE! This class stores internally the last selected dates, so it is *neither* reusable across several
+        :class:`~org.orekit.estimation.measurements.generation.EventBasedScheduler` or
+        :class:`~org.orekit.estimation.measurements.generation.ContinuousScheduler` schedulers, *nor* thread-safe. A separate
+        selector should be used for each scheduler and for each thread in multi-threading context.
+    
+        Since:
+            9.3
+    """
+    def __init__(self, double: float, timeScale: TimeScale): ...
+    def selectDates(self, absoluteDate: AbsoluteDate, absoluteDate2: AbsoluteDate) -> java.util.List[AbsoluteDate]: ...
+
+class GLONASSDate(java.io.Serializable, TimeStamped):
+    """
+    public class GLONASSDate extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.time.TimeStamped`
+    
+        Container for date in GLONASS form.
+    
+        Since:
+            10.0
     
         Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+            :class:`~org.orekit.time.AbsoluteDate`, "GLONASS Interface Control Document v1.0, 2016", :meth:`~serialized`
     """
     @typing.overload
-    def __init__(self, int: int, double: float, satelliteSystem: org.orekit.gnss.SatelliteSystem): ...
-    @typing.overload
-    def __init__(self, int: int, double: float, satelliteSystem: org.orekit.gnss.SatelliteSystem, dateComponents: DateComponents, timeScales: TimeScales): ...
+    def __init__(self, int: int, int2: int, double: float): ...
     @typing.overload
-    def __init__(self, int: int, double: float, satelliteSystem: org.orekit.gnss.SatelliteSystem, timeScales: TimeScales): ...
+    def __init__(self, int: int, int2: int, double: float, timeScale: TimeScale): ...
     @typing.overload
-    def __init__(self, absoluteDate: AbsoluteDate, satelliteSystem: org.orekit.gnss.SatelliteSystem): ...
+    def __init__(self, absoluteDate: AbsoluteDate): ...
     @typing.overload
-    def __init__(self, absoluteDate: AbsoluteDate, satelliteSystem: org.orekit.gnss.SatelliteSystem, timeScales: TimeScales): ...
+    def __init__(self, absoluteDate: AbsoluteDate, timeScale: TimeScale): ...
     def getDate(self) -> AbsoluteDate:
         """
+            Description copied from interface: :meth:`~org.orekit.time.TimeStamped.getDate`
             Get the date.
         
             Specified by:
@@ -4295,106 +4327,203 @@ class GNSSDate(java.io.Serializable, TimeStamped):
         
         """
         ...
-    def getMilliInWeek(self) -> float:
+    def getDayNumber(self) -> int:
         """
-            Get the number of milliseconds since week start.
+            Get the number of the current day in a four year interval.
         
             Returns:
-                number of milliseconds since week start
+                the number of the current day in a four year interval
         
         
         """
         ...
-    @staticmethod
-    def getRolloverReference() -> DateComponents:
+    def getGMST(self) -> float:
         """
-            Get the reference date ensuring continuity across GNSS week rollover.
+            Get the Greenwich Mean Sidereal Time.
         
             Returns:
-                reference reference date for GNSS week rollover
+                the Greenwich Mean Sidereal Time (rad)
         
-            Since:
-                9.3.1
         
-            Also see:
-                :meth:`~org.orekit.time.GNSSDate.setRolloverReference`, :meth:`~org.orekit.time.GNSSDate.%3Cinit%3E`
+        """
+        ...
+    def getIntervalNumber(self) -> int:
+        """
+            Get the number of the current four year interval.
+        
+            Returns:
+                the number of the current four year interval
+        
+        
+        """
+        ...
+    def getJD0(self) -> float:
+        """
+            Get the current Julian date JD0.
+        
+            Returns:
+                the current date JD0
+        
+        
+        """
+        ...
+    def getSecInDay(self) -> float:
+        """
+            Get the number of seconds since N :sub:`a` start.
+        
+            Returns:
+                number of seconds since N :sub:`a` start
+        
+        
+        """
+        ...
+
+class GLONASSScale(TimeScale):
+    """
+    public class GLONASSScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
+    
+        GLONASS time scale.
+    
+        By convention, TGLONASS = UTC + 3 hours.
+    
+        The time scale is defined in ` Global Navigation Sattelite System GLONASS - Interface Control document
+        <http://www.spacecorp.ru/upload/iblock/1c4/cgs-aaixymyt%205.1%20ENG%20v%202014.02.18w.pdf>`, version 5.1 2008 (the typo
+        in the title is in the original document title).
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    _getLeap_1__T = typing.TypeVar('_getLeap_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getLeap(self, absoluteDate: AbsoluteDate) -> float:
+        """
+            Get the value of the previous leap.
+        
+            This method will return 0.0 for all time scales that do *not* implement leap seconds.
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.getLeap` in interface :class:`~org.orekit.time.TimeScale`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date to check
+        
+            Returns:
+                value of the previous leap
+        
+        """
+        ...
+    @typing.overload
+    def getLeap(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_getLeap_1__T]) -> _getLeap_1__T:
+        """
+            Get the value of the previous leap.
+        
+            This method will return 0.0 for all time scales that do *not* implement leap seconds.
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.getLeap` in interface :class:`~org.orekit.time.TimeScale`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date to check
+        
+            Returns:
+                value of the previous leap
+        
+        
+        """
+        ...
+    def getName(self) -> str:
+        """
+            Get the name time scale.
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
+        
+            Returns:
+                name of the time scale
         
         
         """
         ...
-    def getSecondsInWeek(self) -> float:
+    _insideLeap_1__T = typing.TypeVar('_insideLeap_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def insideLeap(self, absoluteDate: AbsoluteDate) -> bool:
         """
-            Get the number of seconds since week start.
+            Check if date is within a leap second introduction *in this time scale*.
         
-            Returns:
-                number of seconds since week start
+            This method will return false for all time scales that do *not* implement leap seconds, even if the date corresponds to
+            a leap second in :class:`~org.orekit.time.UTCScale`.
         
-            Since:
-                12.0
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.insideLeap` in interface :class:`~org.orekit.time.TimeScale`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): date to check
         
+            Returns:
+                true if time is within a leap second introduction
         
         """
         ...
-    def getWeekNumber(self) -> int:
+    @typing.overload
+    def insideLeap(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_insideLeap_1__T]) -> bool:
         """
-            Get the week number since the GNSS reference epoch.
+            Check if date is within a leap second introduction *in this time scale*.
         
-            The week number returned here has been fixed for GNSS week rollover, i.e. it may be larger than the corresponding week
-            cycle of the constellation.
+            This method will return false for all time scales that do *not* implement leap seconds, even if the date corresponds to
+            a leap second in :class:`~org.orekit.time.UTCScale`.
+        
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.insideLeap` in interface :class:`~org.orekit.time.TimeScale`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date to check
         
             Returns:
-                week number since since the GNSS reference epoch
+                true if time is within a leap second introduction
         
         
         """
         ...
-    @staticmethod
-    def setRolloverReference(dateComponents: DateComponents) -> None:
+    _minuteDuration_1__T = typing.TypeVar('_minuteDuration_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def minuteDuration(self, absoluteDate: AbsoluteDate) -> int:
         """
-            Set a reference date for ensuring continuity across GNSS week rollover.
+            Check length of the current minute *in this time scale*.
         
-            Instance created using the :meth:`~org.orekit.time.GNSSDate.%3Cinit%3E` constructor and with a week number between 0 and
-            the constellation week cycle (cycleW) after this method has been called will fix the week number to ensure they
-            correspond to dates between :code:`reference - cycleW / 2 weeks` and :code:`reference + cycleW / 2 weeks`.
+            This method will return 60 for all time scales that do *not* implement leap seconds, even if the date corresponds to a
+            leap second in :class:`~org.orekit.time.UTCScale`, and 61 for time scales that do implement leap second when the current
+            date is within the last minute before the leap, or during the leap itself.
         
-            If this method is never called, a default reference date for rollover will be set using the date of the last known EOP
-            entry retrieved from :meth:`~org.orekit.time.UT1Scale.getEOPHistory` time scale.
+            Specified by:
+                :meth:`~org.orekit.time.TimeScale.minuteDuration` in interface :class:`~org.orekit.time.TimeScale`
         
             Parameters:
-                reference (:class:`~org.orekit.time.DateComponents`): reference date for GNSS week rollover
-        
-            Since:
-                9.3.1
-        
-            Also see:
-                :meth:`~org.orekit.time.GNSSDate.getRolloverReference`, :meth:`~org.orekit.time.GNSSDate.%3Cinit%3E`
+                date (:class:`~org.orekit.time.AbsoluteDate`): date to check
         
+            Returns:
+                60 or 61 depending on leap seconds introduction
         
         """
         ...
-
-class GPSScale(TimeScale):
-    """
-    public class GPSScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
-    
-        GPS time scale.
-    
-        By convention, TGPS = TAI - 19 s.
-    
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
-    
-        Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
-    """
-    def getName(self) -> str:
+    @typing.overload
+    def minuteDuration(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_minuteDuration_1__T]) -> int:
         """
-            Get the name time scale.
+            Check length of the current minute *in this time scale*.
+        
+            This method will return 60 for all time scales that do *not* implement leap seconds, even if the date corresponds to a
+            leap second in :class:`~org.orekit.time.UTCScale`, and 61 for time scales that do implement leap second when the current
+            date is within the last minute before the leap, or during the leap itself.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.TimeScale.minuteDuration` in interface :class:`~org.orekit.time.TimeScale`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date to check
         
             Returns:
-                name of the time scale
+                60 or 61 depending on leap seconds introduction
         
         
         """
@@ -4473,20 +4602,18 @@ class GPSScale(TimeScale):
         """
         ...
 
-class GalileoScale(TimeScale):
+class GMSTScale(TimeScale):
     """
-    public class GalileoScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
+    public class GMSTScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
     
-        Galileo system time scale.
+        Greenwich Mean Sidereal Time.
     
-        By convention, TGST = UTC + 13s at Galileo epoch (1999-08-22T00:00:00Z).
+        The Greenwich Mean Sidereal Time is the hour angle between the meridian of Greenwich and mean equinox of date at 0h UT1.
     
         This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
     
-        Galileo System Time and GPS time are very close scales. Without any errors, they should be identical. The offset between
-        these two scales is the GGTO, it depends on the clocks used to realize the time scales. It is of the order of a few tens
-        nanoseconds. This class does not implement this offset, so it is virtually identical to the
-        :class:`~org.orekit.time.GPSScale`.
+        Since:
+            5.1
     
         Also see:
             :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
@@ -4544,27 +4671,6 @@ class GalileoScale(TimeScale):
                 :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         
-        """
-        ...
-    def offsetToTAI(self, dateComponents: DateComponents, timeComponents: TimeComponents) -> float:
-        """
-            Get the offset to convert locations from instance to :class:`~org.orekit.time.TAIScale`.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.DateComponents`): date location in the time scale
-                time (:class:`~org.orekit.time.TimeComponents`): time location in the time scale
-        
-            Returns:
-                offset in seconds to add to a location in *instance time scale* to get a location in *:class:`~org.orekit.time.TAIScale`
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI`
-        
-        
         """
         ...
     def toString(self) -> str:
@@ -4578,346 +4684,302 @@ class GalileoScale(TimeScale):
         """
         ...
 
-class IRNSSScale(TimeScale):
+class GNSSDate(java.io.Serializable, TimeStamped):
     """
-    public class IRNSSScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
-    
-        IRNSS time scale (also called IRNWT for IRNSS NetWork Time).
+    public class GNSSDate extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.io.Serializable?is`, :class:`~org.orekit.time.TimeStamped`
     
-        By convention, TIRNSS = TAI - 19 s.
+        Container for date in GNSS form.
     
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+        This class can be used to handle :meth:`~org.orekit.gnss.SatelliteSystem.GPS`,
+        :meth:`~org.orekit.gnss.SatelliteSystem.GALILEO`, :meth:`~org.orekit.gnss.SatelliteSystem.BEIDOU` and
+        :meth:`~org.orekit.gnss.SatelliteSystem.QZSS` dates.
     
         Also see:
             :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
     """
-    def getName(self) -> str:
+    @typing.overload
+    def __init__(self, int: int, double: float, satelliteSystem: org.orekit.gnss.SatelliteSystem): ...
+    @typing.overload
+    def __init__(self, int: int, double: float, satelliteSystem: org.orekit.gnss.SatelliteSystem, dateComponents: DateComponents, timeScales: TimeScales): ...
+    @typing.overload
+    def __init__(self, int: int, double: float, satelliteSystem: org.orekit.gnss.SatelliteSystem, timeScales: TimeScales): ...
+    @typing.overload
+    def __init__(self, absoluteDate: AbsoluteDate, satelliteSystem: org.orekit.gnss.SatelliteSystem): ...
+    @typing.overload
+    def __init__(self, absoluteDate: AbsoluteDate, satelliteSystem: org.orekit.gnss.SatelliteSystem, timeScales: TimeScales): ...
+    def getDate(self) -> AbsoluteDate:
         """
-            Get the name time scale.
+            Get the date.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.TimeStamped.getDate` in interface :class:`~org.orekit.time.TimeStamped`
         
             Returns:
-                name of the time scale
+                date attached to the object
         
         
         """
         ...
-    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
+    def getMilliInWeek(self) -> float:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
+            Get the number of milliseconds since week start.
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
+                number of milliseconds since week start
         
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         """
         ...
-    @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
+    @staticmethod
+    def getRolloverReference() -> DateComponents:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
+            Get the reference date ensuring continuity across GNSS week rollover.
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
+                reference reference date for GNSS week rollover
+        
+            Since:
+                9.3.1
         
             Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+                :meth:`~org.orekit.time.GNSSDate.setRolloverReference`, :meth:`~org.orekit.time.GNSSDate.%3Cinit%3E`
         
         
         """
         ...
-    def offsetToTAI(self, dateComponents: DateComponents, timeComponents: TimeComponents) -> float:
+    def getSecondsInWeek(self) -> float:
         """
-            Get the offset to convert locations from instance to :class:`~org.orekit.time.TAIScale`.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.DateComponents`): date location in the time scale
-                time (:class:`~org.orekit.time.TimeComponents`): time location in the time scale
+            Get the number of seconds since week start.
         
             Returns:
-                offset in seconds to add to a location in *instance time scale* to get a location in *:class:`~org.orekit.time.TAIScale`
-                time scale*
+                number of seconds since week start
         
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI`
+            Since:
+                12.0
         
         
         """
         ...
-    def toString(self) -> str:
+    def getWeekNumber(self) -> int:
         """
+            Get the week number since the GNSS reference epoch.
         
-            Overrides:
-                :meth:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            The week number returned here has been fixed for GNSS week rollover, i.e. it may be larger than the corresponding week
+            cycle of the constellation.
+        
+            Returns:
+                week number since since the GNSS reference epoch
         
         
         """
         ...
-
-class QZSSScale(TimeScale):
-    """
-    public class QZSSScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
-    
-        QZSS time scale.
-    
-        By convention, TQZSS = TAI - 19 s.
-    
-        The time scale is defined in ` Quasi-Zenith Satellite System Navigation Service - Interface Specification for QZSS
-        <http://qzss.go.jp/en/technical/download/pdf/ps-is-qzss/is-qzss-pnt-003.pdf?t=1549268771755>` version 1.6, 2014.
-    
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
-    
-        Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
-    """
-    def getName(self) -> str:
+    @staticmethod
+    def setRolloverReference(dateComponents: DateComponents) -> None:
         """
-            Get the name time scale.
+            Set a reference date for ensuring continuity across GNSS week rollover.
         
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
+            Instance created using the :meth:`~org.orekit.time.GNSSDate.%3Cinit%3E` constructor and with a week number between 0 and
+            the constellation week cycle (cycleW) after this method has been called will fix the week number to ensure they
+            correspond to dates between :code:`reference - cycleW / 2 weeks` and :code:`reference + cycleW / 2 weeks`.
         
-            Returns:
-                name of the time scale
+            If this method is never called, a default reference date for rollover will be set using the date of the last known EOP
+            entry retrieved from :meth:`~org.orekit.time.UT1Scale.getEOPHistory` time scale.
+        
+            Parameters:
+                reference (:class:`~org.orekit.time.DateComponents`): reference date for GNSS week rollover
+        
+            Since:
+                9.3.1
+        
+            Also see:
+                :meth:`~org.orekit.time.GNSSDate.getRolloverReference`, :meth:`~org.orekit.time.GNSSDate.%3Cinit%3E`
         
         
         """
         ...
-    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+
+class PerfectClockModel(ClockModel):
+    """
+    public class PerfectClockModel extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.ClockModel`
+    
+        Clock model for perfect clock with constant zero offset.
+    
+        Since:
+            12.1
+    """
+    def __init__(self): ...
+    _getOffset_1__T = typing.TypeVar('_getOffset_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
-    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
+    def getOffset(self, absoluteDate: AbsoluteDate) -> ClockOffset:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
+            Get the clock offset at date.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
         
             Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which offset is requested
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+                clock offset at specified date
         
         """
         ...
     @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
+    def getOffset(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_getOffset_1__T]) -> FieldClockOffset[_getOffset_1__T]:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
+            Get the clock offset at date.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
         
             Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which offset is requested
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+                clock offset at specified date
         
         
         """
         ...
-    def offsetToTAI(self, dateComponents: DateComponents, timeComponents: TimeComponents) -> float:
+    def getValidityEnd(self) -> AbsoluteDate:
         """
-            Get the offset to convert locations from instance to :class:`~org.orekit.time.TAIScale`.
+            Get validity end.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.DateComponents`): date location in the time scale
-                time (:class:`~org.orekit.time.TimeComponents`): time location in the time scale
+                :meth:`~org.orekit.time.ClockModel.getValidityEnd` in interface :class:`~org.orekit.time.ClockModel`
         
             Returns:
-                offset in seconds to add to a location in *instance time scale* to get a location in *:class:`~org.orekit.time.TAIScale`
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI`
+                model validity end
         
         
         """
         ...
-    def toString(self) -> str:
+    def getValidityStart(self) -> AbsoluteDate:
         """
+            Get validity start.
         
-            Overrides:
-                :meth:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getValidityStart` in interface :class:`~org.orekit.time.ClockModel`
+        
+            Returns:
+                model validity start
         
         
         """
         ...
 
-class SatelliteClockScale(TimeScale):
+class SampledClockModel(ClockModel):
     """
-    public class SatelliteClockScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
+    public class SampledClockModel extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.ClockModel`
     
-        Scale for on-board clock.
+        Offset clock model backed up by a sample.
     
         Since:
-            11.0
-    
-        Also see:
-            :meth:`~serialized`
+            12.1
     """
-    def __init__(self, string: str, absoluteDate: AbsoluteDate, timeScale: TimeScale, double: float, double2: float): ...
-    def countAtDate(self, absoluteDate: AbsoluteDate) -> float:
+    def __init__(self, list: java.util.List[ClockOffset], int: int): ...
+    def getCache(self) -> org.orekit.utils.ImmutableTimeStampedCache[ClockOffset]: ...
+    _getOffset_1__T = typing.TypeVar('_getOffset_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getOffset(self, absoluteDate: AbsoluteDate) -> ClockOffset:
         """
-            Compute clock count corresponding to some date.
+            Get the clock offset at date.
+        
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
         
             Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): date
+                date (:class:`~org.orekit.time.AbsoluteDate`): date at which offset is requested
         
             Returns:
-                clock count at :code:`date`
-        
+                clock offset at specified date
         
         """
         ...
-    def dateAtCount(self, double: float) -> AbsoluteDate:
+    @typing.overload
+    def getOffset(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_getOffset_1__T]) -> FieldClockOffset[_getOffset_1__T]:
         """
-            Compute date corresponding to some clock count.
+            Get the clock offset at date.
+        
+            Specified by:
+                :meth:`~org.orekit.time.ClockModel.getOffset` in interface :class:`~org.orekit.time.ClockModel`
         
             Parameters:
-                count (double): clock count
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): date at which offset is requested
         
             Returns:
-                date at :code:`count`
+                clock offset at specified date
         
         
         """
         ...
-    def getName(self) -> str:
+    def getValidityEnd(self) -> AbsoluteDate:
         """
-            Get the name time scale.
+            Get validity end.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.ClockModel.getValidityEnd` in interface :class:`~org.orekit.time.ClockModel`
         
             Returns:
-                name of the time scale
+                model validity end
         
         
         """
         ...
-    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
+    def getValidityStart(self) -> AbsoluteDate:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
+            Get validity start.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
+                :meth:`~org.orekit.time.ClockModel.getValidityStart` in interface :class:`~org.orekit.time.ClockModel`
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
+                model validity start
         
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         """
         ...
-    @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
+
+class SatelliteClockScale(TimeScale):
+    """
+    public class SatelliteClockScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
+    
+        Scale for on-board clock.
+    
+        Since:
+            11.0
+    
+        Also see:
+            :meth:`~serialized`
+    """
+    def __init__(self, string: str, absoluteDate: AbsoluteDate, timeScale: TimeScale, double: float, double2: float): ...
+    def countAtDate(self, absoluteDate: AbsoluteDate) -> float:
         """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
+            Compute clock count corresponding to some date.
         
             Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
+                date (:class:`~org.orekit.time.AbsoluteDate`): date
         
             Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
+                clock count at :code:`date`
         
         
         """
         ...
-    def offsetToTAI(self, dateComponents: DateComponents, timeComponents: TimeComponents) -> float:
+    def dateAtCount(self, double: float) -> AbsoluteDate:
         """
-            Get the offset to convert locations from instance to :class:`~org.orekit.time.TAIScale`.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI` in interface :class:`~org.orekit.time.TimeScale`
+            Compute date corresponding to some clock count.
         
             Parameters:
-                date (:class:`~org.orekit.time.DateComponents`): date location in the time scale
-                time (:class:`~org.orekit.time.TimeComponents`): time location in the time scale
+                count (double): clock count
         
             Returns:
-                offset in seconds to add to a location in *instance time scale* to get a location in *:class:`~org.orekit.time.TAIScale`
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI`
-        
-        
-        """
-        ...
-    def toString(self) -> str:
-        """
-        
-            Overrides:
-                :meth:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+                date at :code:`count`
         
         
         """
         ...
-
-class TAIScale(TimeScale):
-    """
-    public class TAIScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
-    
-        International Atomic Time.
-    
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
-    
-        Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
-    """
     def getName(self) -> str:
         """
             Get the name time scale.
@@ -4941,7 +5003,7 @@ class TAIScale(TimeScale):
                 :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
         
             Parameters:
-                taiTime (:class:`~org.orekit.time.AbsoluteDate`): conversion date
+                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
         
             Returns:
                 offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
@@ -5247,125 +5309,23 @@ class TDBScale(TimeScale):
         
         """
         ...
-    @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
-        """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
-        
-            Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
-        
-        
-        """
-        ...
-    def toString(self) -> str:
-        """
-        
-            Overrides:
-                :meth:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object.html?is` in
-                class :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
-        
-        
-        """
-        ...
-
-class TTScale(TimeScale):
-    """
-    public class TTScale extends :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.time.TimeScale`
-    
-        Terrestrial Time as defined by IAU(1991) recommendation IV.
-    
-        Coordinate time at the surface of the Earth. IT is the successor of Ephemeris Time TE.
-    
-        By convention, TT = TAI + 32.184 s.
-    
-        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
-    
-        Also see:
-            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
-    """
-    def getName(self) -> str:
-        """
-            Get the name time scale.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.getName` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Returns:
-                name of the time scale
-        
-        
-        """
-        ...
-    _offsetFromTAI_1__T = typing.TypeVar('_offsetFromTAI_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
-    @typing.overload
-    def offsetFromTAI(self, absoluteDate: AbsoluteDate) -> float:
-        """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.AbsoluteDate`): conversion date
-        
-            Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
-        
-        """
-        ...
-    @typing.overload
-    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
-        """
-            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
-        
-            Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
-        
-            Parameters:
-                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
-        
-            Returns:
-                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
-                time scale*
-        
-            Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
-        
-        
-        """
-        ...
-    def offsetToTAI(self, dateComponents: DateComponents, timeComponents: TimeComponents) -> float:
+    @typing.overload
+    def offsetFromTAI(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_offsetFromTAI_1__T]) -> _offsetFromTAI_1__T:
         """
-            Get the offset to convert locations from instance to :class:`~org.orekit.time.TAIScale`.
+            Get the offset to convert locations from :class:`~org.orekit.time.TAIScale` to instance.
         
             Specified by:
-                :meth:`~org.orekit.time.TimeScale.offsetToTAI` in interface :class:`~org.orekit.time.TimeScale`
+                :meth:`~org.orekit.time.TimeScale.offsetFromTAI` in interface :class:`~org.orekit.time.TimeScale`
         
             Parameters:
-                date (:class:`~org.orekit.time.DateComponents`): date location in the time scale
-                time (:class:`~org.orekit.time.TimeComponents`): time location in the time scale
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): conversion date
         
             Returns:
-                offset in seconds to add to a location in *instance time scale* to get a location in *:class:`~org.orekit.time.TAIScale`
+                offset in seconds to add to a location in *:class:`~org.orekit.time.TAIScale` time scale* to get a location in *instance
                 time scale*
         
             Also see:
-                :meth:`~org.orekit.time.TimeScale.offsetFromTAI`
+                :meth:`~org.orekit.time.TimeScale.offsetToTAI`
         
         
         """
@@ -6031,6 +5991,40 @@ class UTCTAIOffset(TimeStamped, java.io.Serializable):
         """
         ...
 
+class BDTScale(ConstantOffsetTimeScale):
+    """
+    public class BDTScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        Beidou system time scale.
+    
+        By convention, BDT = UTC on January 1st 2006.
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
+
+class ClockOffsetHermiteInterpolator(AbstractTimeInterpolator[ClockOffset]):
+    """
+    public class ClockOffsetHermiteInterpolator extends :class:`~org.orekit.time.AbstractTimeInterpolator`<:class:`~org.orekit.time.ClockOffset`>
+    
+        bHermite interpolator of time stamped clock offsets.
+    
+        Since:
+            12.1
+    
+        Also see:
+            
+            class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.interpolation.HermiteInterpolator?is`,
+            :class:`~org.orekit.time.TimeInterpolator`
+    """
+    @typing.overload
+    def __init__(self, int: int): ...
+    @typing.overload
+    def __init__(self, int: int, double: float): ...
+
 _FieldAbsoluteDate__T = typing.TypeVar('_FieldAbsoluteDate__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShiftable['FieldAbsoluteDate'[_FieldAbsoluteDate__T], _FieldAbsoluteDate__T], java.lang.Comparable['FieldAbsoluteDate'[_FieldAbsoluteDate__T]], typing.Generic[_FieldAbsoluteDate__T]):
     """
@@ -6113,8 +6107,12 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], string: str, timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], instant: typing.Union[java.time.Instant, datetime.datetime]): ...
+    @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], instant: typing.Union[java.time.Instant, datetime.datetime], timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], instant: typing.Union[java.time.Instant, datetime.datetime], uTCScale: UTCScale): ...
+    @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], date: java.util.Date, timeScale: TimeScale): ...
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], absoluteDate: AbsoluteDate): ...
@@ -6125,12 +6123,16 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
     @typing.overload
     def __init__(self, field: org.hipparchus.Field[_FieldAbsoluteDate__T], dateTimeComponents: DateTimeComponents, timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, absoluteDate: AbsoluteDate, long: int, timeUnit: java.util.concurrent.TimeUnit, field: org.hipparchus.Field[_FieldAbsoluteDate__T]): ...
+    @typing.overload
     def __init__(self, absoluteDate: AbsoluteDate, t: _FieldAbsoluteDate__T): ...
     @typing.overload
     def __init__(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T], double: float): ...
     @typing.overload
     def __init__(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T], double: float, timeScale: TimeScale): ...
     @typing.overload
+    def __init__(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T], long: int, timeUnit: java.util.concurrent.TimeUnit): ...
+    @typing.overload
     def __init__(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T], t: _FieldAbsoluteDate__T): ...
     def compareTo(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T]) -> int: ...
     _createBesselianEpoch_0__T = typing.TypeVar('_createBesselianEpoch_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
@@ -6200,9 +6202,11 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
     @typing.overload
     @staticmethod
     def createGPSDate(int: int, t: _createGPSDate_1__T, timeScale: TimeScale) -> 'FieldAbsoluteDate'[_createGPSDate_1__T]: ...
-    _createJDDate__T = typing.TypeVar('_createJDDate__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _createJDDate_0__T = typing.TypeVar('_createJDDate_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    _createJDDate_1__T = typing.TypeVar('_createJDDate_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
     @staticmethod
-    def createJDDate(int: int, t: _createJDDate__T, timeScale: TimeScale) -> 'FieldAbsoluteDate'[_createJDDate__T]:
+    def createJDDate(int: int, t: _createJDDate_0__T, timeScale: TimeScale) -> 'FieldAbsoluteDate'[_createJDDate_0__T]:
         """
             Build an instance corresponding to a Julian Day date.
         
@@ -6214,9 +6218,31 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
             Returns:
                 a new instant
         
+            Build an instance corresponding to a Julian Day date.
+        
+            This function should be preferred to :meth:`~org.orekit.time.FieldAbsoluteDate.createJDDate` when the target time scale
+            has a non-constant offset with respect to TAI.
+        
+            The idea is to introduce a pivot time scale that is close to the target time scale but has a constant bias with TAI.
+        
+            For example, to get a date from an MJD in TDB time scale, it's advised to use the TT time scale as a pivot scale. TT is
+            very close to TDB and has constant offset to TAI.
+        
+            Parameters:
+                jd (int): Julian day
+                secondsSinceNoon (T): seconds in the Julian day (BEWARE, Julian days start at noon, so 0.0 is noon)
+                timeScale (:class:`~org.orekit.time.TimeScale`): time scale in which the seconds in day are defined
+                pivotTimeScale (:class:`~org.orekit.time.TimeScale`): pivot timescale used as intermediate timescale
+        
+            Returns:
+                a new instant
+        
         
         """
         ...
+    @typing.overload
+    @staticmethod
+    def createJDDate(int: int, t: _createJDDate_1__T, timeScale: TimeScale, timeScale2: TimeScale) -> 'FieldAbsoluteDate'[_createJDDate_1__T]: ...
     _createJulianEpoch_0__T = typing.TypeVar('_createJulianEpoch_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     _createJulianEpoch_1__T = typing.TypeVar('_createJulianEpoch_1__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
@@ -6294,13 +6320,46 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
             Also see:
                 :meth:`~org.orekit.time.FieldAbsoluteDate.offsetFrom`, :meth:`~org.orekit.time.FieldAbsoluteDate.%3Cinit%3E`
         
+            Compute the physically elapsed duration between two instants.
+        
+            The returned duration is the number of seconds physically elapsed between the two instants, measured in a regular time
+            scale with respect to surface of the Earth (i.e either the :class:`~org.orekit.time.TAIScale`, the
+            :class:`~org.orekit.time.TTScale` or the :class:`~org.orekit.time.GPSScale`). It is the only method that gives a
+            duration with a physical meaning.
+        
+            This method gives the same result (with less computation) as calling
+            :meth:`~org.orekit.time.FieldAbsoluteDate.offsetFrom` with a second argument set to one of the regular scales cited
+            above.
+        
+            This method is the reverse of the :meth:`~org.orekit.time.FieldAbsoluteDate.%3Cinit%3E` constructor.
+        
+            Parameters:
+                instant (:class:`~org.orekit.time.AbsoluteDate`): instant to subtract from the instance
+                timeUnit (:class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`): :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is` precision for the
+                    offset
+        
+            Returns:
+                offset in the given timeunit between the two instants (positive if the instance is posterior to the argument), rounded
+                to the nearest integer
+                :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.util.concurrent.TimeUnit?is`
+        
+            Since:
+                12.1
+        
+            Also see:
+                :meth:`~org.orekit.time.FieldAbsoluteDate.%3Cinit%3E`
+        
         
         """
         ...
     @typing.overload
     def durationFrom(self, absoluteDate: AbsoluteDate) -> _FieldAbsoluteDate__T: ...
     @typing.overload
+    def durationFrom(self, absoluteDate: AbsoluteDate, timeUnit: java.util.concurrent.TimeUnit) -> _FieldAbsoluteDate__T: ...
+    @typing.overload
     def durationFrom(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T]) -> _FieldAbsoluteDate__T: ...
+    @typing.overload
+    def durationFrom(self, fieldAbsoluteDate: 'FieldAbsoluteDate'[_FieldAbsoluteDate__T], timeUnit: java.util.concurrent.TimeUnit) -> _FieldAbsoluteDate__T: ...
     def equals(self, object: typing.Any) -> bool:
         """
             Check if the instance represents the same time as another instance.
@@ -6582,6 +6641,8 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
     @typing.overload
     def shiftedBy(self, double: float) -> 'FieldAbsoluteDate'[_FieldAbsoluteDate__T]: ...
     @typing.overload
+    def shiftedBy(self, long: int, timeUnit: java.util.concurrent.TimeUnit) -> 'FieldAbsoluteDate'[_FieldAbsoluteDate__T]: ...
+    @typing.overload
     def shiftedBy(self, t: _FieldAbsoluteDate__T) -> 'FieldAbsoluteDate'[_FieldAbsoluteDate__T]: ...
     def timeScalesOffset(self, timeScale: TimeScale, timeScale2: TimeScale) -> _FieldAbsoluteDate__T:
         """
@@ -6625,6 +6686,40 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
                 location of the instant in the time scale
         
         
+        """
+        ...
+    @typing.overload
+    def toInstant(self) -> java.time.Instant:
+        """
+            Convert the instance to a Java :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is`.
+            Nanosecond precision is preserved during this conversion
+        
+            Returns:
+                a :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is` instance representing the
+                location of the instant in the utc time scale
+        
+            Since:
+                12.1
+        
+        """
+        ...
+    @typing.overload
+    def toInstant(self, timeScales: TimeScales) -> java.time.Instant:
+        """
+            Convert the instance to a Java :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is`.
+            Nanosecond precision is preserved during this conversion
+        
+            Parameters:
+                timeScales (:class:`~org.orekit.time.TimeScales`): the timescales to use
+        
+            Returns:
+                a :class:`~org.orekit.time.https:.docs.oracle.com.javase.8.docs.api.java.time.Instant?is` instance representing the
+                location of the instant in the utc time scale
+        
+            Since:
+                12.1
+        
+        
         """
         ...
     @typing.overload
@@ -6728,6 +6823,100 @@ class FieldAbsoluteDate(FieldTimeStamped[_FieldAbsoluteDate__T], FieldTimeShifta
     def toString(self, timeZone: java.util.TimeZone, timeScale: TimeScale) -> str: ...
     @typing.overload
     def toString(self, timeScale: TimeScale) -> str: ...
+    def toStringWithoutUtcOffset(self, timeScale: TimeScale, int: int) -> str:
+        """
+            Return a string representation of this date-time, rounded to the given precision.
+        
+            The format used is ISO8601 without the UTC offset.
+        
+            Parameters:
+                timeScale (:class:`~org.orekit.time.TimeScale`): to use to compute components.
+                fractionDigits (int): the number of digits to include after the decimal point in the string representation of the seconds. The date and time
+                    is first rounded as necessary. :code:`fractionDigits` must be greater than or equal to :code:`0`.
+        
+            Returns:
+                string representation of this date, time, and UTC offset
+        
+            Since:
+                12.2
+        
+            Also see:
+                :meth:`~org.orekit.time.FieldAbsoluteDate.toString`, :meth:`~org.orekit.time.DateTimeComponents.toString`,
+                :meth:`~org.orekit.time.DateTimeComponents.toStringWithoutUtcOffset`
+        
+        
+        """
+        ...
+
+_FieldClockOffsetHermiteInterpolator__T = typing.TypeVar('_FieldClockOffsetHermiteInterpolator__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldClockOffsetHermiteInterpolator(AbstractFieldTimeInterpolator[FieldClockOffset[_FieldClockOffsetHermiteInterpolator__T], _FieldClockOffsetHermiteInterpolator__T], typing.Generic[_FieldClockOffsetHermiteInterpolator__T]):
+    """
+    public class FieldClockOffsetHermiteInterpolator<T extends :class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.time.AbstractFieldTimeInterpolator`<:class:`~org.orekit.time.FieldClockOffset`<T>, T>
+    
+        bHermite interpolator of time stamped clock offsets.
+    
+        Since:
+            12.1
+    
+        Also see:
+            
+            class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.interpolation.HermiteInterpolator?is`,
+            :class:`~org.orekit.time.TimeInterpolator`
+    """
+    @typing.overload
+    def __init__(self, int: int): ...
+    @typing.overload
+    def __init__(self, int: int, double: float): ...
+
+class GPSScale(ConstantOffsetTimeScale):
+    """
+    public class GPSScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        GPS time scale.
+    
+        By convention, TGPS = TAI - 19 s.
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
+
+class GalileoScale(ConstantOffsetTimeScale):
+    """
+    public class GalileoScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        Galileo system time scale.
+    
+        By convention, TGST = UTC + 13s at Galileo epoch (1999-08-22T00:00:00Z).
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Galileo System Time and GPS time are very close scales. Without any errors, they should be identical. The offset between
+        these two scales is the GGTO, it depends on the clocks used to realize the time scales. It is of the order of a few tens
+        nanoseconds. This class does not implement this offset, so it is virtually identical to the
+        :class:`~org.orekit.time.GPSScale`.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
+
+class IRNSSScale(ConstantOffsetTimeScale):
+    """
+    public class IRNSSScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        IRNSS time scale (also called IRNWT for IRNSS NetWork Time).
+    
+        By convention, TIRNSS = TAI - 19 s.
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
 
 class LazyLoadedTimeScales(AbstractTimeScales):
     """
@@ -6877,7 +7066,7 @@ class LazyLoadedTimeScales(AbstractTimeScales):
         
         """
         ...
-    def getQZSS(self) -> QZSSScale:
+    def getQZSS(self) -> 'QZSSScale':
         """
             Description copied from interface: :meth:`~org.orekit.time.TimeScales.getQZSS`
             Get the Quasi-Zenith Satellite System time scale.
@@ -6888,7 +7077,7 @@ class LazyLoadedTimeScales(AbstractTimeScales):
         
         """
         ...
-    def getTAI(self) -> TAIScale:
+    def getTAI(self) -> 'TAIScale':
         """
             Description copied from interface: :meth:`~org.orekit.time.TimeScales.getTAI`
             Get the International Atomic Time scale.
@@ -6932,7 +7121,7 @@ class LazyLoadedTimeScales(AbstractTimeScales):
         
         """
         ...
-    def getTT(self) -> TTScale:
+    def getTT(self) -> 'TTScale':
         """
             Description copied from interface: :meth:`~org.orekit.time.TimeScales.getTT`
             Get the Terrestrial Time scale.
@@ -7001,6 +7190,93 @@ class LazyLoadedTimeScales(AbstractTimeScales):
         """
         ...
 
+class QZSSScale(ConstantOffsetTimeScale):
+    """
+    public class QZSSScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        QZSS time scale.
+    
+        By convention, TQZSS = TAI - 19 s.
+    
+        The time scale is defined in ` Quasi-Zenith Satellite System Navigation Service - Interface Specification for QZSS
+        <http://qzss.go.jp/en/technical/download/pdf/ps-is-qzss/is-qzss-pnt-003.pdf?t=1549268771755>` version 1.6, 2014.
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
+
+class TAIScale(ConstantOffsetTimeScale):
+    """
+    public class TAIScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        International Atomic Time.
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
+
+class TTScale(ConstantOffsetTimeScale):
+    """
+    public class TTScale extends :class:`~org.orekit.time.ConstantOffsetTimeScale`
+    
+        Terrestrial Time as defined by IAU(1991) recommendation IV.
+    
+        Coordinate time at the surface of the Earth. IT is the successor of Ephemeris Time TE.
+    
+        By convention, TT = TAI + 32.184 s.
+    
+        This is intended to be accessed thanks to :class:`~org.orekit.time.TimeScales`, so there is no public constructor.
+    
+        Also see:
+            :class:`~org.orekit.time.AbsoluteDate`, :meth:`~serialized`
+    """
+    ...
+
+class TimeStampedDoubleAndDerivative(TimeStampedDouble):
+    """
+    public class TimeStampedDoubleAndDerivative extends :class:`~org.orekit.time.TimeStampedDouble`
+    
+        Class that associates a double, its time derivative with a date.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, double: float, double2: float, absoluteDate: AbsoluteDate): ...
+    def getDerivative(self) -> float:
+        """
+            Get time derivative.
+        
+            Returns:
+                time derivztive
+        
+        
+        """
+        ...
+
+class TimeStampedDoubleAndDerivativeHermiteInterpolator(AbstractTimeInterpolator[TimeStampedDoubleAndDerivative]):
+    """
+    public class TimeStampedDoubleAndDerivativeHermiteInterpolator extends :class:`~org.orekit.time.AbstractTimeInterpolator`<:class:`~org.orekit.time.TimeStampedDoubleAndDerivative`>
+    
+        Hermite interpolator of time stamped double value.
+    
+        Also see:
+            
+            class:`~org.orekit.time.https:.www.hipparchus.org.apidocs.org.hipparchus.analysis.interpolation.HermiteInterpolator?is`,
+            :class:`~org.orekit.time.TimeInterpolator`
+    """
+    @typing.overload
+    def __init__(self): ...
+    @typing.overload
+    def __init__(self, int: int): ...
+    @typing.overload
+    def __init__(self, int: int, double: float): ...
+
 class TimeStampedDoubleHermiteInterpolator(AbstractTimeInterpolator[TimeStampedDouble]):
     """
     public class TimeStampedDoubleHermiteInterpolator extends :class:`~org.orekit.time.AbstractTimeInterpolator`<:class:`~org.orekit.time.TimeStampedDouble`>
@@ -7051,14 +7327,22 @@ class __module_protocol__(Protocol):
     AbstractFieldTimeInterpolator: typing.Type[AbstractFieldTimeInterpolator]
     AbstractTimeInterpolator: typing.Type[AbstractTimeInterpolator]
     AbstractTimeScales: typing.Type[AbstractTimeScales]
+    AggregatedClockModel: typing.Type[AggregatedClockModel]
     BDTScale: typing.Type[BDTScale]
     BurstSelector: typing.Type[BurstSelector]
     ChronologicalComparator: typing.Type[ChronologicalComparator]
+    ClockModel: typing.Type[ClockModel]
+    ClockOffset: typing.Type[ClockOffset]
+    ClockOffsetHermiteInterpolator: typing.Type[ClockOffsetHermiteInterpolator]
+    ClockTimeScale: typing.Type[ClockTimeScale]
+    ConstantOffsetTimeScale: typing.Type[ConstantOffsetTimeScale]
     DateComponents: typing.Type[DateComponents]
     DateTimeComponents: typing.Type[DateTimeComponents]
     DatesSelector: typing.Type[DatesSelector]
     FieldAbsoluteDate: typing.Type[FieldAbsoluteDate]
     FieldChronologicalComparator: typing.Type[FieldChronologicalComparator]
+    FieldClockOffset: typing.Type[FieldClockOffset]
+    FieldClockOffsetHermiteInterpolator: typing.Type[FieldClockOffsetHermiteInterpolator]
     FieldTimeInterpolator: typing.Type[FieldTimeInterpolator]
     FieldTimeShiftable: typing.Type[FieldTimeShiftable]
     FieldTimeStamped: typing.Type[FieldTimeStamped]
@@ -7074,7 +7358,9 @@ class __module_protocol__(Protocol):
     LazyLoadedTimeScales: typing.Type[LazyLoadedTimeScales]
     Month: typing.Type[Month]
     OffsetModel: typing.Type[OffsetModel]
+    PerfectClockModel: typing.Type[PerfectClockModel]
     QZSSScale: typing.Type[QZSSScale]
+    SampledClockModel: typing.Type[SampledClockModel]
     SatelliteClockScale: typing.Type[SatelliteClockScale]
     TAIScale: typing.Type[TAIScale]
     TAIUTCDatFilesLoader: typing.Type[TAIUTCDatFilesLoader]
@@ -7091,6 +7377,8 @@ class __module_protocol__(Protocol):
     TimeShiftable: typing.Type[TimeShiftable]
     TimeStamped: typing.Type[TimeStamped]
     TimeStampedDouble: typing.Type[TimeStampedDouble]
+    TimeStampedDoubleAndDerivative: typing.Type[TimeStampedDoubleAndDerivative]
+    TimeStampedDoubleAndDerivativeHermiteInterpolator: typing.Type[TimeStampedDoubleAndDerivativeHermiteInterpolator]
     TimeStampedDoubleHermiteInterpolator: typing.Type[TimeStampedDoubleHermiteInterpolator]
     TimeStampedField: typing.Type[TimeStampedField]
     TimeStampedFieldHermiteInterpolator: typing.Type[TimeStampedFieldHermiteInterpolator]
diff --git a/org-stubs/orekit/utils/__init__.pyi b/org-stubs/orekit/utils/__init__.pyi
index 6efe4114206633ae8855ba9d7ba042adb60a2f40..a001115ce5693a08a220d9103e451f359727e0f2 100644
--- a/org-stubs/orekit/utils/__init__.pyi
+++ b/org-stubs/orekit/utils/__init__.pyi
@@ -1793,7 +1793,7 @@ class ExtendedPVCoordinatesProviderAdapter(org.orekit.frames.Frame):
         Also see:
             :class:`~org.orekit.utils.FrameAdapter`, :meth:`~serialized`
     """
-    def __init__(self, frame: org.orekit.frames.Frame, extendedPVCoordinatesProvider: 'ExtendedPVCoordinatesProvider', string: str): ...
+    def __init__(self, frame: org.orekit.frames.Frame, extendedPVCoordinatesProvider: typing.Union['ExtendedPVCoordinatesProvider', typing.Callable], string: str): ...
 
 _FieldAbsolutePVCoordinatesHermiteInterpolator__KK = typing.TypeVar('_FieldAbsolutePVCoordinatesHermiteInterpolator__KK', bound=org.hipparchus.CalculusFieldElement)  # <KK>
 class FieldAbsolutePVCoordinatesHermiteInterpolator(org.orekit.time.AbstractFieldTimeInterpolator['FieldAbsolutePVCoordinates'[_FieldAbsolutePVCoordinatesHermiteInterpolator__KK], _FieldAbsolutePVCoordinatesHermiteInterpolator__KK], typing.Generic[_FieldAbsolutePVCoordinatesHermiteInterpolator__KK]):
@@ -2317,6 +2317,48 @@ class FieldPVCoordinatesProvider(typing.Generic[_FieldPVCoordinatesProvider__T])
     def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldPVCoordinatesProvider__T], frame: org.orekit.frames.Frame) -> 'TimeStampedFieldPVCoordinates'[_FieldPVCoordinatesProvider__T]: ...
     def getPosition(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldPVCoordinatesProvider__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_FieldPVCoordinatesProvider__T]: ...
 
+class FieldSortedListTrimmer:
+    """
+    public class FieldSortedListTrimmer extends :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        A trimmer for externally stored chronologically sorted lists.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, int: int): ...
+    def getNeighborsSize(self) -> int:
+        """
+            Get size of the list returned from :meth:`~org.orekit.utils.FieldSortedListTrimmer.getNeighborsSubList`.
+        
+            Returns:
+                size of the list returned from :meth:`~org.orekit.utils.FieldSortedListTrimmer.getNeighborsSubList`
+        
+        
+        """
+        ...
+    _getNeighborsSubList__T = typing.TypeVar('_getNeighborsSubList__T', bound=org.orekit.time.FieldTimeStamped)  # <T>
+    _getNeighborsSubList__K = typing.TypeVar('_getNeighborsSubList__K', bound=org.hipparchus.CalculusFieldElement)  # <K>
+    def getNeighborsSubList(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getNeighborsSubList__K], list: java.util.List[_getNeighborsSubList__T]) -> java.util.List[_getNeighborsSubList__T]:
+        """
+            Get the entries surrounding a central date.
+        
+            If the central date is well within covered range, the returned array will be balanced with half the points before
+            central date and half the points after it (depending on n parity, of course). If the central date is near the boundary,
+            then the returned array will be unbalanced and will contain only the n earliest (or latest) entries. A typical example
+            of the later case is leap seconds cache, since the number of leap seconds cannot be arbitrarily increased.
+        
+            Parameters:
+                central (:class:`~org.orekit.time.FieldAbsoluteDate`<K> central): central date
+                data (:class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.util.List?is`<T> data): complete list of entries (must be chronologically sorted)
+        
+            Returns:
+                entries surrounding the specified date (sublist of :code:`data`)
+        
+        
+        """
+        ...
+
 _FieldTimeSpanMap__Transition__S = typing.TypeVar('_FieldTimeSpanMap__Transition__S')  # <S>
 _FieldTimeSpanMap__Transition__D = typing.TypeVar('_FieldTimeSpanMap__Transition__D', bound=org.hipparchus.CalculusFieldElement)  # <D>
 _FieldTimeSpanMap__T = typing.TypeVar('_FieldTimeSpanMap__T')  # <T>
@@ -2355,8 +2397,7 @@ class FieldTimeStampedCache(typing.Generic[_FieldTimeStampedCache__T, _FieldTime
     """
     def getEarliest(self) -> _FieldTimeStampedCache__T: ...
     def getLatest(self) -> _FieldTimeStampedCache__T: ...
-    def getNeighbors(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTimeStampedCache__KK]) -> java.util.stream.Stream[_FieldTimeStampedCache__T]: ...
-    def getNeighborsSize(self) -> int:
+    def getMaxNeighborsSize(self) -> int:
         """
             Get the fixed size of the lists returned by :meth:`~org.orekit.utils.FieldTimeStampedCache.getNeighbors`.
         
@@ -2366,6 +2407,10 @@ class FieldTimeStampedCache(typing.Generic[_FieldTimeStampedCache__T, _FieldTime
         
         """
         ...
+    @typing.overload
+    def getNeighbors(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTimeStampedCache__KK], int: int) -> java.util.stream.Stream[_FieldTimeStampedCache__T]: ...
+    @typing.overload
+    def getNeighbors(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldTimeStampedCache__KK]) -> java.util.stream.Stream[_FieldTimeStampedCache__T]: ...
 
 _FieldTrackingCoordinates__T = typing.TypeVar('_FieldTrackingCoordinates__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldTrackingCoordinates(typing.Generic[_FieldTrackingCoordinates__T]):
@@ -2380,7 +2425,10 @@ class FieldTrackingCoordinates(typing.Generic[_FieldTrackingCoordinates__T]):
         Also see:
             :class:`~org.orekit.frames.TopocentricFrame`
     """
+    @typing.overload
     def __init__(self, t: _FieldTrackingCoordinates__T, t2: _FieldTrackingCoordinates__T, t3: _FieldTrackingCoordinates__T): ...
+    @typing.overload
+    def __init__(self, field: org.hipparchus.Field[_FieldTrackingCoordinates__T], trackingCoordinates: 'TrackingCoordinates'): ...
     def getAzimuth(self) -> _FieldTrackingCoordinates__T:
         """
             Get the azimuth.
@@ -2430,17 +2478,6 @@ class Fieldifier:
     @staticmethod
     def fieldify(field: org.hipparchus.Field[_fieldify_0__T], realMatrix: org.hipparchus.linear.RealMatrix) -> org.hipparchus.linear.FieldMatrix[_fieldify_0__T]:
         """
-            Fieldify given orbit with given field.
-        
-            Conserve derivatives and return orbit in same orbit type as input orbit.
-        
-            Parameters:
-                field (:class:`~org.orekit.utils.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<T> field): field to fieldify with
-                orbit (:class:`~org.orekit.orbits.Orbit`): orbit to fieldify
-        
-            Returns:
-                fielded orbit
-        
             Fieldify given matrix with given field.
         
             Parameters:
@@ -3519,7 +3556,7 @@ class OccultationEngine:
         Since:
             12.0
     """
-    def __init__(self, extendedPVCoordinatesProvider: 'ExtendedPVCoordinatesProvider', double: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid): ...
+    def __init__(self, extendedPVCoordinatesProvider: typing.Union['ExtendedPVCoordinatesProvider', typing.Callable], double: float, oneAxisEllipsoid: org.orekit.bodies.OneAxisEllipsoid): ...
     _angles_0__T = typing.TypeVar('_angles_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def angles(self, fieldSpacecraftState: org.orekit.propagation.FieldSpacecraftState[_angles_0__T]) -> 'OccultationEngine.FieldOccultationAngles'[_angles_0__T]:
@@ -3931,6 +3968,17 @@ class ParameterDriver:
     
         Also see:
             :class:`~org.orekit.utils.ParameterObserver`
+    """
+    SPAN: typing.ClassVar[str] = ...
+    """
+    public static final :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.String?is` SPAN
+    
+        Name of the parameter.
+    
+        Also see:
+            :meth:`~constant`
+    
+    
     """
     @typing.overload
     def __init__(self, string: str, double: float, double2: float, double3: float, double4: float): ...
@@ -5098,6 +5146,47 @@ class SecularAndHarmonic:
         """
         ...
 
+class SortedListTrimmer:
+    """
+    public class SortedListTrimmer extends :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is`
+    
+        A trimmer for externally stored chronologically sorted lists.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, int: int): ...
+    def getNeighborsSize(self) -> int:
+        """
+            Get size of the list returned from :meth:`~org.orekit.utils.SortedListTrimmer.getNeighborsSubList`.
+        
+            Returns:
+                size of the list returned from :meth:`~org.orekit.utils.SortedListTrimmer.getNeighborsSubList`
+        
+        
+        """
+        ...
+    _getNeighborsSubList__T = typing.TypeVar('_getNeighborsSubList__T', bound=org.orekit.time.TimeStamped)  # <T>
+    def getNeighborsSubList(self, absoluteDate: org.orekit.time.AbsoluteDate, list: java.util.List[_getNeighborsSubList__T]) -> java.util.List[_getNeighborsSubList__T]:
+        """
+            Get the entries surrounding a central date.
+        
+            If the central date is well within covered range, the returned array will be balanced with half the points before
+            central date and half the points after it (depending on n parity, of course). If the central date is near the boundary,
+            then the returned array will be unbalanced and will contain only the n earliest (or latest) entries. A typical example
+            of the later case is leap seconds cache, since the number of leap seconds cannot be arbitrarily increased.
+        
+            Parameters:
+                central (:class:`~org.orekit.time.AbsoluteDate`): central date
+                data (:class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.util.List?is`<T> data): complete list of entries (must be chronologically sorted)
+        
+            Returns:
+                entries surrounding the specified date (sublist of :code:`data`)
+        
+        
+        """
+        ...
+
 class StateFunction:
     """
     public interface StateFunction
@@ -5170,8 +5259,7 @@ class TimeSpanMap(typing.Generic[_TimeSpanMap__T]):
         :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Integer?is`), or a visibility status
         between several objects (in which case the entry would be a
         :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Boolean?is`) or a drag coefficient that is
-        expected to be estimated daily or three-hourly (this is how :class:`~org.orekit.forces.drag.TimeSpanDragForce` is
-        implemented).
+        expected to be estimated daily or three-hourly.
     
         Time span maps are built progressively. At first, they contain one :class:`~org.orekit.utils.TimeSpanMap.Span` only
         whose validity extends from past infinity to future infinity. Then new entries are added one at a time, associated with
@@ -5212,8 +5300,10 @@ class TimeSpanMap(typing.Generic[_TimeSpanMap__T]):
         
         """
         ...
+    def getFirstNonNullSpan(self) -> 'TimeSpanMap.Span'[_TimeSpanMap__T]: ...
     def getFirstSpan(self) -> 'TimeSpanMap.Span'[_TimeSpanMap__T]: ...
     def getFirstTransition(self) -> 'TimeSpanMap.Transition'[_TimeSpanMap__T]: ...
+    def getLastNonNullSpan(self) -> 'TimeSpanMap.Span'[_TimeSpanMap__T]: ...
     def getLastSpan(self) -> 'TimeSpanMap.Span'[_TimeSpanMap__T]: ...
     def getLastTransition(self) -> 'TimeSpanMap.Transition'[_TimeSpanMap__T]: ...
     def getSpan(self, absoluteDate: org.orekit.time.AbsoluteDate) -> 'TimeSpanMap.Span'[_TimeSpanMap__T]: ...
@@ -5883,48 +5973,62 @@ class DateDriver(ParameterDriver, org.orekit.time.TimeStamped):
         """
         ...
 
-class ExtendedPVCoordinatesProvider(PVCoordinatesProvider):
+class ExtendedPositionProvider(PVCoordinatesProvider):
     """
-    public interface ExtendedPVCoordinatesProvider extends :class:`~org.orekit.utils.PVCoordinatesProvider`
+    public interface ExtendedPositionProvider extends :class:`~org.orekit.utils.PVCoordinatesProvider`
     
-        Interface for PV coordinates providers that also support fields.
+        Interface for position providers (including for Field). Emulates position (and derivatives) vector as a function of
+        time.
     
         Since:
-            9.2
+            12.1
     """
     _getPVCoordinates_0__T = typing.TypeVar('_getPVCoordinates_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getPVCoordinates_0__T], frame: org.orekit.frames.Frame) -> 'TimeStampedFieldPVCoordinates'[_getPVCoordinates_0__T]:
         """
-            Get the :class:`~org.orekit.utils.FieldPVCoordinates` of the body in the selected frame.
+            Get the position-velocity-acceleration in the selected frame.
         
             Parameters:
                 date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
                 frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
         
             Returns:
-                time-stamped position/velocity of the body (m and m/s)
+                position-velocity-acceleration vector
         
         
         """
         ...
     @typing.overload
-    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> 'TimeStampedPVCoordinates': ...
+    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> 'TimeStampedPVCoordinates':
+        """
+            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                time-stamped position/velocity of the body (m and m/s)
+        
+        """
+        ...
     _getPosition_0__T = typing.TypeVar('_getPosition_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def getPosition(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getPosition_0__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_getPosition_0__T]:
         """
-            Get the position of the body in the selected frame.
+            Get the position in the selected frame.
         
             Parameters:
                 date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
                 frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
         
             Returns:
-                position of the body (m and)
-        
-            Since:
-                12.0
+                position
         
         
         """
@@ -5946,6 +6050,20 @@ class ExtendedPVCoordinatesProvider(PVCoordinatesProvider):
         """
         ...
 
+_FieldShiftingPVCoordinatesProvider__T = typing.TypeVar('_FieldShiftingPVCoordinatesProvider__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+class FieldShiftingPVCoordinatesProvider(FieldPVCoordinatesProvider[_FieldShiftingPVCoordinatesProvider__T], typing.Generic[_FieldShiftingPVCoordinatesProvider__T]):
+    """
+    public class FieldShiftingPVCoordinatesProvider<T extends :class:`~org.orekit.utils.https:.www.hipparchus.org.apidocs.org.hipparchus.CalculusFieldElement?is`<T>> extends :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.utils.FieldPVCoordinatesProvider`<T>
+    
+        Provider using simple :meth:`~org.orekit.utils.FieldPVCoordinates.shiftedBy` shiftedBy} and frame transforms for
+        evolution.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, timeStampedFieldPVCoordinates: 'TimeStampedFieldPVCoordinates'[_FieldShiftingPVCoordinatesProvider__T], frame: org.orekit.frames.Frame): ...
+    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_FieldShiftingPVCoordinatesProvider__T], frame: org.orekit.frames.Frame) -> 'TimeStampedFieldPVCoordinates'[_FieldShiftingPVCoordinatesProvider__T]: ...
+
 _GenericTimeStampedCache__T = typing.TypeVar('_GenericTimeStampedCache__T', bound=org.orekit.time.TimeStamped)  # <T>
 class GenericTimeStampedCache(TimeStampedCache[_GenericTimeStampedCache__T], typing.Generic[_GenericTimeStampedCache__T]):
     """
@@ -6101,22 +6219,28 @@ class ImmutableFieldTimeStampedCache(FieldTimeStampedCache[_ImmutableFieldTimeSt
         provides convenient methods for accessing the data.
     """
     def __init__(self, int: int, collection: typing.Union[java.util.Collection[_ImmutableFieldTimeStampedCache__T], typing.Sequence[_ImmutableFieldTimeStampedCache__T], typing.Set[_ImmutableFieldTimeStampedCache__T]]): ...
-    _emptyCache__TS = typing.TypeVar('_emptyCache__TS', bound=org.orekit.time.FieldTimeStamped)  # <TS>
-    _emptyCache__CFE = typing.TypeVar('_emptyCache__CFE', bound=org.hipparchus.CalculusFieldElement)  # <CFE>
+    _emptyCache_0__TS = typing.TypeVar('_emptyCache_0__TS', bound=org.orekit.time.FieldTimeStamped)  # <TS>
+    _emptyCache_0__CFE = typing.TypeVar('_emptyCache_0__CFE', bound=org.hipparchus.CalculusFieldElement)  # <CFE>
+    _emptyCache_1__TS = typing.TypeVar('_emptyCache_1__TS', bound=org.orekit.time.FieldTimeStamped)  # <TS>
+    _emptyCache_1__CFE = typing.TypeVar('_emptyCache_1__CFE', bound=org.hipparchus.CalculusFieldElement)  # <CFE>
+    @typing.overload
     @staticmethod
-    def emptyCache(field: org.hipparchus.Field[_emptyCache__CFE]) -> 'ImmutableFieldTimeStampedCache'[_emptyCache__TS, _emptyCache__CFE]:
+    def emptyCache() -> 'ImmutableFieldTimeStampedCache'[_emptyCache_0__TS, _emptyCache_0__CFE]:
         """
-            Get an empty immutable cache, cast to the correct type.
-        
-            Parameters:
-                field (:class:`~org.orekit.utils.https:.www.hipparchus.org.apidocs.org.hipparchus.Field?is`<CFE> field): field to which the elements belong
+            Get an empty immutable cache.
         
             Returns:
                 an empty :class:`~org.orekit.utils.ImmutableTimeStampedCache`.
         
+            Since:
+                12.1
+        
         
         """
         ...
+    @typing.overload
+    @staticmethod
+    def emptyCache(field: org.hipparchus.Field[_emptyCache_1__CFE]) -> 'ImmutableFieldTimeStampedCache'[_emptyCache_1__TS, _emptyCache_1__CFE]: ...
     def getAll(self) -> java.util.List[_ImmutableFieldTimeStampedCache__T]: ...
     def getEarliest(self) -> _ImmutableFieldTimeStampedCache__T:
         """
@@ -6145,13 +6269,12 @@ class ImmutableFieldTimeStampedCache(FieldTimeStampedCache[_ImmutableFieldTimeSt
         
         """
         ...
-    def getNeighbors(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_ImmutableFieldTimeStampedCache__KK]) -> java.util.stream.Stream[_ImmutableFieldTimeStampedCache__T]: ...
-    def getNeighborsSize(self) -> int:
+    def getMaxNeighborsSize(self) -> int:
         """
             Get the fixed size of the lists returned by :meth:`~org.orekit.utils.FieldTimeStampedCache.getNeighbors`.
         
             Specified by:
-                :meth:`~org.orekit.utils.FieldTimeStampedCache.getNeighborsSize` in
+                :meth:`~org.orekit.utils.FieldTimeStampedCache.getMaxNeighborsSize` in
                 interface :class:`~org.orekit.utils.FieldTimeStampedCache`
         
             Returns:
@@ -6160,6 +6283,10 @@ class ImmutableFieldTimeStampedCache(FieldTimeStampedCache[_ImmutableFieldTimeSt
         
         """
         ...
+    @typing.overload
+    def getNeighbors(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_ImmutableFieldTimeStampedCache__KK]) -> java.util.stream.Stream[_ImmutableFieldTimeStampedCache__T]: ...
+    @typing.overload
+    def getNeighbors(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_ImmutableFieldTimeStampedCache__KK], int: int) -> java.util.stream.Stream[_ImmutableFieldTimeStampedCache__T]: ...
     def toString(self) -> str:
         """
         
@@ -6183,7 +6310,16 @@ class ImmutableTimeStampedCache(TimeStampedCache[_ImmutableTimeStampedCache__T],
     def __init__(self, int: int, collection: typing.Union[java.util.Collection[_ImmutableTimeStampedCache__T], typing.Sequence[_ImmutableTimeStampedCache__T], typing.Set[_ImmutableTimeStampedCache__T]]): ...
     _emptyCache__TS = typing.TypeVar('_emptyCache__TS', bound=org.orekit.time.TimeStamped)  # <TS>
     @staticmethod
-    def emptyCache() -> 'ImmutableTimeStampedCache'[_emptyCache__TS]: ...
+    def emptyCache() -> 'ImmutableTimeStampedCache'[_emptyCache__TS]:
+        """
+            Get an empty immutable cache, cast to the correct type.
+        
+            Returns:
+                an empty :class:`~org.orekit.utils.ImmutableTimeStampedCache`.
+        
+        
+        """
+        ...
     def getAll(self) -> java.util.List[_ImmutableTimeStampedCache__T]: ...
     def getEarliest(self) -> _ImmutableTimeStampedCache__T:
         """
@@ -6349,6 +6485,35 @@ class ParameterDriversList:
     class DelegatingDriver(ParameterDriver):
         def getRawDrivers(self) -> java.util.List[ParameterDriver]: ...
 
+class ShiftingPVCoordinatesProvider(PVCoordinatesProvider):
+    """
+    public class ShiftingPVCoordinatesProvider extends :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.utils.PVCoordinatesProvider`
+    
+        Provider using simple :meth:`~org.orekit.utils.PVCoordinates.shiftedBy` shiftedBy} and frame transforms for evolution.
+    
+        Since:
+            12.1
+    """
+    def __init__(self, timeStampedPVCoordinates: 'TimeStampedPVCoordinates', frame: org.orekit.frames.Frame): ...
+    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> 'TimeStampedPVCoordinates':
+        """
+            Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.PVCoordinatesProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.AbsoluteDate`): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                time-stamped position/velocity of the body (m and m/s)
+        
+        
+        """
+        ...
+
 class TimeStampedAngularCoordinates(AngularCoordinates, org.orekit.time.TimeStamped):
     """
     public class TimeStampedAngularCoordinates extends :class:`~org.orekit.utils.AngularCoordinates` implements :class:`~org.orekit.time.TimeStamped`
@@ -6903,6 +7068,63 @@ class AbsolutePVCoordinates(TimeStampedPVCoordinates, org.orekit.time.TimeStampe
     @typing.overload
     def toTaylorProvider(self, frame: org.orekit.frames.Frame) -> PVCoordinatesProvider: ...
 
+class ExtendedPVCoordinatesProvider(ExtendedPositionProvider):
+    """
+    public interface ExtendedPVCoordinatesProvider extends :class:`~org.orekit.utils.ExtendedPositionProvider`
+    
+        Interface for PV coordinates providers that also support fields.
+    
+        Since:
+            9.2
+    """
+    _getPVCoordinates_0__T = typing.TypeVar('_getPVCoordinates_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getPVCoordinates(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getPVCoordinates_0__T], frame: org.orekit.frames.Frame) -> TimeStampedFieldPVCoordinates[_getPVCoordinates_0__T]:
+        """
+            Get the :class:`~org.orekit.utils.FieldPVCoordinates` of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.ExtendedPositionProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.ExtendedPositionProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                time-stamped position/velocity of the body (m and m/s)
+        
+        
+        """
+        ...
+    @typing.overload
+    def getPVCoordinates(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> TimeStampedPVCoordinates: ...
+    _getPosition_0__T = typing.TypeVar('_getPosition_0__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
+    @typing.overload
+    def getPosition(self, fieldAbsoluteDate: org.orekit.time.FieldAbsoluteDate[_getPosition_0__T], frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.FieldVector3D[_getPosition_0__T]:
+        """
+            Get the position of the body in the selected frame.
+        
+            Specified by:
+                :meth:`~org.orekit.utils.ExtendedPositionProvider.getPosition` in
+                interface :class:`~org.orekit.utils.ExtendedPositionProvider`
+        
+            Parameters:
+                date (:class:`~org.orekit.time.FieldAbsoluteDate`<T> date): current date
+                frame (:class:`~org.orekit.frames.Frame`): the frame where to define the position
+        
+            Returns:
+                position of the body (m and)
+        
+            Since:
+                12.0
+        
+        
+        """
+        ...
+    @typing.overload
+    def getPosition(self, absoluteDate: org.orekit.time.AbsoluteDate, frame: org.orekit.frames.Frame) -> org.hipparchus.geometry.euclidean.threed.Vector3D: ...
+
 _FieldAbsolutePVCoordinates__T = typing.TypeVar('_FieldAbsolutePVCoordinates__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
 class FieldAbsolutePVCoordinates(TimeStampedFieldPVCoordinates[_FieldAbsolutePVCoordinates__T], org.orekit.time.FieldTimeStamped[_FieldAbsolutePVCoordinates__T], FieldPVCoordinatesProvider[_FieldAbsolutePVCoordinates__T], typing.Generic[_FieldAbsolutePVCoordinates__T]):
     """
@@ -6972,6 +7194,21 @@ class FieldAbsolutePVCoordinates(TimeStampedFieldPVCoordinates[_FieldAbsolutePVC
         ...
     def toTaylorProvider(self) -> FieldPVCoordinatesProvider[_FieldAbsolutePVCoordinates__T]: ...
 
+class MultipleShooter(AbstractMultipleShooting):
+    """
+    public class MultipleShooter extends :class:`~org.orekit.utils.AbstractMultipleShooting`
+    
+        Multiple shooting method applicable for trajectories, in an ephemeris model. Not suited for closed orbits.
+    
+        Since:
+            10.2
+    
+        Also see:
+            "TRAJECTORY DESIGN AND ORBIT MAINTENANCE STRATEGIES IN MULTI-BODY DYNAMICAL REGIMES by Thomas A. Pavlak, Purdue
+            University"
+    """
+    def __init__(self, list: java.util.List[org.orekit.propagation.SpacecraftState], list2: java.util.List[org.orekit.propagation.numerical.NumericalPropagator], list3: java.util.List[org.orekit.propagation.numerical.EpochDerivativesEquations], double: float, int: int): ...
+
 class FrameAdapter(ExtendedPVCoordinatesProvider):
     """
     public class FrameAdapter extends :class:`~org.orekit.utils.https:.docs.oracle.com.javase.8.docs.api.java.lang.Object?is` implements :class:`~org.orekit.utils.ExtendedPVCoordinatesProvider`
@@ -6995,6 +7232,10 @@ class FrameAdapter(ExtendedPVCoordinatesProvider):
         """
             Get the :class:`~org.orekit.utils.FieldPVCoordinates` of the body in the selected frame.
         
+            Specified by:
+                :meth:`~org.orekit.utils.ExtendedPositionProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.ExtendedPositionProvider`
+        
             Specified by:
                 :meth:`~org.orekit.utils.ExtendedPVCoordinatesProvider.getPVCoordinates` in
                 interface :class:`~org.orekit.utils.ExtendedPVCoordinatesProvider`
@@ -7014,6 +7255,10 @@ class FrameAdapter(ExtendedPVCoordinatesProvider):
         """
             Get the :class:`~org.orekit.utils.PVCoordinates` of the body in the selected frame.
         
+            Specified by:
+                :meth:`~org.orekit.utils.ExtendedPositionProvider.getPVCoordinates` in
+                interface :class:`~org.orekit.utils.ExtendedPositionProvider`
+        
             Specified by:
                 :meth:`~org.orekit.utils.PVCoordinatesProvider.getPVCoordinates` in
                 interface :class:`~org.orekit.utils.PVCoordinatesProvider`
@@ -7028,21 +7273,6 @@ class FrameAdapter(ExtendedPVCoordinatesProvider):
         """
         ...
 
-class MultipleShooter(AbstractMultipleShooting):
-    """
-    public class MultipleShooter extends :class:`~org.orekit.utils.AbstractMultipleShooting`
-    
-        Multiple shooting method applicable for trajectories, in an ephemeris model. Not suited for closed orbits.
-    
-        Since:
-            10.2
-    
-        Also see:
-            "TRAJECTORY DESIGN AND ORBIT MAINTENANCE STRATEGIES IN MULTI-BODY DYNAMICAL REGIMES by Thomas A. Pavlak, Purdue
-            University"
-    """
-    def __init__(self, list: java.util.List[org.orekit.propagation.SpacecraftState], list2: java.util.List[org.orekit.propagation.numerical.NumericalPropagator], list3: java.util.List[org.orekit.propagation.numerical.EpochDerivativesEquations], double: float, int: int): ...
-
 
 class __module_protocol__(Protocol):
     # A module protocol which reflects the result of ``jp.JPackage("org.orekit.utils")``.
@@ -7063,6 +7293,7 @@ class __module_protocol__(Protocol):
     ElevationMask: typing.Type[ElevationMask]
     ExtendedPVCoordinatesProvider: typing.Type[ExtendedPVCoordinatesProvider]
     ExtendedPVCoordinatesProviderAdapter: typing.Type[ExtendedPVCoordinatesProviderAdapter]
+    ExtendedPositionProvider: typing.Type[ExtendedPositionProvider]
     FieldAbsolutePVCoordinates: typing.Type[FieldAbsolutePVCoordinates]
     FieldAbsolutePVCoordinatesHermiteInterpolator: typing.Type[FieldAbsolutePVCoordinatesHermiteInterpolator]
     FieldAngularCoordinates: typing.Type[FieldAngularCoordinates]
@@ -7070,6 +7301,8 @@ class __module_protocol__(Protocol):
     FieldLegendrePolynomials: typing.Type[FieldLegendrePolynomials]
     FieldPVCoordinates: typing.Type[FieldPVCoordinates]
     FieldPVCoordinatesProvider: typing.Type[FieldPVCoordinatesProvider]
+    FieldShiftingPVCoordinatesProvider: typing.Type[FieldShiftingPVCoordinatesProvider]
+    FieldSortedListTrimmer: typing.Type[FieldSortedListTrimmer]
     FieldTimeSpanMap: typing.Type[FieldTimeSpanMap]
     FieldTimeStampedCache: typing.Type[FieldTimeStampedCache]
     FieldTrackingCoordinates: typing.Type[FieldTrackingCoordinates]
@@ -7095,6 +7328,8 @@ class __module_protocol__(Protocol):
     ParameterFunction: typing.Type[ParameterFunction]
     ParameterObserver: typing.Type[ParameterObserver]
     SecularAndHarmonic: typing.Type[SecularAndHarmonic]
+    ShiftingPVCoordinatesProvider: typing.Type[ShiftingPVCoordinatesProvider]
+    SortedListTrimmer: typing.Type[SortedListTrimmer]
     StateFunction: typing.Type[StateFunction]
     StateJacobian: typing.Type[StateJacobian]
     TimeSpanMap: typing.Type[TimeSpanMap]
diff --git a/org-stubs/orekit/utils/units/__init__.pyi b/org-stubs/orekit/utils/units/__init__.pyi
index 35ab7bcb5c25800a7f37da9d2f968cd33f51e7aa..2e0055cb5acc04723cf048b149e90874c4514795 100644
--- a/org-stubs/orekit/utils/units/__init__.pyi
+++ b/org-stubs/orekit/utils/units/__init__.pyi
@@ -8,6 +8,7 @@ else:
 import java.io
 import java.lang
 import java.util
+import org.hipparchus
 import org.hipparchus.fraction
 import typing
 
@@ -375,6 +376,7 @@ class Unit(java.io.Serializable):
         
         """
         ...
+    _fromSI_2__T = typing.TypeVar('_fromSI_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def fromSI(self, double: float) -> float:
         """
@@ -394,11 +396,24 @@ class Unit(java.io.Serializable):
             Returns:
                 value in instance units
         
-        
         """
         ...
     @typing.overload
     def fromSI(self, double: float) -> float: ...
+    @typing.overload
+    def fromSI(self, t: _fromSI_2__T) -> _fromSI_2__T:
+        """
+            Convert a value from SI units.
+        
+            Parameters:
+                value (T): value SI unit
+        
+            Returns:
+                value in instance units
+        
+        
+        """
+        ...
     def getAngle(self) -> org.hipparchus.fraction.Fraction:
         """
             Get the angle exponent.
@@ -642,6 +657,7 @@ class Unit(java.io.Serializable):
         
         """
         ...
+    _toSI_2__T = typing.TypeVar('_toSI_2__T', bound=org.hipparchus.CalculusFieldElement)  # <T>
     @typing.overload
     def toSI(self, double: float) -> float:
         """
@@ -661,11 +677,27 @@ class Unit(java.io.Serializable):
             Returns:
                 value in SI units
         
-        
         """
         ...
     @typing.overload
     def toSI(self, double: float) -> float: ...
+    @typing.overload
+    def toSI(self, t: _toSI_2__T) -> _toSI_2__T:
+        """
+            Convert a value to SI units.
+        
+            Parameters:
+                value (T): value instance unit
+        
+            Returns:
+                value in SI units
+        
+            Since:
+                12.1
+        
+        
+        """
+        ...
     def toString(self) -> str:
         """
         
diff --git a/pom.xml b/pom.xml
index a4debc8ae096a3d1f07afab1dcb2a77032b94522..2690b9b87dd9689b86c469fa9eae12dcda6af175 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,9 +5,9 @@
   <version>0.0.1-SNAPSHOT</version>
   <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-      <orekit.version>12.0.2</orekit.version>
-      <rugged.version>3.0</rugged.version>
-      <hipparchus.version>3.0</hipparchus.version>
+      <orekit.version>12.1.1</orekit.version>
+      <rugged.version>4.0-SNAPSHOT</rugged.version>
+      <hipparchus.version>3.1</hipparchus.version>
   </properties>
   <repositories>
     <repository>
diff --git a/pyproject.toml b/pyproject.toml
index 4238db4b1310dd33299485c887130ac16e98f636..4d541349749c0754973e759990487404d737450e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -7,7 +7,7 @@ allow-direct-references = true
 
 [project]
 name = "orekit_jpype"
-version = "12.0.2.0"
+version = "12.1.1.0"
 description = "A space dynamics library. This package is a jpype wrapping of the original orekit java code."
 readme = "README.md"
 authors = [{name = "Petrus Hyvönen", email = "petrus.hyvonen@gmail.com"}]
diff --git a/test/RuggedTest.py b/test/RuggedTest.py
new file mode 100644
index 0000000000000000000000000000000000000000..d84299e0bd059d43b1b7b17112413b27803478b7
--- /dev/null
+++ b/test/RuggedTest.py
@@ -0,0 +1,217 @@
+from orekit_jpype import initVM
+initVM()
+
+from orekit_jpype.pyhelpers import setup_orekit_curdir, datetime_to_absolutedate
+setup_orekit_curdir("resources")
+
+import unittest
+import pytest
+import datetime
+import numpy as np
+from typing import Tuple
+
+from java.util import ArrayList
+from org.hipparchus.geometry.euclidean.threed import Vector3D, Rotation
+from org.orekit.rugged.los import LOSBuilder
+from org.orekit.rugged.linesensor import LinearLineDatation, LineSensor
+from org.orekit.frames import FramesFactory
+from org.orekit.utils import IERSConventions, TimeStampedPVCoordinates, CartesianDerivativesFilter, AngularDerivativesFilter, AbsolutePVCoordinates
+from org.orekit.rugged.api import RuggedBuilder, AlgorithmId, Rugged
+from org.orekit.models.earth import ReferenceEllipsoid
+from org.orekit.attitudes import AttitudeProvider, FrameAlignedProvider
+from org.orekit.propagation import Propagator
+from org.orekit.propagation.analytical import KeplerianPropagator
+from org.orekit.orbits import CartesianOrbit
+from org.orekit.propagation.analytical.tle import TLE, SGP4
+from org.orekit.time import AbsoluteDate
+from org.orekit.utils import Constants
+from org.orekit.bodies import GeodeticPoint
+
+
+class RuggedTest(unittest.TestCase):
+    def __init__(self, *args, **kwargs):
+        super(RuggedTest, self).__init__(*args, **kwargs)
+
+        self.fov_x = 0.0572 # half angle, deg
+        self.fov_y = 0.0761 # half angle, deg
+
+        self.tod = FramesFactory.getTOD(IERSConventions.IERS_2010, True)
+        self.itrf = FramesFactory.getITRF(IERSConventions.IERS_2010, True)
+        self.wgs84_ellipsoid = ReferenceEllipsoid.getWgs84(self.itrf)
+
+        self.t_step = 1.0
+        self.overshoot_tolerance = 1.0
+        self.n_interpolation_neighbours = 2
+
+    def build_line_sensor(self, line_epoch: AbsoluteDate) -> LineSensor:
+        """
+        Builds a LineSensor object with only one viewing direction,
+        along the +Z axis of the spacecraft
+        """
+        viewing_directions = ArrayList()
+        los_vec_SAT = Vector3D(
+                0.0,
+                0.0,
+                1.0
+            )
+        viewing_directions.add(los_vec_SAT)
+
+        line_of_sight = LOSBuilder(viewing_directions).build()
+
+        line_datation = LinearLineDatation(line_epoch,
+                                           0.0,
+                                           1e3)
+
+        return LineSensor("LineSensor", line_datation, Vector3D.ZERO, line_of_sight)
+
+    def build_propagator(self,
+                         timestamp: datetime.datetime,
+                         pos_TOD,
+                         vel_TOD,
+                         att_provider: AttitudeProvider) -> Propagator:
+        """
+        Build a Kepler propagator from only one datapoint with position/velocity/attitude/rate
+        parameters:
+            timestamp: datetime
+            pos_TOD: 3*1 numpy array containing position in TOD frame in meters
+            vel_TOD: 3*1 numpy array containing velocity in TOD frame in m/s
+            att_provider: AttitudeProvider
+        """
+        timestamped_PV = TimeStampedPVCoordinates(datetime_to_absolutedate(timestamp),
+                                                  Vector3D(pos_TOD.tolist()),
+                                                  Vector3D(vel_TOD.tolist())
+                                                  )
+
+        orbit = CartesianOrbit(timestamped_PV,
+                               self.tod,
+                               Constants.WGS84_EARTH_MU)
+
+        return KeplerianPropagator(orbit, att_provider)
+
+    def build_rugged(self, propagator: Propagator, min_date: AbsoluteDate, max_date: AbsoluteDate,
+                     line_sensor: LineSensor) -> Rugged:
+        """
+        Build a Rugged instance from the given Ephemeris propagator and only one line sensor
+        Without DEM, only with ellipsoid, and with all other settings to default
+        """
+        rugged_builder = RuggedBuilder()
+
+        rugged_builder.setAlgorithm(AlgorithmId.IGNORE_DEM_USE_ELLIPSOID)
+        rugged_builder.setEllipsoid(self.wgs84_ellipsoid)
+
+        rugged_builder.setTimeSpan(min_date,
+                                   max_date,
+                                   self.t_step,
+                                   self.overshoot_tolerance
+                                   )
+
+        pos_derivative_filter = CartesianDerivativesFilter.USE_PV
+        angular_derivative_filter = AngularDerivativesFilter.USE_RR
+
+        rugged_builder.setTrajectory(self.t_step,
+                                     self.n_interpolation_neighbours,
+                                     pos_derivative_filter,
+                                     angular_derivative_filter,
+                                     propagator
+                                     )
+
+        rugged_builder.addLineSensor(line_sensor)
+
+        return rugged_builder.build()
+
+    def build_frame_aligned_provider(self, q_TODfromSAT) -> AttitudeProvider:
+        rotation = Rotation(float(q_TODfromSAT[0]),
+                            float(q_TODfromSAT[1]),
+                            float(q_TODfromSAT[2]),
+                            float(q_TODfromSAT[3]),
+                            True)
+        return FrameAlignedProvider(rotation, self.tod)
+
+    def build_tle_propagator(self, att_provider: AttitudeProvider,
+                             tle_line1: str, tle_line2: str) -> Propagator:
+        tle = TLE(tle_line1, tle_line2)
+        return SGP4(tle, att_provider, 50.0)
+
+    def direct_location(self, timestamp: datetime.datetime, propagator: Propagator) -> GeodeticPoint:
+        absolute_date = datetime_to_absolutedate(timestamp)
+        min_date = absolute_date.shiftedBy(-self.t_step)
+        max_date = absolute_date.shiftedBy(self.t_step)
+
+        line_sensor = self.build_line_sensor(line_epoch=min_date)
+
+        rugged = self.build_rugged(propagator=propagator,
+                                   min_date=min_date,
+                                   max_date=max_date,
+                                   line_sensor=line_sensor)
+
+        los = line_sensor.getLOS(absolute_date, 0)
+        return rugged.directLocation(absolute_date, Vector3D.ZERO, los)
+
+
+    def test_rugged_direct_location_single_pva_point(self):
+        """
+        Performs a basic direct location from a single data point (position, velocity, attitude)
+        This test is not super accurate but is only here to test that Rugged is not broken
+        """
+
+        """
+        Creating an Ephemeris propagator from example telemetry data from the TUBIN satellite
+        from TU Berlin
+        """
+        timestamp = datetime.datetime(2023, 8, 17, 16, 6, 26, 400000)
+
+        inertial_att_provider = self.build_frame_aligned_provider(
+            q_TODfromSAT=np.array([0.1288, 0.85362673, -0.12312595, 0.48946089])
+            )
+
+        bounded_prop = self.build_propagator(
+            timestamp=timestamp,
+            pos_TOD=np.array([-5984085., -831225., 3291501.75]),
+            vel_TOD=np.array([-3744.86083984, 638.70556641, -6598.59521484]),
+            att_provider=inertial_att_provider
+        )
+
+        geodetic_point = self.direct_location(
+            timestamp=timestamp,
+            propagator=bounded_prop
+        )
+
+        """
+        The coordinates should approximately correspond to Tenerife
+        """
+        assert np.rad2deg(geodetic_point.getLatitude()) == pytest.approx(28.5, abs=1.0)
+        assert np.rad2deg(geodetic_point.getLongitude()) == pytest.approx(-17.0, abs=1.0)
+
+
+    def test_rugged_direct_location_from_tle(self):
+        """
+        Performs a basic direct location from Two-Line Elements data
+        and attitude telemetry from the TUBIN satellite from TU Berlin
+        This test is not super accurate but is only here to test that Rugged is not broken
+        """
+
+        """
+        Creating a propagator from a TLE
+        """
+        timestamp = datetime.datetime(2023, 8, 17, 16, 6, 26, 400000)
+
+        inertial_att_provider = self.build_frame_aligned_provider(
+            q_TODfromSAT=np.array([0.1288, 0.85362673, -0.12312595, 0.48946089])
+            )
+
+        propagator = self.build_tle_propagator(
+            inertial_att_provider,
+            tle_line1="1 48900U 21059X   23229.44616644  .00010250  00000-0  47112-3 0  9997",
+            tle_line2="2 48900  97.6079   3.5060 0009943  72.3812 287.8508 15.20521326118480"
+        )
+
+        geodetic_point = self.direct_location(
+            timestamp=timestamp,
+            propagator=propagator
+        )
+
+        """
+        The coordinates should approximately correspond to Tenerife
+        """
+        assert np.rad2deg(geodetic_point.getLatitude()) == pytest.approx(28.5, abs=1.0)
+        assert np.rad2deg(geodetic_point.getLongitude()) == pytest.approx(-17.0, abs=1.0)