Я думаю, что это ваша глобальная сфера, которая загрязнена. Посмотрите на этот пример:
import sympy as sy
def f(x, w1, w2):
return w1 * x**3 + w2 * x - 1
def derivative(w1, w2, pt):
x = sy.Symbol('x')
# Get derivative of f(x)
def df(x, w1, w2):
return sy.diff(f(x, w1, w2),x)
# Evaluate at point x
return df(x, w1, w2).subs(x,pt)
print(derivative(5, 8, 2))
Это просто измененная версия вашего примера 2, и он возвращает тот же ответ.
Причина этой ошибки состоит в том, что расположение FixedPage не обновляется до записи. Это заставляет первый FixedPage в первом FixedDocument в FixedDocumentSequence быть записанным неправильно. Это не влияет ни на КАКИЕ ДРУГИЕ СТРАНИЦЫ В ПОЛУЧАЮЩЕМСЯ ДОКУМЕНТЕ, который сделал эту ошибку/пограничный случай тяжелее для закрепления.
Следующие РАБОТЫ (переписанная версия нерабочего примера):
FixedPage fp = CreateFixedPageWithBinding();
fp.DataContext = CreateDataContext();
var fd = new FixedDocument();
/* PAY ATTENTION HERE */
// set the page size on our fixed document
fd.DocumentPaginator.PageSize =
new System.Windows.Size()
{
Width = DotsPerInch * PageWidth,
Height = DotsPerInch * PageHeight
};
// Update the layout of our FixedPage
var size = fd.DocumentPaginator.PageSize;
page.Measure(size);
page.Arrange(new Rect(new Point(), size));
page.UpdateLayout();
/* STOP PAYING ATTENTION HERE */
var pc = new PageContent();
((IAddChild)pc).AddChild(fp);
fd.Pages.Add(pageContent);
// Create a fixed document sequence and add the fixed document to it
FixedDocumentSequence fds = CreateFixedDocumentSequence();
var dr = new DocumentReference();
dr.BeginInit();
dr.SetDocument(fd);
dr.EndInit();
(fds as IAddChild).AddChild(dr);
// Create an xps document and write the fixed document sequence to it
var p = Package.Open("c:\\output.xps", FileMode.CreateNew);
var doc = new XpsDocument(p);
var writer = XpsDocument.CreateXpsDocumentWriter(doc);
wri2.Write(fds);
p.Flush();
p.Close();
Одна причина, что Вы теряете привязку, состоит в том, что Вы выдаете исключение где-нибудь - к сожалению, это исключение тихо глотают, и Ваша привязка просто "прекращает работать". Включите исключения Первого шанса и посмотрите, поражено ли что-нибудь.