)]}'
{
  "commit": "487250eb27256a41d38c5037bdac9a09a3160edb",
  "tree": "3bb3dd38bfd5da67d532652ee18921825aabc94e",
  "parents": [
    "eeedd3a59281eb27025d7f9aa944d9aff0666590"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Fri Apr 05 14:20:37 2013 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sun Apr 14 09:33:11 2013 -0700"
  },
  "message": "Minor cleanups.\n\n1. Further BLAS and heap allocation cleanups in  schur_eliminator_impl.h\n2. Modularize blas.h using macros.\n3. Lint cleanups from William Rucklidge.\n4. Small changes to jet.h\n5. ResidualBlock now uses blas.h\n\nPerformance improvements:\n\nFor static and dynamic sized blocks, the peformance is not changed much.\n\n-use_quaternions -ordering user -linear_solver sparse_schur\n\n                                        master         change\nproblem: 16-22106\ngcc                                        3.4            3.3\nclang                                      2.8            2.7\n\nproblem: 49-7776\ngcc                                        1.7            1.7\nclang                                      1.4            1.4\n\nproblem: 245-198739\ngcc                                       80.1           79.6\nclang                                     80.6           76.2\n\nproblem: 257-65132\ngcc                                       12.2           12.0\nclang                                     10.4           10.2\n\nproblem: 356-226730\ngcc                                       99.0           96.8\nclang                                     88.9           88.3\n\nproblem: 744-543562\ngcc                                      361.5          356.2\nclang                                    352.7          343.5\n\nproblem: 1024-110968\ngcc                                       45.9           45.6\nclang                                     42.6           42.1\n\nHowever, performance when using local parameterizations is\nsignificantly improved due to residual_block.cc using blas.h\n\n-use_quaternions -use_local_parameterization -ordering user -linear_solver sparse_schur\n\n                                        master         change\nproblem: 16-22106\ngcc                                        3.6            3.3\nclang                                      3.5            2.8\n\nproblem: 49-7776\ngcc                                        1.8            1.6\nclang                                      1.7            1.4\n\nproblem: 245-198739\ngcc                                       79.7           76.1\nclang                                     79.7           73.0\n\nproblem: 257-65132\ngcc                                       12.8           11.9\nclang                                     12.3            9.8\n\nproblem: 356-226730\ngcc                                      101.9           93.5\nclang                                    105.0           86.8\n\nproblem: 744-543562\ngcc                                      367.9          350.5\nclang                                    355.3          323.1\n\nproblem: 1024-110968\ngcc                                       43.0           40.3\nclang                                     41.0           37.5\n\nChange-Id: I6dcf7476ddaa77cb116558d112a9cf1e832f5fc9\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1238123a8fb72d598f77c2e1d0018341cb8aaea8",
      "old_mode": 33188,
      "old_path": "include/ceres/jet.h",
      "new_id": "000bd1c116a513445dedc0f9cdb4f50f2d46ceac",
      "new_mode": 33188,
      "new_path": "include/ceres/jet.h"
    },
    {
      "type": "modify",
      "old_id": "bacf1fff96a1cdcd87e2290fdec1af4cb8c0bbd6",
      "old_mode": 33188,
      "old_path": "internal/ceres/blas.h",
      "new_id": "9629b3da550829b7437f027df9c2cf525770dc09",
      "new_mode": 33188,
      "new_path": "internal/ceres/blas.h"
    },
    {
      "type": "modify",
      "old_id": "ab6fcef1945256b7a6b6fecf5e324b66b74b4364",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_sparse_matrix.cc",
      "new_id": "ae36d60c9004eee405a6f64709a1933cb5c657e9",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_sparse_matrix.cc"
    },
    {
      "type": "modify",
      "old_id": "b91b0ed784366447bb1ec6ac94720a858177f45e",
      "old_mode": 33188,
      "old_path": "internal/ceres/residual_block.cc",
      "new_id": "4906607a0d3d849f2efbe68fb9b1c226555d89db",
      "new_mode": 33188,
      "new_path": "internal/ceres/residual_block.cc"
    },
    {
      "type": "modify",
      "old_id": "e0c7fdafcb61950530ecf44b0d9aeddfd9c71e12",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator.h",
      "new_id": "f2c247a5adb79d5eb96119a2e9029b582959a4c3",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator.h"
    },
    {
      "type": "modify",
      "old_id": "b46eab92c34c4a6f988cad874f47d37ead4c1b73",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_impl.h",
      "new_id": "5afb2f2e1fa286ef7468a7f1d2cc65774e50f444",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_impl.h"
    }
  ]
}
