Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ChangeLog « ceres « third_party « libmv « extern - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 062bc250617345ea07ca2a33687b4d8c0621840c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
commit c290df85a40a8dd117b5eccc515bf22b0d9b1945
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Apr 7 09:17:47 2013 -0700

    Typo fix.
    
    (Thanks to Pieree Moulon for reporting this)
    
    Change-Id: I536724ab4b7e9c97768d5197aa86b41f37a04d38

commit dc3a27fa60ba7c6b152660afd5abe1c8b608dec3
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Apr 6 19:32:47 2013 -0700

    Fix MatrixVectorMultiply and incorrect DCHECKS.
    
    (Thanks to Serget Sharybin for reporting this)
    
    Change-Id: I6bbc41667308fc2932871cf25ad07b431f70801f

commit 585607171f20d591033dfea43b6dd22fea755a6c
Author: Petter Strandmark <petter.strandmark@gmail.com>
Date:   Sun Apr 7 01:24:13 2013 +0200

    <iterator> needed for back_insert_iterator
    
    Adding this header was required to make Ceres compile with VS2010.
    
    Change-Id: I000c860da4fd385d625e70695564225bdfd433c7

commit 520d35ef22dbcb05e344451c03ae64304e524a06
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Apr 4 08:16:02 2013 -0700

    Further BLAS improvements.
    
    1. Switch to Eigen's implementation when all dimensions are fixed.
    2. Use lazyProduct for eigen matrix-vector product. This brings
       eigen's performance on iterative_schur closer to what it used
       to be before the last commit. There is however still an
       improvement to be had by using the naive implementation when
       the matrix and vector have dynamic dimensions.
    
    BENCHMARK
                                          HEAD                                       CHANGE
    
    problem-16-22106-pre.txt
    gcc-eigen       sparse_schur         0.859    gcc-eigen       sparse_schur        0.853
    clang-eigen     sparse_schur         0.848    clang-eigen     sparse_schur        0.850
    gcc-blas        sparse_schur         0.956    gcc-blas        sparse_schur        0.865
    clang-blas      sparse_schur         0.954    clang-blas      sparse_schur        0.858
    gcc-eigen       iterative_schur      4.656    gcc-eigen       iterative_schur     3.271
    clang-eigen     iterative_schur      4.664    clang-eigen     iterative_schur     3.307
    gcc-blas        iterative_schur      2.598    gcc-blas        iterative_schur     2.620
    clang-blas      iterative_schur      2.554    clang-blas      iterative_schur     2.567
    
    problem-49-7776-pre.txt
    gcc-eigen       sparse_schur         0.477    gcc-eigen       sparse_schur        0.472
    clang-eigen     sparse_schur         0.475    clang-eigen     sparse_schur        0.479
    gcc-blas        sparse_schur         0.521    gcc-blas        sparse_schur        0.469
    clang-blas      sparse_schur         0.508    clang-blas      sparse_schur        0.471
    gcc-eigen       iterative_schur      3.172    gcc-eigen       iterative_schur     2.088
    clang-eigen     iterative_schur      3.161    clang-eigen     iterative_schur     2.079
    gcc-blas        iterative_schur      1.701    gcc-blas        iterative_schur     1.720
    clang-blas      iterative_schur      1.708    clang-blas      iterative_schur     1.694
    
    problem-245-198739-pre.txt
    gcc-eigen       sparse_schur        28.092    gcc-eigen       sparse_schur       28.233
    clang-eigen     sparse_schur        28.148    clang-eigen     sparse_schur       28.400
    gcc-blas        sparse_schur        30.919    gcc-blas        sparse_schur       28.110
    clang-blas      sparse_schur        31.001    clang-blas      sparse_schur       28.407
    gcc-eigen       iterative_schur     63.095    gcc-eigen       iterative_schur    43.694
    clang-eigen     iterative_schur     63.412    clang-eigen     iterative_schur    43.473
    gcc-blas        iterative_schur     33.353    gcc-blas        iterative_schur    33.321
    clang-blas      iterative_schur     33.276    clang-blas      iterative_schur    33.278
    
    problem-257-65132-pre.txt
    gcc-eigen       sparse_schur         3.687    gcc-eigen       sparse_schur        3.629
    clang-eigen     sparse_schur         3.669    clang-eigen     sparse_schur        3.652
    gcc-blas        sparse_schur         3.947    gcc-blas        sparse_schur        3.673
    clang-blas      sparse_schur         3.952    clang-blas      sparse_schur        3.678
    gcc-eigen       iterative_schur    121.512    gcc-eigen       iterative_schur    76.833
    clang-eigen     iterative_schur    123.547    clang-eigen     iterative_schur    78.763
    gcc-blas        iterative_schur     68.334    gcc-blas        iterative_schur    68.612
    clang-blas      iterative_schur     67.793    clang-blas      iterative_schur    68.266
    
    Notes:
    
    1. Naive BLAS was a bit worse than eigen on fixed sized matrices. We did not see this
       before because of the different inlining thresholds. Fixing this boosted eigen's
       performance. Also the disparity between gcc and clang has gone away.
    
    2. SPARSE_SCHUR performance remains the same, since it is only testing static sized
       matrices.
    
    3. ITERATIVE_SCHUR performance goes up substantially due to the lazyProduct change,
       but even there, since most of the products are dynamic sized, the naive implementation
       wins handily.
    
    Change-Id: Idc17f35b9c68aaebb1b2e131adf3af8374a85a4c

commit 25ac54807eedf16fd6c34efc390901ee549a7d14
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Apr 3 18:51:27 2013 -0700

    Speed up Jets.
    
    Change-Id: I101bac1b1a1cf72ca49ffcf843b73c0ef5a6dfcb

commit 3d6eceb45cf27024865908f0c10a5c2b0f8719cf
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Apr 2 21:45:48 2013 -0700

    Replace more instances of Eigen GEMV with Ceres BLAS.
    
    With this ITERATIVE_SCHUR with JACOBI preconditioner went down from
    280 seconds to 150 seconds on problem-744-543562-pre.txt.
    
    Change-Id: I4f319c1108421e8d59f58654a4c0576ad65df609

commit 296fa9b1279ee1900c8ae32d70e97cd10fc0b46b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Apr 2 09:44:15 2013 -0700

    Replace Eigen block operations with small GEMM and GEMV loops.
    
    1. Add Matrix-Matrix and Matrix-Vector multiply functions.
    2. Replace Eigen usage in SchurEliminator with these custom
       matrix operations.
    3. Save on some memory allocations in ChunkOuterProduct.
    4. Replace LDLT with LLT.
    
    As a result on problem-16-22106-pre.txt, the linear solver time
    goes down from 1.2s to 0.64s.
    
    Change-Id: I2daa667960e0a1e8834489965a30be31f37fd87f

commit 222ca20e8facf706582fe696b7f41247391eac12
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Apr 1 09:11:07 2013 -0700

    SuiteSparse cleanup.
    
    1. Silence CHOLMOD's indefiniteness warnings.
    2. Add a comment about how the error handling in suitesparse.cc
       needs to be improved.
    3. Move the analysis logging into suitesparse.cc and out of the
       three callsites.
    
    Change-Id: Idd396b8ea4bf59fc1ffc7f9fcbbc7b38ed71643c

commit b7ba93459b7f584eedb1a9f42f3d06bccabd33dc
Author: Petter Strandmark <petter.strandmark@gmail.com>
Date:   Tue Feb 19 12:52:58 2013 +0100

    Enable larger tuple sizes for Visual Studio 2012.
    
    Visual Studio 2012 does not have variadic templates and implements
    tuples differently. By default, only sizes up to 5 are supported,
    which conflicts with Gtest.
    
    Change-Id: Ieb8d59e4329863cbfa2729d8a76db0714c08d259

commit 564a83fcc690ac8383bf52a782c45757ae7fa2ad
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Mar 26 11:11:43 2013 -0700

    Lint cleanup from William Rucklidge.
    
    Change-Id: I8d4a0aa3e264775d20e99a6b5265f3023de92560

commit cbe64827becbbaab5b435a71bf00353b4ddd026b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Mar 25 17:39:53 2013 -0700

    Update documentation
    
    Change-Id: Iea3c4b5409e593b1fb070a491ba8a479db32ca58

commit 802639c89603c9541e624766349d1989a1f641c0
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Mon Mar 25 20:53:45 2013 -0700

    ceresproblem label was incorrect
    
    Change-Id: I3e210375adba4fa50ff3c25398b20a65d241cb35

commit 6bcb8d9c304a3b218f8788018dfdfe368bb7d60c
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Mon Mar 25 16:40:26 2013 -0700

    Compiling against static or shared library
    
    Change-Id: I3fb35e9a49f90b8894f59dde49c90a7c2dd74b0a

commit 619cfe692020c078275b68eac2167232fafdfffb
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Mar 25 14:03:41 2013 -0700

    Update version history
    
    Change-Id: I1d036efad1507efd19d8581f147b38170b1f0543

commit 6ae34757850a5fa8213e0d1a540d9d75d6840a08
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Sun Mar 24 22:30:52 2013 -0700

    Added documentation regarding the use of Ceres with cmake (once installed)
    Commets about the flag ``BUILD_DOCUMENTATION=ON``
    
    Change-Id: I8814927e60af190c8043bfc36e77fe76bfe6f562

commit f46de9e697eb5b8756084615e29ded48600a4d39
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Mar 21 15:31:35 2013 +0600

    Silent no previous declaration warning for FindParameterBlockOrDie
    
    Use anonymous namespace for this. Also move some surrounding static
    function to this anonymous namespace.
    
    Change-Id: Ie235eb7936976563a9db115ec13c59e6e6869b96

commit 16636efeffacdd69d075a60ea8a94d98fd81c6fd
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Mar 21 15:12:01 2013 +0600

    Compilation fix for msvc2010
    
    Usage of back_inserter requires <iterator> header when using msvc2010
    
    Change-Id: I92ee1649795ce0468ce337fc414eb0ca6e90c51e

commit ac0d416991274ed67fe85371f09b07f706a6db9a
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Wed Mar 20 18:32:14 2013 -0700

    google-glog link wasn't working, 'http://' twice
    
    Change-Id: I9cd96d3609f9b1ba31cd480fef1702972be86741

commit 55b6c966c4f697cb5d11982201733aa3bce7a5a7
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Wed Mar 20 17:44:04 2013 -0700

    * Fixed the location of the Ceres doc (once installed with 'make install')
    * Doing 'make ceres_docs' can be used to create the documentation (if the BUILD_DOCUMENTATION=ON)
    * Included the copyright boilerplate for FindSphinx.cmake
    
    Change-Id: Iea21eba9e68384b4fe72c85fa88c76b0ba8a7a1d

commit a986912555b304a47dd0c2a02892046fde15d091
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Mar 20 11:50:34 2013 -0700

    Update version history
    
    Change-Id: I238279719219a26d0d1bb32e0610f41007d3dcef

commit 16dbf11626c52c013f1dca6375f993a554e31d51
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Mon Mar 11 14:44:02 2013 -0700

    Added CeresConfig.cmake based on this example:
        https://projects.kde.org/projects/kde/kdeexamples/repository/revisions/master/show/buildsystem/HowToInstallALibrary
    
    Change-Id: I130cac5d43d9fbbf359abc04d3691e25c4e2bb63

commit 015d57f173fab7ea040ee01474101e208ff72be6
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Tue Mar 19 14:05:14 2013 -0700

    Avoiding the Warning: "deprecated conversion from string constant to char*"
    
    Change-Id: Ifa47f9b0724f79c5c695828628c89818ddefd844

commit c51b11c1046366035e7da95e4d8a78100ef3f153
Author: Pablo Speciale <pablo.speciale@gmail.com>
Date:   Tue Mar 12 00:56:56 2013 -0700

    Sphinx and CMake, based on this example:
       http://ericscottbarr.com/blog/2012/03/sphinx-and-cmake-beautiful-documentation-for-c-projects/
    
    The 'docs/CMakeLists.txt' file was deleted in this commit: 0abfb8f46f534b05413bb4d64b960d6fd0a9befb
    
    Thanks to Arnaud Gelas, he has passed some links:
       https://github.com/InsightSoftwareConsortium/ITKExamples/blob/master/CMake/FindSphinx.cmake
       https://github.com/InsightSoftwareConsortium/ITKExamples/blob/master/CMakeLists.txt#L120-L154
    
    Change-Id: Ic65e7f8ec5280d1e71a897a144417a21761c5553

commit 793a339335d8d52279efb49bcd704d196646efb5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Mar 13 12:14:00 2013 -0700

    Make Android.mk play better with the external consraints
    
    Change-Id: Ia0a1037d97c032a4ba1a9acbf4e04c192d12ee61

commit 700d50d8074f0273b305fe6d9f795f1dcb988048
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Mar 12 16:12:42 2013 -0700

    Lint cleanup from William Rucklidge
    
    Change-Id: Iacbf77246109f687708696eee7fb6144d23e7ec5

commit 8140f0fc979f5728f37cfb68362f31e7e37b46bb
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Mar 12 09:45:08 2013 -0700

    Modularize the build.
    
    1. Add -DLINE_SEARCH_MINIMIZER to CMake to make the line search
       minimizer optional.
    2. Better handling of -DSUITESPARSE/-DCXSPARSE in top level cmake
       file.
    3. Disable code which will never be used if SuiteSparse and/or
       CXSparse is not available.
    4. Update build docs.
    5. Update jni/Android.mk
    6. Minor lint cleanup from William Rucklidge.
    
    Change-Id: If60460a858000df82faed7a6bb056dd2bfdde562

commit c59c1e44727c62d43523b672c1c132865cd25784
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Mar 11 17:28:38 2013 -0700

    Propagate ifdefs correctly to improve build efficiency.
    
    With -DRESTRICT_SCHUR_SPECIALIZATIONS, now the various
    specializations are empty, decreasing build time and
    reducing the size of the static library.
    
    Change-Id: I8ec431279741a9a83516a4167c54a364c4608143

commit 32874b861fc54b33aa4272e8c81bb001aa1e1e60
Author: Yuliy Schwartzburg <syx818@gmail.com>
Date:   Fri Mar 8 11:30:44 2013 +0100

    Fix CMake "LIB_SUFFIX" for non-linux installations
    
    Change-Id: Ieb8a2825a4378b388149e7934ecc7b96ba5a29fa

commit 58b8c68f29c2c15edbc5f77102796df661020312
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Mar 9 17:17:43 2013 -0800

    Clean up rotation.h
    
    Change-Id: I3370c9883728cda068c9650a2c2a50641fd8299c

commit 020d8e1e48f341f3b990ac449998d36aaca2771f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Mar 6 16:19:26 2013 -0800

    Better error reporting in the modeling API.
    
    More informative error when user passes an
    unknown parameter block to Problem methods.
    
    Change-Id: I517360e4b0b55814904ca3e664877d76ad3f59e8

commit 5e7ce8a950cf5794c63817827ce66a3a4e66e7b6
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Mar 6 11:38:41 2013 -0800

    Fix Problem::Evaluate documentation
    
    Change-Id: I8c70a24743cff2d9cface99ef0f5d34c78f769c6

commit 0a4f5f8f7428148f21183e743d091d2079406604
Author: Taylor Braun-Jones <taylor@braun-jones.org>
Date:   Wed Mar 6 00:00:32 2013 -0500

    Fix operator() signature in several sections of the documentation
    
    Change-Id: I73f9d150a738f7b136fbc1f98fc60b0f306bd7f9

commit 2c648dbc43025927301684fc82d95ccf6b6c21bc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Mar 5 15:20:15 2013 -0800

    Make examples independent of ceres internals.
    
    Change-Id: I6b6913e067a86fea713646218c8da1439d349d74

commit e7148795c3f2ce1f6625a7c81545707a6cbde3eb
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Mar 4 10:17:30 2013 -0800

    Fix a memory leak in CXSparse::SolveCholesky.
    
    Thanks to Alexander Mordvintsev for reporting this.
    
    Change-Id: I5c6be4d3d28f062e83a1ad41cb8089c19362a005

commit 480f9b8551c02c429bc027197f3d868c5cc522c9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Mar 3 20:15:22 2013 -0800

    Add gerrit instructions to the docs.
    
    Change-Id: Ic98f20273f3ccbaeb8b4ca00c4ce0042a0d262f8

commit 7c60b5c2c6170f0f81a29dbaa2ca7d8031db843b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Mar 3 18:28:02 2013 -0800

    version history update
    
    Change-Id: Ia92caeb0f6659667ce1e56eefd0e3c87b3f6e538

commit a363a7b69c7b97e17ad671ba1aee30f201eafdd1
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Mar 3 18:06:00 2013 -0800

    Multithread DENSE_SCHUR
    
    Replace the global lock in BlockRandomAccessDenseMatrix
    with a per cell lock.
    
    Change-Id: Iddbe38616157b6e0d3770eede3335a056c3ba18c

commit 31730ef55df802d1e251edab3bac3c0cdcb30647
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Feb 28 11:20:28 2013 -0800

    DenseSparseMatrix is now column-major.
    
    1. Introduce new typdefs in eigen.h to allow for column
       major matrices.
    
    2. Clean up old unused typedefs, and the aligned typedefs
       since they do not actually add any real performance.
    
    3. Made eigen.h conform to the google style guide by removing
       the using directives. They were polluting the ceres namespace.
    
    4. Made the template specialization generator work again.
    
    Change-Id: Ic2268c784534b737ebd6e1a043e2a327adaeca37

commit f8e43f7f2724c5413015e1f113ce860ee8b30428
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Feb 27 08:55:20 2013 -0800

    version history update
    
    Change-Id: Ibd412a9e5beac3b3ac3e15b26fb11aa061956095

commit fef82b3a7af1e44f18f5343601fb19a4dd6f89ad
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Wed Feb 27 10:44:12 2013 +0000

    Bugfix - commenting-out unused member which results in build error on OS X with latest Xcode.
    
    - Build error due to -Werror,-Wunused-private-field clang args.
    - Raised with gtest group (as it also occurs with latest gtest:master but for a different
      variable) with patch, but they don't want to fix for compatibility with legacy compilers/OS
      see here: https://groups.google.com/forum/?fromgroups=#!topic/googletestframework/S1KLl2jkzws
    
    Change-Id: I99984bcd9d07f6eb0e3fac58e27ddf0ac9e54265

commit 0bc3540b66cf9de4d4a317c6a760849aa66d414e
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Feb 27 08:46:48 2013 -0800

    Version history update
    
    Change-Id: I6f79dd87e45bedf4bcf821e7b44f8b9553c39a7b

commit b59ac43b9d1122da3d00882efa7c5d6833c06ea7
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Wed Feb 27 09:10:19 2013 +0000

    Issue 83 fix: use correct pthread linker flags with clang.
    
    1. -lpthreads was previously added to the CMAKE_CXX_FLAGS which are
    not passed to the linker thus linking would fail.
    2. Clang would emit a warning about -lpthreads being added to a
    build instruction with -c (compile only).
    
    This patch fixes both of these issues by adding -lpthreads to the
    linker flags (and removes them from the CXX flags).
    
    Change-Id: I5e54de3ab7eced177aa31f311926893598af5b56

commit 6fb1024ed5b197da261f71d1bb02716661da2fff
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Feb 26 22:20:18 2013 -0800

    Fix a small bug in evaluator.h
    
    Change-Id: I2c4b8637e0ac8645721109f8b6bb2396ce8bb37b

commit 039ff07dd1a02e6c9cff335551f05bfe8269224b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Feb 26 09:15:39 2013 -0800

    Evaluate ResidualBlocks without LossFunction if needed.
    
    1. Add the ability to evaluate the problem without loss function.
    2. Remove static Evaluator::Evaluate
    3. Refactor the common code from problem_test.cc and
       evaluator_test.cc into evaluator_test_utils.cc
    
    Change-Id: I1aa841580afe91d288fbb65288b0ffdd1e43e827

commit c3fd3b960e489348d5b2c8b8f0167760e52ecbd9
Author: Taylor Braun-Jones <taylor@braun-jones.org>
Date:   Tue Feb 26 00:30:35 2013 -0500

    Only use cmake28 macro for RHEL6
    
    This makes it possible to use the same spec to build on Fedora. It drops any
    chance of building on RHEL5, but I doubt that was possible anyway.
    
    Change-Id: Ia956eb6416504e520962ec2f617e03b40ca18203

commit b73148b9f38fe41032e696436566b78043a368db
Author: Taylor Braun-Jones <taylor@braun-jones.org>
Date:   Mon Feb 25 02:34:00 2013 -0500

    Remove -Wno-return-type-c-linkage option when using gcc
    
    Only use this option when compiling with CLang which supports it.
    
    Change-Id: I8555c16e82d61302f6a43672d0d63e5d4800c6b6

commit ba9442160dabf612a1dc51baf098937459b4b5ca
Author: Keir Mierle <mierle@gmail.com>
Date:   Mon Feb 25 12:46:44 2013 -0800

    Add the number of effective parameters to the final report.
    
    Here is an example report, obtained by running:
    
      bin/Debug/bundle_adjuster \
      --input=../ceres-solver/data/problem-16-22106-pre.txt \
      --linear_solver=iterative_schur \
      --num_iterations=1 \
      --alsologtostderr \
      --use_local_parameterization \
      --use_quaternions
    
    Note that effective parameters is less than parameters by 16, which is the
    number of cameras. In this case the local parameterization has a 3 dimensional
    tangent space for the 4-dimensional quaternions.
    
    Ceres Solver Report
    -------------------
                                         Original                  Reduced
    Parameter blocks                        22138                    22138
    Parameters                              66478                    66478
    Effective parameters                    66462                    66462
    Residual blocks                         83718                    83718
    Residual                               167436                   167436
    
    Minimizer                        TRUST_REGION
    Trust Region Strategy     LEVENBERG_MARQUARDT
    
                                            Given                     Used
    Linear solver                 ITERATIVE_SCHUR          ITERATIVE_SCHUR
    Preconditioner                         JACOBI                   JACOBI
    Threads:                                    1                        1
    Linear solver threads                       1                        1
    Linear solver ordering              AUTOMATIC                22106, 32
    
    Cost:
    Initial                          4.185660e+06
    Final                            7.221647e+04
    Change                           4.113443e+06
    
    Number of iterations:
    Successful                                  1
    Unsuccessful                                0
    Total                                       1
    
    Time (in seconds):
    Preprocessor                            0.697
    
      Residual Evaluations                  0.063
      Jacobian Evaluations                 27.608
      Linear Solver                        13.360
    Minimizer                              43.973
    
    Postprocessor                           0.004
    Total                                  44.756
    
    Termination:                   NO_CONVERGENCE
    
    Change-Id: I6b6b8ac24f71bd187e67d95651290917642be74f

commit 36dc14ddf2fd53238c2ce21f172aa1989b31c0fd
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Feb 25 10:33:10 2013 -0800

    Fix a clang warning
    
    Change-Id: I5ef32c6329f1f75efb30b16519b8de146a8339fa

commit 931c309b2734329ec6e5f0b88ce4a0b488ac47e5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Feb 25 09:46:21 2013 -0800

    Cleanup based on comments by William Rucklidge
    
    Change-Id: If269ba8e388965a8ea32260fd6f17a133a19ab9b

commit df36218c953e05d665df2cc96a6d7625e2307d97
Author: Taylor Braun-Jones <taylor@braun-jones.org>
Date:   Fri Feb 15 18:28:11 2013 -0500

    Add support for the CMake "LIB_SUFFIX" convention
    
    Allows `make install` to work correctly on e.g. 64-bit systems where the
    native libraries are installed to /usr/lib64
    
    Change-Id: I71b4fae7b459c003cb5fac981278c668f2e29779