<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Upulee,<div class=""><br class=""></div><div class="">how do you generate the call graph? Normally Soot expects a static main-method to work correctly. Using non-static entry points has showed to result ins troubles: <a href="https://mailman.cs.mcgill.ca/pipermail/soot-list/2013-January/005105.html" class="">https://mailman.cs.mcgill.ca/pipermail/soot-list/2013-January/005105.html</a></div><div class=""><br class=""></div><div class="">Regards, Bernhard</div><div class=""><br class=""></div><div style="" class=""><blockquote type="cite" class=""><div class="">Am 08.05.2017 um 23:37 schrieb Upulee Kanewala <<a href="mailto:upuleegk@gmail.com" class="">upuleegk@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hello all,<div class=""><br class=""></div><div class="">I am using SPARK to generate the call graph for a method from JScience listed below. The generated call graph only has the following three nodes and the edges:</div><div class=""><br class=""></div><div class="">solve -> StringBuilder:<init></div><div class="">solve -> DimentionException:<init></div><div class="">DimentionException:<init> -> RunTimeException:<init></div><div class=""><br class=""></div><div class="">What is the reason for missing the other method calls in the solve() method. Am I missing an option that is causing this? (I followed the examples in the survivor's guide to write my code).</div><div class=""> </div><div class=""><br class=""></div><div class=""><div class=""> /**</div><div class="">     * Returns the solution X of the equation: A * X = B  with</div><div class="">     * <code>this = <a href="http://a.lu/" class="">A.lu</a>()</code> using back and forward substitutions.</div><div class="">     *</div><div class="">     * @param  B the input matrix.</div><div class="">     * @return the solution X = (1 / A) * B.</div><div class="">     * @throws DimensionException if the dimensions do not match.</div><div class="">     */</div><div class="">    public DenseMatrix<F> solve(Matrix<F> B) {</div><div class="">        if (_n != B.getNumberOfRows())</div><div class="">            throw new DimensionException("Input vector has "</div><div class="">                    + B.getNumberOfRows() + " rows instead of " + _n);</div><div class=""><br class=""></div><div class="">        // Copies B with pivoting.</div><div class="">        final int n = B.getNumberOfColumns();</div><div class="">        DenseMatrix<F> X = createNullDenseMatrix(_n, n);</div><div class="">        for (int i = 0; i < _n; i++) {</div><div class="">            for (int j = 0; j < n; j++) {</div><div class="">                X.set(i, j, B.get(_pivots.get(i).intValue(), j));</div><div class="">            }</div><div class="">        }</div><div class=""><br class=""></div><div class="">        // Solves L * Y = pivot(B)</div><div class="">        for (int k = 0; k < _n; k++) {</div><div class="">            for (int i = k + 1; i < _n; i++) {</div><div class="">                F luik = _LU.get(i, k);</div><div class="">                for (int j = 0; j < n; j++) {</div><div class="">                    X.set(i, j, X.get(i, j).plus(</div><div class="">                            luik.times(X.get(k, j).opposite())));</div><div class="">                }</div><div class="">            }</div><div class="">        }</div><div class=""><br class=""></div><div class="">        // Solves U * X = Y;</div><div class="">        for (int k = _n - 1; k >= 0; k--) {</div><div class="">            for (int j = 0; j < n; j++) {</div><div class="">                X.set(k, j, (_LU.get(k, k).inverse()).times(X.get(k, j)));</div><div class="">            }</div><div class="">            for (int i = 0; i < k; i++) {</div><div class="">                F luik = _LU.get(i, k);</div><div class="">                for (int j = 0; j < n; j++) {</div><div class="">                    X.set(i, j, X.get(i, j).plus(</div><div class="">                            luik.times(X.get(k, j).opposite())));</div><div class="">                }</div><div class="">            }</div><div class="">        }</div><div class="">        return X;</div><div class="">    }</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks,</div><div class=""><div class="gmail_signature"><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">- Upulee</div><div dir="ltr" class=""><br class=""></div></div></div></div></div></div></div></div></div></div></div>
</div></div>
_______________________________________________<br class="">Soot-list mailing list<br class=""><a href="mailto:Soot-list@CS.McGill.CA" class="">Soot-list@CS.McGill.CA</a><br class=""><a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" class="">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br class=""></div></blockquote></div><br class=""></div></body></html>