Frobenius-Schur indicator and character table of finite groups Let $G$ be a finite group and $\pi$ an irreducible complex representation. The Frobenius-Schur indicator  of $\pi$ is defined as:
$$ \nu_2(\pi):=\frac{1}{|G|} \sum_{g \in G} \chi_{\pi}(g^2) $$
with $\chi_{\pi}$ the character of $\pi$.
Note that the map $s: g \mapsto g^2$ is well-defined on the conjugacy classes as $\tilde{s}: C(g) \mapsto C(g^2)$ because $(hgh^{-1})^2 = hg^2h^{-1}$. Let $\chi_1, \cdots, \chi_r$ be the irreducible characters of $G$ (with $\chi_i = \chi_{\pi_i}$), and $C_1, \cdots, C_r$ be the conjugacy classes, with $\chi_1$ the trivial and $C_1 = C(1)$. The character table of $G$ is given by the matrix $(\chi_{i,j})$ with $\{ \chi_{i,j} \} = \chi_i(C_j)$. The map $\tilde{s}$ induces a map $m$ on $\{1,2, \cdots, r \}$ such that $\tilde{s}(C_j) = C_{m(j)}$. It follows that the Frobenius-Schur indicator $\nu_2$ is completely determined by the character table $(\chi_{i,j})$ and the map $m$ as follows:
$$ \nu_2(\pi_i):=\frac{1}{|G|} \sum_{j} |C_{j}|\chi_{i,m(j)} = \sum_j \frac{\chi_{i,m(j)}}{\sum_i |\chi_{i,j}|^2}$$
because $|C_j| = |G|/\sum_i |\chi_{i,j}|^2$.
Note that the character table alone is not sufficient to determine $\nu_2$. For example, the quaternion group $Q_8$ and the dihedral group $D_4$ have same character table, but the first admits an irreducible complex representation with Frobenius-Schur indicator $-1$ (in fact it is the smallest such finite group) whereas the second not. But these do not have the same class type $(1,2,4A,4B,4)$ for the first and $(1,2A,2B,2C,4)$ for the second (a class is of type $nX$ if its elements has order $n$).
Question: Is the Frobenius-Schur indicator $\nu_2$ completely determined by the character table including the class types?  If so, what is the formula?
It is "suggested" true by the section 71.12-5 in GAP manual, as GAP seems to need these data only to compute $\nu_2$.
 A: I don't see a way at the moment to a full answer, but I mention the following in case someone can make use of it : the class function Sqr defined by Sqr(g) = the number of square roots of G in G is always a generalzied character: we have
${\rm Sqr}(g) = \sum_{ \chi \in {\rm Irr}(G)} \nu_{2}(\chi) \chi(g)$ for each $g \in G$, and clearly Sqr contains the trivial character with multiplicity one.
It follows that a necessary and sufficient condition for there to be no irreducible character $\chi$ of $G$ with $\nu_{2}(\chi) = -1$ is that the function Sqr is a genuine character of $G$, that is, a non-negative integer (not all zero) combination of irreducible characters of $G$.
(continued..) In general, I don't think it's clear how to calculate the function Sqr just from the class types and character table: in the examples given of the quaternion and dihedral groups of order 8 it is easy, because elements of order $4$ have no square root (in these groups), while in $Q8$ the identity has only two square roots and an element of order $2$ has six square roots , and in $D8$ the central involution has two square roots, the identity has $6$ square roots, and the non-central involutions have no square roots.
In general, when there are many classes of elements of the same order, I think it is less clear how to calculate just from class types and character table how many square roots elements have.
Conversely, in groups $G$ where Sqr is determinable from this information, we can tell whether Sqr is a character by calculating $\langle {\rm Sqr}, \chi \rangle $ for each irreducible character $\chi$.
A: From the source code of GAP:
#############################################################################
##
#M  IndicatorOp( <ordtbl>, <characters>, <n> )
#M  IndicatorOp( <modtbl>, <characters>, 2 )
##
InstallMethod( IndicatorOp,
    "for an ord. character table, a hom. list, and a pos. integer",
    [ IsOrdinaryTable, IsHomogeneousList, IsPosInt ],
    function( tbl, characters, n )
    local principal, map;

    principal:= List( [ 1 .. NrConjugacyClasses( tbl ) ], x -> 1 );
    map:= PowerMap( tbl, n );
    return List( characters,
                 chi -> ScalarProduct( tbl, chi{ map }, principal ) );
    end );

So in the computation performed on a character table, GAP computes the power map $g \mapsto g^n$ on the conjugacy classes of $G$, and with this for each character $\chi$ the scalar product $\nu_n(\chi) = \langle \chi^{(n)}, 1 \rangle$, where $\chi^{(n)}(g) = \chi(g^n)$ for all $g \in G$.
