sseq sseq_builder::build_sseq () { if (verbose) { fprintf (stderr, "computing spectral sequence...\n"); fprintf (stderr, "computing E^1...\n"); } unsigned dh = 1; cancel (dh); dh ++; if (verbose) fprintf (stderr, "computing E^1 done.\n"); unsigned i0 = present.head (); grading i0gr = C->generator_grading (i0); int minh = i0gr.h, maxh = i0gr.h, minq = i0gr.q, maxq = i0gr.q; for (ullmanset<1>::const_iter i = present; i; i ++) { grading igr = C->generator_grading (i.val ()); if (igr.h < minh) minh = igr.h; if (igr.h > maxh) maxh = igr.h; if (igr.q < minq) minq = igr.q; if (igr.q > maxq) maxq = igr.q; } sseq_bounds b (minh, maxh, minq, maxq); sseq r (b); #if 0 printf ("minh=%d, maxh=%d, minq=%d, maxq=%d\n", minh, maxh, minq, maxq); #endif for (;;) { if (verbose) fprintf (stderr, "computing E^%d...\n", dh); sseq_page pg (b); basedvector<linear_combination, 1> span; for (ullmanset<1>::const_iter i = present; i; i ++) { grading igr = C->generator_grading (i.val ()); #if 0 printf ("i=%d, igr.h=%d, igr.q=%d\n", i.val (), igr.h, igr.q); #endif pg.rank[igr.h - minh][igr.q - minq] ++; linear_combination v (C); for (set<unsigned>::const_iter j = im[i.val ()]; j; j ++) { grading jgr = C->generator_grading (j.val ()); if (jgr.h - igr.h == (int)dh) { assert ((jgr.h - igr.h - 1) * 2 == (jgr.q - igr.q)); v.muladd (1, j.val ()); } } span.append (v); } unsigned dq = (dh - 1) * 2; mod_span<Z2> span2 (C, span); ptr<const module<Z2> > im2 = C->submodule (span2); for (unsigned i = 1; i <= im2->dim (); i ++) { grading igr = im2->generator_grading (i); pg.im_rank[igr.h - dh - minh][igr.q - dq - minq] ++; } r.pages.append (pg); if (verbose) fprintf (stderr, "computing E^%d done.\n", dh); if (im_zero ()) break; cancel (dh); dh ++; } if (verbose) fprintf (stderr, "computing spectral sequence done.\n"); return r; }
void CMailView::CreateDemo(BOOL bRedraw/* = TRUE*/) { CBCGPReportCtrl* pReportCtrl = GetReportCtrl (); ASSERT_VALID (pReportCtrl); pReportCtrl->RemoveAll (); #define NAMES_NUM 7 LPCTSTR arNames [NAMES_NUM] = { _T("John Smith"), _T("Support Team"), _T("Peter Brown"), _T("Matt Johnson"), _T("James Lee"), _T("Customer Service"), _T("Webmaster"), }; #define SUBJ_NUM 8 LPCTSTR arSubjs [SUBJ_NUM] = { _T("Important information"), _T("Customer Newsletter"), _T("Question"), _T("Business proposal"), _T("Request more info about your products"), _T("Thank you!"), _T("Your application has been approved"), _T("Please read this message"), }; srand( (unsigned)time( NULL ) ); for (int i = 0; i < 100; i++) { COleDateTime now = COleDateTime::GetCurrentTime (); COleDateTimeSpan span ( Rand (5), Rand (23), Rand (59), 0); COleDateTimeSpan span2 ( 0, Rand (2), Rand (59), Rand (59)); AddMail (Rand (2), // Icon arNames [Rand (NAMES_NUM)], arNames [Rand (NAMES_NUM)], arSubjs [Rand (SUBJ_NUM)], now - span - span2, now - span, Rand (200), (IMPORTANCE) Rand (3), Rand (2), Rand (7)); } if (bRedraw) { pReportCtrl->AdjustLayout (); } }
inline int CompareAppointments (const CBCGPAppointment* pApp1, const CBCGPAppointment* pApp2) { if (pApp1 == pApp2) { return 0; } if (pApp1->GetResourceID () < pApp2->GetResourceID ()) { return -1; } else if (pApp2->GetResourceID () < pApp1->GetResourceID ()) { return 1; } BOOL bAllOrMulti1 = pApp1->IsMultiDay () || pApp1->IsAllDay (); BOOL bAllOrMulti2 = pApp2->IsMultiDay () || pApp2->IsAllDay (); if (CBCGPPlannerView::IsOneDay (pApp1->GetStart (), pApp2->GetStart ())) { if (bAllOrMulti1 && !bAllOrMulti2) { return -1; } else if (!bAllOrMulti1 && bAllOrMulti2) { return 1; } } if (!(bAllOrMulti1 && bAllOrMulti2) || (bAllOrMulti1 && bAllOrMulti2)) { if (pApp1->GetStart () < pApp2->GetStart ()) { return -1; } else if (pApp2->GetStart () < pApp1->GetStart ()) { return 1; } else { COleDateTimeSpan span1 (pApp1->GetDuration ()); COleDateTimeSpan span2 (pApp2->GetDuration ()); if (span1 < span2) { return 1; } else if (span2 < span1) { return -1; } } } const CString& str1 = pApp1->GetDescription (); const CString& str2 = pApp2->GetDescription (); if (!str1.IsEmpty () && !str2.IsEmpty ()) { if (_totupper(str1[0]) == _totupper(str2[0])) { return str1.Compare (str2); } } return str1.CompareNoCase (str2); }