# Revision history [back]

Hello. One possible way to do this is using the double question sign operator (??). For example:

A.add_multiple_of_row??


will show you something like

Source:
def add_multiple_of_row(self, Py_ssize_t i, Py_ssize_t j,    s,   Py_ssize_t start_col=0):
"""
Add s times row j to row i.

EXAMPLES: We add -3 times the first row to the second row of an
integer matrix, remembering to start numbering rows at zero::

sage: a = matrix(ZZ,2,3,range(6)); a
[0 1 2]
[3 4 5]
sage: a
[ 0  1  2]
[ 3  1 -1]


Etc...

Unfortunately, as you might guess, this was intended to show not only the docstring, but the whole code. That is why you see strange data types like Py_ssize_t, which comes from Cython, acombination of C and Python, in which this particular subroutine is written.

However, this should not be a problem, since the docstring will guide you further, and it is difficult to run into Cython implementations in every-day use of SageMath. Just ignore strange data types.

Hello. One possible way to do this is using the double question sign operator (??). For example:

A.add_multiple_of_row??


will show you something like

Source:
def add_multiple_of_row(self, Py_ssize_t i, Py_ssize_t j,    s,   Py_ssize_t start_col=0):
"""
Add s times row j to row i.

EXAMPLES: We add -3 times the first row to the second row of an
integer matrix, remembering to start numbering rows at zero::

sage: a = matrix(ZZ,2,3,range(6)); a
[0 1 2]
[3 4 5]
sage: a
[ 0  1  2]
[ 3  1 -1]


Etc...

Unfortunately, as you might guess, this was intended to show not only the docstring, but the whole code. That is why you see strange data types like Py_ssize_t, which comes from Cython, acombination of C and Python, in which this particular subroutine is written.written. If you don't know the meaning of the keyword self, it is safe to ignore it.

However, this should not be a problem, since the docstring will guide you further, and it is difficult to run into Cython implementations in every-day use of SageMath. Just ignore strange data types.

types and also self: consider the signature of the subroutine to be

def add_multiple_of_row(i, j, s, start_col=0):


Hello. One possible way to do this is using the double question sign operator (??). For example:

A.add_multiple_of_row??


will show you something like

Source:
def add_multiple_of_row(self, Py_ssize_t i, Py_ssize_t j,    s,   Py_ssize_t start_col=0):
"""
Add s times row j to row i.

EXAMPLES: We add -3 times the first row to the second row of an
integer matrix, remembering to start numbering rows at zero::

sage: a = matrix(ZZ,2,3,range(6)); a
[0 1 2]
[3 4 5]
sage: a
[ 0  1  2]
[ 3  1 -1]


Etc...

Unfortunately, as you might guess, this was intended to show not only the docstring, but the whole code. That is why you see strange data types like Py_ssize_t, which comes from Cython, acombination of C and Python, in which this particular subroutine is written. If you don't know the meaning of the keyword self, it is safe to ignore it.

However, this should not be a problem, since the docstring will guide you further, and it is difficult to run into Cython implementations in every-day use of SageMath. Just ignore strange data types and also self: consider the signature of the subroutine to be

def add_multiple_of_row(i, j, s, start_col=0):


You can also use help(A.add_multiple_of_row), which will show the same, except for the part of the code. (I have not experimented much with this command.)